更新时间:2026-10-09 GMT+08:00
分享

Iceberg on Flink DDL语法说明

基本建表语句

最基本的建表语句,指定表名、列定义及表属性。

CREATE TABLE lf_iceberg_catalog.iceberg_db.iceberg_table (
   id BIGINT COMMENT 'unique id',
   data STRING NOT NULL
 ) WITH ('format-version'='2');

支持的常用子句:

  • PARTITION BY (column1, column2, ...):配置分区,Flink 尚不支持隐式分区(hidden partitioning)。
  • COMMENT 'table document':设置表描述。
  • WITH ('key'='value', ...):设置表配置(存储在 Iceberg 表属性中)。

PRIMARY KEY(主键约束)

可以为单列或多列声明主键约束,主键必须唯一且不能包含 NULL。主键约束是 UPSERT 模式所必需的。

带主键约束的建表语句

CREATE TABLE lf_iceberg_catalog.iceberg_db.iceberg_table (
   id BIGINT COMMENT 'unique id',
   data STRING NOT NULL,
   PRIMARY KEY(id) NOT ENFORCED
 ) WITH ('format-version'='2');

PARTITIONED BY(分区表)

使用 PARTITIONED BY 子句创建分区表。

分区表建表语句

CREATE TABLE lf_iceberg_catalog.iceberg_db.iceberg_table (
   id BIGINT COMMENT 'unique id',
   data STRING NOT NULL
 ) PARTITIONED BY (data)
 WITH ('format-version'='2');

CREATE TABLE LIKE(复制表结构)

基于已有表创建具有相同表结构、分区和表属性的新表。

CREATE TABLE lf_iceberg_catalog.iceberg_db.iceberg_table (
   id BIGINT COMMENT 'unique id',
   data STRING
 );
CREATE TABLE lf_iceberg_catalog.iceberg_db.iceberg_table_like LIKE lf_iceberg_catalog.iceberg_db.iceberg_table;

相关文档