CREATE TABLE AS SELECT
説明
CREATE TABLE AS SELECT (CTAS) ステートメントを使用して、同期または非同期でテーブルをクエリし、クエリ結果に基づいて新しいテーブルを作成し、その後クエリ結果を新しいテーブルに挿入できます。
非同期 CTAS タスクを SUBMIT TASK を使用して送信できます。
構文
-
テーブルを同期的にクエリし、クエリ結果に基づいて新しいテーブルを作成し、その後クエリ結果を新しいテーブルに挿入します。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [database.]table_name
[column_name1 [, column_name2, ...]]
[index_definition1 [, index_definition2, ...]]
[key_desc]
[COMMENT "table comment"]
[partition_desc]
[distribution_desc]
[ORDER BY (column_name1 [, column_name2, ...])]
[PROPERTIES ("key"="value", ...)]
AS SELECT query
[ ... ] -
テーブルを非同期でクエリし、クエリ結果に基づいて新しいテーブルを作成し、その後クエリ結果を新しいテーブルに挿入します。
SUBMIT [/*+ SET_VAR(key=value) */] TASK [[database.]<task_name>]AS
CREATE TABLE [IF NOT EXISTS] [database.]table_name
[column_name1 [, column_name2, ...]]
[index_definition1 [, index_definition2, ...]]
[key_desc]
[COMMENT "table comment"]
[partition_desc]
[distribution_desc]
[ORDER BY (column_name1 [, column_name2, ...])]
[PROPERTIES ("key"="value", ...)] AS SELECT query
[ ... ]
パラメータ
| パラメータ | 必須 | 説明 |
|---|---|---|
| TEMPORARY | いいえ | 一時テーブルを作成します。v3.3.1 から、StarRocks は Default Catalog での一時テーブルの作成をサポートしています。詳細は Temporary Table を参照してください。現在、StarRocks は SUBMIT TASK を使用して非同期タスクでの一時テーブルの作成をサポートしていません。 |
| column_name | いいえ | 新しいテーブルの列名です。列のデータ型を指定する必要はありません。StarRocks は自動的に適切なデータ型を指定します。StarRocks は FLOAT および DOUBLE データを DECIMAL(38,9) データに変換します。また、CHAR、VARCHAR、および STRING データを VARCHAR(65533) データに変換します。 |
| index_definition | いいえ | v3.1.8 以降、新しいテーブルにビットマップインデックスを作成できます。構文は INDEX index_name (col_name[, col_name, ...]) [USING BITMAP] COMMENT 'xxxxxx' です。パラメータの説明と使用上の注意については Bitmap indexes を参照してください。 |
| key_desc | いいえ | 構文は key_type ( <col_name1> [, <col_name2> , ...]) です。パラメータ:
|
| COMMENT | いいえ | 新しいテーブルのコメント。 |
| partition_desc | いいえ | 新しいテーブルのパーティション化の手法。デフォルトでは、このパラメータを指定しない場合、新しいテーブルにはパーティションがありません。パーティション化の詳細については CREATE TABLE を参照してください。 |
| distribution_desc | いいえ | 新しいテーブルのバケット化の手法。このパラメータを指定しない場合、バケット列はコストベースオプティマイザ (CBO) によって収集された最も高いカーディナリティを持つ列にデフォルト設定されます。バケット数はデフォルトで 10 です。CBO がカーディナリティに関する情報を収集しない場合、バケット列は新しいテーブルの最初の列にデフォルト設定されます。バケット化の詳細については CREATE TABLE を参照してください。 |
| ORDER BY | いいえ | v3.1.8 以降、新しいテーブルが主キーテーブルである場合、ソートキーを指定できます。ソートキーは任意の列の組み合わせにすることができます。主キーテーブルは、テーブル作成時に PRIMARY KEY (xxx) が指定されたテーブルです。 |
| Properties | いいえ | 新しいテーブルのプロパティ。 |
| AS SELECT query | はい | クエリ結果。... AS SELECT query で列を指定できます。例えば、... AS SELECT a, b, c FROM table_a; のように指定します。この例では、a、b、c はクエリされたテーブルの列名を示します。新しいテーブルの列名を指定しない場合、新しいテーブルの列名も a、b、c になります。... AS SELECT query で式を指定することもできます。例えば、... AS SELECT a+1 AS x, b+2 AS y, c*c AS z FROM table_a; のように指定します。この例では、a+1、b+2、c*c はクエリされたテーブルの列名を示し、x、y、z は新しいテーブルの列名を示します。注意: 新しいテーブルの列数は、SELECT ステートメントで指定された列数と同じである必要があります。識別しやすい列名を使用することをお勧めします。 |