SnowConvert AI - Hive - CREATE TABLE¶
Applies to
Hive SQL
Spark SQL
Databricks SQL
説明¶
現在のデータベースに新しいテーブルを作成します。列のリストを定義します。列はそれぞれ異なる型のデータを保持します。テーブルの所有者は、 CREATE TABLE コマンドの発行者です。
詳細については、 CREATE TABLE ドキュメントをご参照ください。
文法構文 ¶
--DATASOURCE TABLE
CREATE TABLE [ IF NOT EXISTS ] table_identifier
[ ( col_name1 col_type1 [ COMMENT col_comment1 ], ... ) ]
USING data_source
[ OPTIONS ( key1=val1, key2=val2, ... ) ]
[ PARTITIONED BY ( col_name1, col_name2, ... ) ]
[ CLUSTERED BY ( col_name3, col_name4, ... )
[ SORTED BY ( col_name [ ASC | DESC ], ... ) ]
INTO num_buckets BUCKETS ]
[ LOCATION path ]
[ COMMENT table_comment ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
[ AS select_statement ]
--HIVE FORMAT TABLE
CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier
[ ( col_name1[:] col_type1 [ COMMENT col_comment1 ], ... ) ]
[ COMMENT table_comment ]
[ PARTITIONED BY ( col_name2[:] col_type2 [ COMMENT col_comment2 ], ... )
| ( col_name1, col_name2, ... ) ]
[ CLUSTERED BY ( col_name1, col_name2, ...)
[ SORTED BY ( col_name1 [ ASC | DESC ], col_name2 [ ASC | DESC ], ... ) ]
INTO num_buckets BUCKETS ]
[ ROW FORMAT row_format ]
[ STORED AS file_format ]
[ LOCATION path ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
[ AS select_statement ]
--LIKE TABLE
CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier
USING data_source
[ ROW FORMAT row_format ]
[ STORED AS file_format ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
[ LOCATION path ]
IF NOT EXISTS ¶
説明¶
テーブルがまだ存在しない場合にのみ作成されるようにし、SQL スクリプトでの重複やエラーを防ぎます。
Hint
この構文はSnowflakeで完全にサポートされています。
適用対象¶
Hive
Spark
Databricks
文法構文¶
IF NOT EXISTS
サンプルソースパターン¶
入力コード:¶
CREATE TABLE IF NOT EXISTS table1 (
col1 INTEGER
);
出力コード:¶
CREATE TABLE IF NOT EXISTS table1 (
col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2024" }}';
PARTITION BY¶
説明¶
パーティションは、指定された列に基づいてテーブル上に作成されます。
Snowflakeではこの構文は必要ありません。
適用対象¶
Hive
Spark
Databricks
文法構文¶
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
サンプルソースパターン¶
入力コード:¶
CREATE TABLE orders (
order_id INT,
customer_id INT,
order_date DATE,
total_amount DECIMAL(10, 2),
order_status STRING
)
PARTITIONED BY (order_status);
出力コード:¶
CREATE TABLE orders (
order_id INT,
customer_id INT,
order_date DATE,
total_amount DECIMAL(10, 2),
order_status STRING
);
CLUSTERED に BY¶
説明¶
テーブル上に作成されたパーティションは、バケッティングのために指定された列に基づいて固定バケットにバケッティングされます。
この文法は部分的にサポートされています
適用対象¶
Hive
Spark
Databricks
文法構文¶
CLUSTERED BY (column_name1 [ASC|DESC], ...)
[SORTED BY (sort_column1 [ASC|DESC], ...)]
INTO num_buckets BUCKETS
パフォーマンス最適化に使用される
CLUSTERED BY句は、SnowflakeではCLUSTER BYに変換されます。パフォーマンスは2つのアーキテクチャで異なる可能性があります。マイクロパーティション内でのデータの並べ替えはSnowflakeが自動的に処理するため、
SORTED BY句は移行中に削除することができます。SparkSQL/Databrick固有のパーティショニング設定である
INTO BUCKETS句は、Snowflakeでは適用できないので、完全に削除する必要があります。
サンプルソースパターン¶
入力コード:¶
CREATE TABLE table_name (
column1 data_type, column2 data_type, ... ) USING format CLUSTERED BY (bucketing_column1) SORTED BY (sorting_column1 DESC, sorting_column2 ASC) INTO 10 BUCKETS;
出力コード:¶
CREATE TABLE table_name ( column1 data_type, column2 data_type, ... ) USING format
CLUSTER BY (bucketing_column1);
ROW に FORMAT¶
説明¶
入出力の行フォーマットを指定します。
この文法はSnowflakeではサポートされていません。
適用対象¶
Hive
Spark
Databricks
文法構文¶
ROW FORMAT fow_format
row_format:
{ SERDE serde_class [ WITH SERDEPROPERTIES (serde_key = serde_val [, ...] ) ] |
{ DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
[ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
[ MAP KEYS TERMINATED BY map_key_terminated_char ]
[ LINES TERMINATED BY row_terminated_char ]
[ NULL DEFINED AS null_char ] } }
サンプルソースパターン¶
入力コード:¶
CREATE TABLE parquet_table ( id INT, data STRING ) STORED AS TEXTFILE LOCATION '/mnt/delimited/target' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' COLLECTION ITEMS TERMINATED BY ';' MAP KEYS TERMINATED BY ':' LINES TERMINATED BY '\n' NULL DEFINED AS 'NULL_VALUE';
出力コード:¶
CREATE TABLE delimited_like_delta LIKE source_delta_table STORED AS TEXTFILE LOCATION '/mnt/delimited/target'
!!!RESOLVE EWI!!! /*** SSC-EWI-HV0002 - THE ROW FORMAT CLAUSE IS NOT SUPPORTED IN SNOWFLAKE ***/!!! ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' COLLECTION ITEMS TERMINATED BY ';' MAP KEYS TERMINATED BY ':' LINES TERMINATED BY '\n' NULL DEFINED AS 'NULL_VALUE';
STORED に AS¶
説明¶
テーブル保存用のファイル形式。
この文法はSnowflakeではサポートされていません。
適用対象¶
Hive
Spark
Databricks