管理Paimon Catalog
在AI DataLake Flink作业上配置Paimon Catalog后,您可以通过AI DataLake Flink直接访问华为云数据湖构建(LakeFormation)中的Paimon表。本文为您介绍如何在AI DataLake Flink作业中创建Paimon Catalog,以及管理Paimon数据库和Paimon表。
操作方法:使用Postman等工具,调用创建FlinkJob作业API接口提交Flink作业。
创建Paimon Catalog
CREATE CATALOG lf_paimon_catalog
WITH
(
'type' = 'paimon',
'metastore' = 'lakeformation'
); 配置项参数说明如下。
| 配置项 | 说明 | 是否必填 | 备注 |
|---|---|---|---|
| type | Catalog类型。 | 是 | 固定值为paimon。 |
| metastore | Catalog实现类型。 | 是 | 固定值为lakeformation。 |
| lakeformation.catalog-name | 指定访问lakeformation中的catalog名称。 此名称需要与您在云数据湖构建(LakeFormation)中创建的Catalog名称保持一致,即可完成映射。 | 否 | 默认为Flink引擎侧的catalogName,即lf_paimon_catalog。 |
管理Paimon数据库
- 创建数据库
CREATE DATABASE IF NOT EXISTS lf_paimon_catalog.paimon_db WITH ( 'location' = 'obs://bucket/path/paimon-warehouse/paimon_db' );
- 删除数据库
DROP DATABASE lf_paimon_catalog.paimon_db; --只能删除内部没有任何表的数据库
管理Paimon表
- 创建表
在名为lf_paimon_catalog的Catalog下的paimon_db的数据库中,创建一张分区表。代码示例如下。
CREATE TABLE lf_paimon_catalog.paimon_db.paimon_table ( id BIGINT, data STRING, PRIMARY KEY (`id`,data) NOT ENFORCED ) PARTITIONED BY (data);
- 修改表结构
操作
代码示例
修改/添加表属性
ALTER TABLE my_table SET (
'write-buffer-size' = '256 MB'
);
移除表属性
ALTER TABLE my_table RESET ('write-buffer-size');
修改/添加表注释
ALTER TABLE my_table SET (
'comment' = 'table comment'
);
移除表注释
ALTER TABLE my_table RESET ('comment');
临时修改表参数
您可以通过在表名后添加SQL Hint的方式,在写入表时临时修改表参数。临时修改的表参数仅对当前SQL作业生效。
- 在写入my_table表时,临时将upsert-enabled设为true。
INSERT INTO tableName /*+ OPTIONS('upsert-enabled'='true') */SELECT ...;
- 在消费my_table表时,临时将monitor-interval设为10s。
SELECT * FROM my_table /*+ OPTIONS('monitor-interval'='10s') */
重命名表
将表的名称从my_table修改为my_table_new。仅EXTERNAL表可修改。
ALTER TABLE my_table RENAME TO my_table_new;
添加新列
将类型为INT的c1列和类型为STRING的c2列添加在my_table表的末尾。
ALTER TABLE my_table ADD (c1 INT, c2 STRING);
重命名列
将my_table表中名称为c0的列重命名为c1。
ALTER TABLE my_table RENAME c0 TO c1;
删除列
将my_table表中c1和c2两列删除。
ALTER TABLE my_table DROP (c1, c2);
修改列注释
将my_table表中buy_count列的注释改为this is buy count。
ALTER TABLE my_table MODIFY buy_count BIGINT COMMENT 'this is buy count';
修改列顺序
- 将my_table表中名称为col_a,类型为DOUBLE的列移动到开头。
ALTER TABLE my_table MODIFY col_a DOUBLE FIRST;
- 将my_table表中名称为col_a,类型为DOUBLE的列移动到col_b列的后面。
ALTER TABLE my_table MODIFY col_a DOUBLE AFTER col_b;
修改列类型
ALTER TABLE my_table MODIFY col_a DOUBLE;
- 在写入my_table表时,临时将upsert-enabled设为true。
- 删除表
DROP TABLE lf_paimon_catalog.paimon_db.paimon_table;