メインコンテンツまでスキップ
に最終更新

一時テーブル(非推奨)

非推奨

一時テーブル機能は非推奨です。本番環境での使用は推奨されません。

複雑なデータ処理では、大きな SQL クエリを複数のステップに分割し、各ステップの結果を実体化されたテーブルとして一時的に保存する方法が有効です。これにより、SQL クエリの複雑さが大幅に減り、データのデバッグが容易になります。ただし、実体化されたテーブルは役目を終えた後に手動で削除する必要があります。実体化しない一時テーブルを使用する場合、現在 Doris で定義できるのは WITH 句を使う方法のみです。

これらの課題に対処するため、Doris は一時テーブル機能を導入しました。一時テーブルは、一時的に存在する実体化された内部テーブルです。複雑なデータ処理における一時データの保存と管理を簡素化し、データ処理の柔軟性と安全性をさらに高めます。

主な特徴​

特徴説明
セッションに紐づく一時テーブルは作成したセッション内にのみ存在し、そのライフサイクルは現在のセッションに密接に紐づきます。セッションが終了すると、そのセッションで作成されたすべての一時テーブルが自動的に削除されます。
セッション内でのみ参照可能一時テーブルを参照できるのは、作成したセッションに限られます。同じユーザーが同時に開始した別のセッションからも、これらの一時テーブルにはアクセスできません。
柔軟な命名一時テーブルの名前には一意性の制約がありません。異なるセッションで同じ名前の一時テーブルを作成でき、別の内部テーブルと同じ名前の一時テーブルも作成できます。
注記

内部テーブルと同様に、一時テーブルは Internal Catalog 内の Database に作成する必要があります。

同じ Database に同名の一時テーブルと通常のテーブルが存在する場合、一時テーブルへのアクセスが優先されます。そのセッション内では、その名前のテーブルに対するすべてのクエリと操作が一時テーブルに対してのみ実行されます(マテリアライズドビューの作成を除きます)。

適用シナリオ​

一時テーブルは、次のデータ処理シナリオに適しています。

  • 複雑な SQL の分割:大きなクエリを複数のステップに分割し、中間結果を段階的に実体化して、単一の SQL 文の複雑さを抑えます。
  • 中間結果の一時保存:ETL、データ探索、レポート開発で中間計算結果を保存し、計算の繰り返しを避けます。
  • データのデバッグと検証:各ステップの結果を実体化し、確認や検証を容易にして、デバッグしやすくします。
  • セッションごとに分離されたデータ処理:データをセッション内でのみ参照できるようにし、セッション終了時に自動的に回収することで、残存データによる影響を避けたい場合に適しています。

使用方法​

一時テーブルの作成​

Unique、Aggregate、Duplicate の各モデルを含む、どのモデルのテーブルも一時テーブルとして定義できます。次の SQL 文に TEMPORARY キーワードを追加すると、一時テーブルを作成できます。

一時テーブルの操作​

一時テーブルのその他の使い方は、通常の内部テーブルと基本的に同じです。上記の CREATE 文を除き、その他の DDL 文や DML 文では TEMPORARY キーワードは不要です。

制限事項​

  • 一時テーブルを作成できるのは Internal Catalog 内のみです。
  • テーブルの作成時、ENGINE は OLAP である必要があります。
  • Alter 文による一時テーブルの変更はサポートされていません。
  • 一時テーブルは一時的に存在するため、一時テーブルに基づくビューやマテリアライズドビューの作成はサポートされていません。
  • 一時テーブルのバックアップ、および Sync Job による同期はサポートされていません。
  • Export、Stream Load、Broker Load、S3 Load、Mysql Load、Routine Load はサポートされていません。
  • 一時テーブルを削除すると、ごみ箱には移動されず、完全に削除されます。