管理Paimon Catalog
配置Paimon Catalog后,您就可以在Flink全托管控制台直接访问阿里云对象存储OSS中的Paimon表。本文为您介绍如何在Flink全托管模式下创建、查看、使用和删除Paimon Catalog。
由于平台正在逐步灰度中,如果在使用过程中无法找到运行按钮或元数据管理按钮,说明灰度升级尚未完成,您可以联系客服或销售代表安排服务灰度升级。
背景信息
Apache Paimon是一种流批统一的湖存储格式,支持高吞吐的写入和低延迟的查询。目前阿里云开源大数据平台E-MapReduce常见的计算引擎(例如Flink、Spark、Hive或Trino)都与Paimon有着较为完善的集成度。您可以借助Apache Paimon快速地在HDFS或者云端OSS上构建自己的数据湖存储服务,并接入上述计算引擎实现数据湖的分析,详情请参见Apache Paimon。
通过Paimon Catalog,您可以管理阿里云对象存储OSS中的Paimon表,所创建的表后续也可以通过其他计算引擎访问。本文将从以下方面为您介绍如何管理Paimon Catalog:
前提条件
已开通阿里云对象存储OSS服务。
虽然您也可以使用开通实时计算Flink版服务时指定的OSS Bucket,但为了更好地区分数据并防止误操作,建议您额外创建并使用位于同一地域的OSS Bucket。
使用限制
仅Flink计算引擎vvr-6.0.6-flink-1.15及以上版本支持配置Paimon Catalog。
Paimon Catalog使用的OSS Bucket必须与实时计算Flink版位于同一地域,且开通实时计算Flink版服务的账号必须有权限读写该OSS Bucket。
注意事项
目前由于Flink全托管相关缓存机制,通过SQL方式进行Catalog、Database和table的增删,无法立刻从元数据界面看到变化,需要单击元数据的刷新按钮才可以看到。

创建Paimon Catalog
Paimon Catalog目前支持filesystem和dlf两种元数据存储类型。filesystem类型仅将元数据存储在OSS中,而dlf类型除了将元数据存储在OSS上外,还会将元数据同步到阿里云数据湖构建服务DLF中。您可以根据需要,选择相应的元数据存储类型。
UI方式(推荐)
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
单击创建Catalog。
单击Apache Paimon后,单击下一步。
创建Paimon Catalog。
选择元数据存储类型。您可以点击metastore项目的下拉框,选择filesystem或dlf类型的元数据存储。
配置Catalog信息。
如果您选择filesystem元数据存储,需要配置以下信息。
配置项
说明
是否必填
备注
catalog name
Paimon Catalog名称。
是
填写为自定义的英文名。
metastore
元数据存储类型。
是
此处选择为filesystem。
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
如果您选择dlf元数据存储,需要配置以下信息。
配置项
说明
是否必填
备注
catalog name
Paimon Catalog名称。
是
填写为自定义的英文名。
metastore
元数据存储类型。
是
此处选择为dlf。
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
dlf.catalog.id
DLF数据目录ID。
是
请在数据湖构建控制台上查看数据目录对应的ID,具体操作请参见数据目录。
dlf.catalog.accessKeyId
访问DLF服务所需的Access Key ID。
是
获取方法请参见创建AccessKey。
dlf.catalog.accessKeySecret
访问DLF服务所需的Access Key Secret。
是
获取方法请参见创建AccessKey。
dlf.catalog.endpoint
DLF服务的Endpoint。
是
详情请参见已开通的地域和访问域名。
dlf.catalog.region
DLF所在区域。
是
详情请参见已开通的地域和访问域名。
说明请和dlf.catalog.endpoint选择的地域保持一致。
单击确定。
创建完成后,元数据下即可查看新建的Catalog。
SQL方式
新建空白流作业草稿,详情请参见SQL作业开发。
在文本编辑区域,输入创建Paimon Catalog的命令。
如果您选择filesystem元数据存储,输入以下SQL语句。
CREATE CATALOG `<catalog name>` WITH ( 'type' = 'paimon', 'metastore' = 'filesystem', 'warehouse' = '<warehouse>' );
配置项
说明
是否必填
备注
catalog name
Paimon Catalog名称。
是
请填写为自定义的英文名。
type
Catalog类型。
是
固定值为paimon。
metastore
元数据存储类型。
是
此处选择为filesystem。
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
如果您选择dlf元数据存储,输入以下SQL语句。
CREATE CATALOG `<catalog name>` WITH ( 'type' = 'paimon', 'metastore' = 'dlf', 'warehouse' = '<warehouse>', 'dlf.catalog.id' = '<dlf.catalog.id>', 'dlf.catalog.accessKeyId' = '<dlf.catalog.accessKeyId>', 'dlf.catalog.accessKeySecret' = '<dlf.catalog.accessKeySecret>', 'dlf.catalog.endpoint' = '<dlf.catalog.endpoint>', 'dlf.catalog.region' = '<dlf.catalog.region>' );
配置项
说明
是否必填
备注
catalog name
Paimon Catalog名称。
是
请填写为自定义的英文名。
type
Catalog类型。
是
固定值为paimon。
metastore
元数据存储类型。
是
此处选择为dlf。
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
dlf.catalog.id
DLF数据目录ID。
是
请在数据湖构建控制台上查看数据目录对应的ID,具体操作请参见数据目录。
dlf.catalog.accessKeyId
访问DLF服务所需的Access Key ID。
是
获取方法请参见创建AccessKey。
dlf.catalog.accessKeySecret
访问DLF服务所需的Access Key Secret。
是
获取方法请参见创建AccessKey。
dlf.catalog.endpoint
DLF服务的Endpoint。
是
详情请参见已开通的地域和访问域名。
dlf.catalog.region
DLF所在区域。
是
详情请参见已开通的地域和访问域名。
说明请和dlf.catalog.endpoint选择的地域保持一致。
选中创建Catalog的代码后,单击左侧代码行数上的运行。
查看Paimon Catalog
Paimon Catalog创建成功后,您可以通过以下步骤查看Paimon Catalog元数据。
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
在Catalog列表页面,查看Catalog名称和类型。
说明如果您需要查看Catalog下的数据库和表,请单击查看。
使用Paimon Catalog
创建数据库和表
Paimon Catalog配置完成后,您就可以在作业中引用Paimon Catalog表信息,作为结果表和维表,无需声明表的DDL。
在SQL命令方式中,您可以直接使用Paimon Catalog表名称的完整格式${Paimon-catalog-name}.${Paimon-db-name}.${Paimon-table-name}
,也可以用use catalog ${Paimon-catalog-name}
和use ${Paimon-db-name}
语句先声明catalog名称和数据库名称,后面的SQL里只写表名称${Paimon-table-name}
即可 。
UI方式
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
单击目标Catalog名称对应操作列的查看。
单击目标数据库名称对应操作列的查看。
单击创建表。
在使用内置连接器连接页签,单击Apache Paimon,单击下一步。
填写建表语句并配置相关参数信息。代码示例如下。
CREATE TABLE `<catalog name>`.test_db.test_tbl ( dt STRING, id BIGINT, data STRING, PRIMARY KEY (dt, id) NOT ENFORCED ) PARTITIONED BY (dt);
单击确定。
SQL命令方式
新建空白流作业草稿,详情请参见SQL作业开发。
在文本编辑区域,输入建表语句。
CREATE DATABASE `<catalog name>`.test_db; CREATE TABLE `<catalog name>`.test_db.test_tbl ( dt STRING, id BIGINT, data STRING, PRIMARY KEY (dt, id) NOT ENFORCED ) PARTITIONED BY (dt);
选中建表语句,单击左侧代码行数上的运行。
关于Paimon表的更多参数与使用方式,详情请参见Paimon。
读取数据
SELECT * FROM `<catalog name>`.test_db.test_tbl;
写入数据
INSERT INTO `<catalog name>`.test_db.test_tbl VALUES ('2023-04-21', 1, 'AAA'), ('2023-04-21', 2, 'BBB');
作为CTAS的目标端Catalog
Flink计算引擎VVR 6.0.7-Flink 1.15及以上版本支持将Paimon Catalog作为CTAS的目标端。
CREATE TABLE IF NOT EXISTS `<catalog name>`.`<db name>`.`<table name>`
WITH (
'bucket' = '4' -- 设置结果表的分桶数量
) AS TABLE `<source table>`;
CTAS支持在WITH参数中设置物理表属性,在创建目标表时,同时在表上设置对应的属性。具体支持的表属性参数详情,请参见流式数据湖仓Paimon。
在CTAS场景中,可能需要调整已有字段数据类型的精度(例如从VARCHAR(10)到VARCHAR(20))。Paimon Catalog支持在WITH参数中设置'enableTypeNormalization' = 'true'
使用类型宽容模式。在上游发生数据类型修改事件时,只要所修改类型与原类型的归一化类型相同,都视作修改成功。
目前类型归一化规则如下:
TINYINT、SMALLINT、INT和BIGINT归一化为BIGINT。
CHAR、VARCHAR和STRING归一化为STRING。
FLOAT和DOUBLE归一化为DOUBLE。
其他数据类型不进行归一化。
例如:
SMALLINT修改为INT,两者的归一化类型都是BIGINT,视为修改成功,CTAS作业正常运行。
从FLOAT改为BIGINT,两者的归一化类型分别为DOUBLE和BIGINT,属于不兼容的情况,会抛出异常。
作为CDAS的目标端Catalog
Flink计算引擎VVR 6.0.7-Flink 1.15及以上版本支持将Paimon Catalog作为CDAS的目标端。
CREATE DATABASE IF NOT EXISTS `<catalog name>`.`<db name>`
WITH (
'bucket' = '4' -- 设置每张结果表的分桶数量
) AS DATABASE `<source database>`;
CDAS支持在WITH参数中设置物理表属性。当作业启动时,这些参数将被应用到需要同步的下游表中。具体支持的表属性参数详情,请参见流式数据湖仓Paimon。
在CDAS场景中,Paimon Catalog也支持在WITH参数中设置'enableTypeNormalization' = 'true'
使用类型宽容模式。
删除Paimon Catalog
UI方式
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
在Catalog列表页面,单击目标Catalog名称对应操作列的删除。
在弹出的提示页面中,单击删除。
左侧元数据区域下,查看目标Catalog是否已删除。
SQL命令方式
新建空白流作业草稿,详情请参见SQL作业开发。
说明引擎版本需要选择vvr-6.0.6-flink-1.15及以上版本。
在文本编辑区域,输入以下命令。
DROP CATALOG `<catalog name>`;
其中,
<catalog name>
是您Paimon Catalog的名称。选中删除Catalog的命令,鼠标右键选择运行。
在左侧元数据区域,查看目标Catalog是否已删除。