配置Paimon Catalog后,您可以通过实时计算Flink版直接访问阿里云对象存储OSS中的Paimon表。本文为您介绍如何在实时计算开发控制台创建、查看与删除Paimon Catalog,以及管理Paimon数据库和Paimon表。
背景信息
通过Paimon Catalog可以方便地管理同一个目录下的所有Paimon表,并与其它阿里云产品连通。目前支持以下4种元数据存储类型,您可以根据需要选择相应的元数据存储类型。元数据存储类型详情如下表所示。
元数据存储类型 | 说明 | 可访问Paimon Catalog中Paimon表的其它阿里云产品 |
filesystem | 仅将元数据存储于OSS的指定路径中。 | 开源大数据平台EMR中的Spark、Hive和Trino等计算引擎,详情请参见EMR的Paimon。 |
dlf | 除了将元数据存储于OSS的指定路径中,还会将元数据同步到阿里云数据湖构建DLF中。 |
|
maxcompute | 除了将元数据存储于OSS的指定路径中,还会在创建、修改、删除Catalog表时,在指定的MaxCompute项目中同步创建、修改、删除MaxCompute外表,方便您在MaxCompute中查询Paimon表的数据。 | 云原生大数据计算服务MaxCompute,详情请参见Paimon外部表。 |
sync | 合并了Paimon DLF Catalog与Paimon MaxCompute Catalog的功能,方便您通过同一个Catalog连通Hologres、MaxCompute等产品。 说明 Paimon Sync Catalog的元数据以DLF中的元数据为准,请勿在MaxCompute中自行修改或删除Paimon外表,防止与元数据出现差异。 |
|
注意事项
仅实时计算引擎VVR 8.0.5及以上版本支持创建和配置Paimon Catalog和Paimon表。其中,仅VVR 11.1.0及以上版本支持元数据存储类型设置为DLF 2.5版本。
OSS用于存储Paimon表的相关文件,包括数据文件与元数据文件等。请确保已开通阿里云对象存储OSS服务,且OSS Bucket的存储类型需要为标准存储,详情请参见控制台快速入门和存储类型。
重要您也可以使用开通实时计算Flink版服务时指定的OSS Bucket,但为了更好地区分数据并防止误操作,建议您额外创建并使用位于同一地域的OSS Bucket。
创建Paimon Catalog时指定的OSS Bucket和MaxCompute项目必须位于同一地域,且创建Calalog时填写的AccessKey必须对OSS Bucket、MaxCompute项目和DLF目录有读写权限。
通过SQL方式创建或删除Catalog、Database和table后,您可以单击刷新
按钮以更新元数据页面显示。
Paimon与VVR版本对应关系详情如下表所示。
Paimon社区版本
实时计算Flink版引擎版本(VVR )
1.0
8.0.11
0.9
8.0.7、8.0.8、8.0.9、8.0.10
0.8
8.0.6
0.7
8.0.5
0.6
8.0.4
0.6
8.0.3
创建Paimon Catalog
四种元数据存储类型都支持SQL命令方式,而仅filesystem和dlf支持UI方式。下文将为您介绍各个存储类型所需的配置参数说明。
创建Paimon Filesystem Catalog
UI方式
进入数据管理页面。
登录实时计算控制台,单击目标工作空间操作列下的控制台。
单击数据管理。
单击创建Catalog,选择Apache Paimon,单击下一步。
填写参数配置信息。
SQL方式
在数据查询文本编辑区域,输入以下命令。
CREATE CATALOG `my-catalog` WITH (
'type' = 'paimon',
'metastore' = 'filesystem',
'warehouse' = '<warehouse>',
'fs.oss.endpoint' = '<fs.oss.endpoint>',
'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);
配置项参数说明如下。
通用
配置项
说明
是否必填
备注
my-catalog
Paimon Catalog名称。
是
请填写为自定义的英文名。
type
Catalog类型。
是
固定值为paimon。
metastore
元数据存储类型。
是
参数取值如下:
filesystem:配置为Paimon Filesystem Catalog类型时填写。
dlf:配置为Paimon DLF Catalog类型时填写。
maxcompute:配置为Paimon MaxCompute Catalog类型时填写。
sync:配置为Paimon Sync Catalog类型时填写。
OSS
配置项
说明
是否必填
备注
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
fs.oss.endpoint
OSS服务的连接地址。
是
如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
当warehouse指定的OSS Bucket与Flink工作空间不在同一地域,或使用其它账号下的OSS Bucket时需要填写。
获取方法请参见OSS地域和访问域名和创建AccessKey。
fs.oss.accessKeyId
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。
是
fs.oss.accessKeySecret
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。
是
创建Paimon DLF Catalog
DLF 2.5版本
在DLF上创建Paimon Catalog,详情请参见DLF 2.5快速入门。
在实时计算开发控制台上,创建Paimon Catalog。
说明这里仅用于建立与DLF Catalog的映射连接,创建或删除Catalog仅影响映射关系,不会对DLF中的实际数据产生影响。
登录实时计算控制台。
单击Flink全托管工作空间列表中的工作空间名称,进入对应的工作空间。
可以通过UI或者SQL方式来添加Paimon Catalog。
UI方式
在左侧导航栏,单击数据管理。
在Catalog列表页,单击创建Catalog。
选择Apache Paimon,单击下一步。
metastore 选择 dlf,catalog name 选择需要关联的V2.5版本的DLF Catalog,单击确认,即可创建Paimon Catalog。
SQL命令
在数据查询文本编辑区域,输入以下SQL并执行,即可创建Paimon Catalog。
CREATE CATALOG `flink_catalog_name` WITH ( 'type' = 'paimon', 'metastore' = 'rest', 'token.provider' = 'dlf', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com', 'warehouse' = 'dlf_test' );
参数说明如下:
参数
描述
是否必填
示例
type
Catalog类型,固定为paimon。
是
paimon
metastore
metastore类型,固定为rest。
是
rest
token.provider
Token提供方,固定为dlf。
是
dlf
uri
访问DLF Rest Catalog Server的URI,格式为
http://[region-id]-vpc.dlf.aliyuncs.com
。详见地域及访问域名中的Region ID。是
http://cn-hangzhou-vpc.dlf.aliyuncs.com
warehouse
DLF Catalog名称。
是
dlf_test
DLF 1.0版本
在DLF上创建Paimon Catalog,详情请参见DLF 1.0 快速入门。
在实时计算开发控制台上,创建Paimon Catalog。
UI方式
进入数据管理页面。
登录实时计算控制台,单击目标工作空间操作列下的控制台。
单击数据管理。
单击创建Catalog,选择Apache Paimon,单击下一步。
metastore 选择 dlf,catalog name 选择需要关联的V1.0版本的DLF Catalog,然后填写参数配置(所需参数与SQL方式一致)。
SQL命令
在数据查询文本编辑区域,输入以下命令。
CREATE CATALOG `my-catalog` 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>', 'fs.oss.endpoint' = '<fs.oss.endpoint>', 'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>', 'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>' );
配置项参数说明如下。
通用
配置项
说明
是否必填
备注
my-catalog
Paimon Catalog名称。
是
请填写为自定义的英文名。
type
Catalog类型。
是
固定值为paimon。
metastore
元数据存储类型。
是
固定值为dlf。
OSS
配置项
说明
是否必填
备注
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
fs.oss.endpoint
OSS服务的连接地址。
是
如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
如果需要将Paimon表存储在OSS-HDFS中,则fs.oss.endpoint的值为
cn-<region>.oss-dls.aliyuncs.com
,例如cn-hangzhou.oss-dls.aliyuncs.com
。
fs.oss.accessKeyId
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。
是
获取方法请参见OSS地域和访问域名和创建AccessKey。
fs.oss.accessKeySecret
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。
是
DLF
配置项
说明
是否必填
备注
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。
是
详情请参见已开通的地域和访问域名。
说明如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
dlf.catalog.region
DLF所在区域。
是
详情请参见已开通的地域和访问域名。
说明请和dlf.catalog.endpoint选择的地域保持一致
创建Paimon MaxCompute Catalog
前提条件
需要在对应的MaxCompute 项目中上传paimon插件。您可以通过以下任何一种方式上传:
使用本地客户端(odpscmd)访问已创建的MaxCompute项目,并执行
ADD JAR <path_to_paimon_maxcompute_connector.jar>;
代码,将Paimon插件上传至MaxCompute项目中。使用DataWorks新建资源将Paimon插件上传至MaxCompute项目中,详情请参见创建并使用MaxCompute资源。
SQL命令
CREATE CATALOG `my-catalog` WITH ( 'type' = 'paimon', 'metastore' = 'maxcompute', 'warehouse' = '<warehouse>', 'maxcompute.endpoint' = '<maxcompute.endpoint>', 'maxcompute.project' = '<maxcompute.project>', 'maxcompute.accessid' = '<maxcompute.accessid>', 'maxcompute.accesskey' = '<maxcompute.accesskey>', 'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>', 'fs.oss.endpoint' = '<fs.oss.endpoint>', 'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>', 'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>' );
说明在Paimon MaxCompute Catalog中创建Paimon表时,会在MaxCompute项目中同步创建Paimon外表。在MaxCompute中查询Paimon外表时,需要先在MaxCompute执行如下SET语句后,再执行SELECT语句。详情请参见步骤四:通过MaxCompute读取Paimon外部表。
SET odps.sql.common.table.planner.ext.hive.bridge = true; SET odps.sql.hive.compatible = true;
配置参数说明
通用
配置项
说明
是否必填
备注
my-catalog
Paimon Catalog名称。
是
请填写为自定义的英文名。
type
Catalog类型。
是
固定值为paimon。
metastore
元数据存储类型。
是
参数取值如下:
filesystem:配置为Paimon Filesystem Catalog类型时填写。
dlf:配置为Paimon DLF Catalog类型时填写。
maxcompute:配置为Paimon MaxCompute Catalog类型时填写。
sync:配置为Paimon Sync Catalog类型时填写。
OSS
配置项
说明
是否必填
备注
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
fs.oss.endpoint
OSS服务的连接地址。
是
如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
当warehouse指定的OSS Bucket与Flink工作空间不在同一地域,或使用其它账号下的OSS Bucket时需要填写。
获取方法请参见OSS地域和访问域名和创建AccessKey。
fs.oss.accessKeyId
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。
是
fs.oss.accessKeySecret
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。
是
MaxCompute
配置项
说明
是否必填
备注
maxcompute.endpoint
MaxCompute服务的访问域名。
是
详情请参见Endpoint。
maxcompute.project
需要操作的MaxCompute项目名称。
是
暂时不支持开启了Schema操作的MaxCompute项目。
maxcompute.accessid
拥有MaxCompute权限的阿里云账号的AccessKey。
是
获取方法请参见创建AccessKey。
maxcompute.accesskey
拥有MaxCompute权限的阿里云账号的AccessKey Secret。
是
获取方法请参见创建AccessKey。
maxcompute.oss.endpoint
从MaxCompute访问OSS服务的访问域名。
否
如果不填写,则默认使用fs.oss.endpoint的值。详情请参见OSS地域和访问域名。
说明由于OSS Bucket与MaxCompute项目处于同一地域,此处应填写内网endpoint。
maxcompute.life-cycle
MaxCompute外表的生命周期。
否
单位是天。
创建Paimon Sync Catalog
CREATE CATALOG `my-catalog` WITH (
'type' = 'paimon',
'metastore' = 'sync',
'source' = 'dlf',
'target' = 'maxcompute',
'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>',
'maxcompute.endpoint' = '<maxcompute.endpoint>',
'maxcompute.project' = '<maxcompute.project>',
'maxcompute.accessid' = '<maxcompute.accessid>',
'maxcompute.accesskey' = '<maxcompute.accesskey>',
'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>',
'fs.oss.endpoint' = '<fs.oss.endpoint>',
'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);
配置项参数说明如下。
通用
配置项
说明
是否必填
备注
my-catalog
Paimon Catalog名称。
是
请填写为自定义的英文名。
type
Catalog类型。
是
固定值为paimon。
metastore
元数据存储类型。
是
参数取值如下:
filesystem:配置为Paimon Filesystem Catalog类型时填写。
dlf:配置为Paimon DLF Catalog类型时填写。
maxcompute:配置为Paimon MaxCompute Catalog类型时填写。
sync:配置为Paimon Sync Catalog类型时填写。
snyc独有
配置项
说明
是否必填
备注
source
元数据同步的来源。
是
此处填写为dlf。
target
元数据同步的目标。
是
此处填写为maxcompute。
OSS
配置项
说明
是否必填
备注
warehouse
OSS服务中所指定的数仓目录。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
fs.oss.endpoint
OSS服务的连接地址。
是
如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
当warehouse指定的OSS Bucket与Flink工作空间不在同一地域,或使用其它账号下的OSS Bucket时需要填写。
获取方法请参见OSS地域和访问域名和创建AccessKey。
fs.oss.accessKeyId
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。
是
fs.oss.accessKeySecret
拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。
是
DLF
配置项
说明
是否必填
备注
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。
是
详情请参见已开通的地域和访问域名。
说明如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
dlf.catalog.region
DLF所在区域。
是
详情请参见已开通的地域和访问域名。
说明请和dlf.catalog.endpoint选择的地域保持一致。
maxcompute
配置项
说明
是否必填
备注
maxcompute.endpoint
MaxCompute服务的访问域名。
是
详情请参见Endpoint。
maxcompute.project
需要操作的MaxCompute项目名称。
是
暂时不支持开启了Schema操作的MaxCompute项目。
maxcompute.accessid
拥有MaxCompute权限的阿里云账号的AccessKey。
是
获取方法请参见创建AccessKey。
maxcompute.accesskey
拥有MaxCompute权限的阿里云账号的AccessKey Secret。
是
获取方法请参见创建AccessKey。
maxcompute.oss.endpoint
从MaxCompute访问OSS服务的访问域名。
否
如果不填写,则默认使用fs.oss.endpoint的值。详情请参见OSS地域和访问域名。
说明由于OSS Bucket与MaxCompute项目处于同一地域,此处应填写内网endpoint。
maxcompute.life-cycle
MaxCompute外表的生命周期。
否
单位是天。
管理Paimon数据库
在数据查询文本编辑区域输入如下命令,选中代码后单击运行。
创建数据库
创建Paimon Catalog后,Catalog中会自动创建名为
default
的数据库。--my-catalog需要替换为您创建的Paimon Catalog名称。 USE CATALOG `my-catalog`; --my_db需要替换为自定义的database英文名称。 CREATE DATABASE `my_db`;
删除数据库
重要无法删除DLF、MaxCompute和Sync类型Catalog下的default数据库,允许删除Filesystem类型Catalog下的default数据库。
--my-catalog需要替换为您创建的Paimon Catalog名称。 USE CATALOG `my-catalog`; --my_db需要替换为您想要删除的数据库名称。 DROP DATABASE `my_db`; --只需要删除内部没有任何表的数据库。 DROP DATABASE `my_db` CASCADE; --删除数据库且同时删除数据库下的所有表。
管理Paimon表
创建表
修改表结构
删除表
查看或删除Paimon Catalog
在实时计算控制台,单击目标工作空间操作列的控制台。
在数据管理页面,查看或删除Paimon Catalog。
查看:在Catalog列表页面,查看Catalog名称和类型。如果您需要查看Catalog下的数据库和表,请单击查看。
删除:在Catalog列表页面,单击目标Catalog名称对应操作列的删除。
说明删除Paimon Catalog只会删除Flink项目空间数据管理中的记录,不会影响Paimon表的数据文件。删除Catalog后,只需要重新执行创建Paimon Catalog,即可重新使用Catalog中的Paimon表。
您也可以在数据查询文本编辑区域输入
DROP CATALOG <catalog name>;
,选中代码后单击运行。
相关文档
创建Paimon表后,您可以从Paimon表中消费数据或向Paimon表中写入数据,详情请参见Paimon表数据写入和消费。
如果内置的Catalog无法满足您的业务需求,您可以使用自定义Catalog,详情请参见管理自定义Catalog。
不同场景下Paimon主键表和Append Scalable表的常用优化,详情请参见Paimon性能优化。