配置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 8.0.7及以上版本支持元数据存储类型设置为DLF 2.0版本。
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 )
0.9
8.0.7、8.0.8、8.0.9
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.0版本与DLF 1.0版本创建方式和参数有较大差异,仅VVR 8.0.7及以上版本支持DLF 2.0版本,请您确认使用的DLF版本,根据对应的版本使用相应的方式创建Catalog。
ARM架构暂不支持DLF 2.0版本。
DLF 2.0版本
UI方式
进入元数据管理页面。
登录实时计算控制台,单击目标工作空间操作列下的控制台。
单击元数据管理。
单击创建Catalog,选择Apache Paimon,单击下一步。
填写参数配置信息。
配置项
说明
是否必填
备注
metastore
元数据存储类型
是
dlf:配置为Paimon DLF Catalog类型时填写。
catalog name
数据目录名称
是
UI创建元数据时,如果DLF Catalog目录已经创建,可以从下拉菜单进行选择。
SQL命令
在数据查询文本编辑区域,输入以下命令。
CREATE CATALOG `my-catalog` WITH(
'metastore'='dlf-paimon',
'type'='paimon',
'dlf.endpoint'='<dlf.endpoint>',
'dlf.region'='<dlf.region>',
'dlf.catalog.instance.id'='<dlf.catalog.instance.id>'
);
配置项参数说明如下。
配置项 | 说明 | 是否必填 | 备注 |
my-catalog | Paimon Catalog名称。 | 是 | 请填写为自定义的英文名。 |
metastore | 元数据存储类型。 | 是 | 固定值为dlf-paimon。 |
type | Catalog类型。 | 是 | 固定值为paimon。 |
dlf.endpoint | DLF服务的Endpoint。 | 是 | 跨域(oxs区):dlfnext-share.[regionId].aliyuncs.com。 vpc 区 :dlfnext-vpc.[regionId].aliyuncs.com。 公网: dlfnext.[regionId].aliyuncs.com。 详情请参见已开通的地域和访问域名。 例如:dlfnext-vpc.cn-hangzhou.aliyuncs.com。 |
dlf.region | DLF所在区域 | 是 | 详情请参见已开通的地域和访问域名。例如:cn-hangzhou 说明 请和dlf.endpoint选择的地域保持一致。 |
dlf.catalog.instance.id | DLF数据目录ID。 | 是 | 请在数据湖构建控制台上查看数据目录对应的ID,具体操作请参见数据目录。 |
DLF 1.0版本
UI方式
进入元数据管理页面。
登录实时计算控制台,单击目标工作空间操作列下的控制台。
单击元数据管理。
单击创建Catalog,选择Apache Paimon,单击下一步。
填写参数配置(所需参数与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性能优化。