Iceberg DDL 操作
このドキュメントでは、StarRocksにおけるIcebergカタログのデータ定義言語(DDL)操作について説明します。これには、データベース、テーブル、およびビューの作成と管理が含まれます。
DDL操作を実行するには、適切な権限が必要です。権限の詳細については、権限を参照してください。
データベースの作成
Icebergカタログにデータベースを作成します。この機能はv3.1以降でサポートされています。
構文
CREATE DATABASE [IF NOT EXISTS] <database_name>
[PROPERTIES ("location" = "<prefix>://<path_to_database>/<database_name.db>/")]
パラメータ
location: データベースが作成されるファイルパスを指定します。HDFSとクラウドストレージの両方がサポートされています。指定しない場合、データベースはIcebergカタログのデフォルトファイルパスに作成されます。
prefixは使用するストレージシステムに基づいて異なります:
- HDFS:
hdfs - Google GCS:
gs - Azure Blob Storage (HTTP):
wasb - Azure Blob Storage (HTTPS):
wasbs - Azure Data Lake Storage Gen1:
adl - Azure Data Lake Storage Gen2 (HTTP):
abfs - Azure Data Lake Storage Gen2 (HTTPS):
abfss - AWS S3またはS3互換ストレージ:
s3
例
CREATE DATABASE iceberg_db
PROPERTIES ("location" = "s3://my_bucket/iceberg_db/");
データベースの削除
Icebergカタログから空のデータベースを削除します。この機能はv3.1以降でサポートされています。
注記
空のデータベースのみを削除できます。データベースを削除しても、ストレージ上のファイルパスは削除されません。
構文
DROP DATABASE [IF EXISTS] <database_name>
例
DROP DATABASE iceberg_db;
テーブルの作成
Icebergデータベースにテーブルを作成します。この機能はv3.1以降でサポートされています。
構文
CREATE TABLE [IF NOT EXISTS] [database.]table_name
(
column_definition1[, column_definition2, ...],
partition_column_definition1, partition_column_definition2, ...
)
[partition_desc]
[ORDER BY sort_desc]
[PROPERTIES ("key" = "value", ...)]
[AS SELECT query]
パラメータ
column_definition
col_name col_type [COMMENT 'comment']
注記
非パーティション列にはすべて NULL をデフォルト値として使用する必要があります。パーティション列は非パーティション列の後に定義する必要があり、NULL をデフォルト値として使用することはできません。
partition_desc
PARTITION BY (partition_expr[, partition_expr...])
各 partition_expr は以下のいずれかです:
column_name(識別変換)transform_expr(column_name)transform_expr(column_name, parameter)
StarRocksは、Apache Iceberg仕様で定義されたパーティション変換式をサポートしています。
注記
パーティション列は、FLOAT、DOUBLE、DECIMAL、およびDATETIMEを除くすべてのデータ型をサポートしています。
ORDER BY (v4.0+)
Icebergテーブルのソートキーを指定します:
ORDER BY (column_name [ASC | DESC] [NULLS FIRST | NULLS LAST], ...)
PROPERTIES
主要なテーブルプロパティ:
location: テーブルのファイルパス。データベースレベルの場所を指定せずにAWS Glueを使用する場合に必要です。file_format: ファイル形式。parquetのみがサポートされています(デフォルト)。compression_codec: 圧縮アルゴリズム。オプション:SNAPPY、GZIP、ZSTD、LZ4(デフォルト:zstd)。
例
非パーティションテーブルを作成する:
CREATE TABLE unpartition_tbl
(
id int,
score double
);
パーティションテーブルを作成する:
CREATE TABLE partition_tbl
(
action varchar(20),
id int,
dt date
)
PARTITION BY (id, dt);
隠しパーティションを持つテーブルを作成する:
CREATE TABLE hidden_partition_tbl
(
action VARCHAR(20),
id INT,
dt DATE
)
PARTITION BY bucket(id, 10), year(dt);
SELECTを使用してテーブルを作成する:
CREATE TABLE new_tbl
PARTITION BY (id, dt)
AS SELECT * FROM existing_tbl;