一時テーブルのサポート
ClickHouse は、次の特性を持つ一時テーブルをサポートしています。
- 一時テーブルは、接続が失われた場合を含め、セッションの終了時に消滅します。
- エンジンを指定しない場合、一時テーブルには Memory テーブルエンジンが使用されます。また、Replicated および
KeeperMapエンジン以外の任意のテーブルエンジンを使用できます。 - 一時テーブルには DB を指定できません。一時テーブルはデータベースの外部に作成されます。
ON CLUSTERを使用した distributed DDL クエリで、クラスター内のすべてのサーバーに一時テーブルを作成することはできません。このテーブルは現在のセッションにのみ存在します。- 一時テーブルが別のテーブルと同じ名前であり、クエリで DB を指定せずにテーブル名を指定した場合は、一時テーブルが使用されます。
- distributed query processing では、クエリで使用される Memory エンジンの一時テーブルがリモートサーバーに渡されます。
構文
一時テーブルを作成するには、次の構文を使用します。
CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) [ENGINE = engine]通常、一時テーブルを手動で作成することはありません。クエリで外部データを使用する場合や、分散 (GLOBAL) IN を使用する場合に作成されます。詳細については、該当するセクションを参照してください。
一時テーブルの代わりに、ENGINE = Memory を使用するテーブルを使用できます。