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

管理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;

  • 删除表
    DROP TABLE lf_paimon_catalog.paimon_db.paimon_table;

相关文档