本文介绍如何通过Flink部署JAR作业将DLF 1.0 Paimon表结构迁移至DLF 2.0。
背景信息
当您需迁移DLF 1.0 Paimon表至DLF 2.0时,您可通过Flink Paimon Action JAR作业进行迁移,此时元数据和数据均迁移至DLF 2.0 中。
迁移作业只迁移最新的Snaphot。
前提条件
已创建Flink全托管工作空间,引擎版本须为VVR 8.0.9及以上。详情请参见开通实时计算Flink版。
已创建DLF 1.0数据目录,已在DLF 1.0上使用托管于OSS上的Paimon表,并可通过Flink VVP访问。详情请参见元数据管理和创建Paimon DLF Catalog。
操作步骤
步骤一:创建JAR作业
登录实时计算控制台,在Flink全托管页签下选择目标工作空间,单击控制台进入实时计算 Flink 版。
左侧菜单栏选择
,进入作业运维页面。单击部署作业,选择JAR作业,在弹窗中填写参数。关键参数如下:
参数
描述
本文示例
部署模式
如果被克隆的表在克隆过程中不需要写入,推荐使用批模式以获得更好的性能;否则,请使用流模式。
流模式
部署名称
填写对应的JAR作业英文名。
migrate_paimon
引擎版本
选择实时计算引擎VVR 8.0.5及以上版本。
vvr-8.0.10-flink-1.17
JAR URI
上传paimon-flink-action JAR包。
上传paimon-flink-action-1.0-SNAPSHOT.jar包。若上传过,可在下拉菜单中选择。
Entry Point Class
程序的入口类。
不填写。
Entry Point Main Arguments
传入参数,在主方法里调用该参数。
此处不填写。具体参数根据不同作业而定,详情见步骤二。
附加依赖文件
指定要附加的依赖文件的路径或文件名。
上传paimon-ali-vvr-8.0-vvp-1.0-ali-SNAPSHOT.jar包。若上传过,可在下拉菜单中选择。
说明更多部署参数说明,请参见Flink 部署JAR作业。
单击弹窗右下角的部署按钮,完成JAR作业的创建。
步骤二:调整参数并启动作业
Flink Paimon作业可支持迁移整个Catalog、整个数据库或单个Paimon表。根据不同作业目的,调整Entry Point Main Arguments
参数。
在作业运维列表选择刚创建的JAR作业,单击名称查看部署详情。
在部署详情页,点击右上角编辑按钮,重新填写
Entry Point Main Arguments
参数。clone --parallelism '<parallelism>' --warehouse '<warehouse>' --database '<database-name>' --table '<table-name>' --catalog_conf 'metastore=dlf' --catalog_conf 'dlf.catalog.id=<dlf.catalog.id>' --catalog_conf 'dlf.catalog.accessKeyId=<dlf.catalog.accessKeyId>' --catalog_conf 'dlf.catalog.accessKeySecret=<dlf.catalog.accessKeySecret>' --catalog_conf 'dlf.catalog.endpoint=<dlf.catalog.endpoint>' --catalog_conf 'dlf.catalog.region=<dlf.catalog.region>' --catalog_conf 'fs.oss.endpoint=<fs.oss.endpoint>' --catalog_conf 'fs.oss.accessKeyId=<fs.oss.accessKeyId>' --catalog_conf 'fs.oss.accessKeySecret=<fs.oss.accessKeySecret>' --target_warehouse '<target-warehouse>' --target_database '<target-database-name>' --target_table '<target-table-name>' --target_catalog_conf 'metastore=dlf-paimon' --target_catalog_conf 'dlf.endpoint=<dlf.endpoint>' --target_catalog_conf 'dlf.region=<dlf.region>' --target_catalog_conf 'dlf.catalog.instance.id=<dlf.catalog.instance.id>'
具体配置项说明如下:
配置项
描述
是否必填
备注
parallelism
作业的并发度。
是
示例:16
warehouse
需要克隆的DLF 1.0数据目录(Catalog)的 OSS仓库路径。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
请在OSS管理控制台上查看您的bucket和object名称。
database-name
需要克隆的DLF 1.0数据库名。
否
示例:my_database
table-name
需要克隆的DLF 1.0数据表名。
否
示例:my_table
dlf.catalog.id
DLF 1.0数据目录ID。
是
请在数据湖构建控制台上查看数据目录对应的ID,具体操作请参见数据目录。
dlf.catalog.accessKeyId
访问DLF服务所需的Access Key ID。
是
获取方法请参见创建AccessKey。
dlf.catalog.accessKeySecret
访问DLF服务所需的Access Key Secret。
是
dlf.catalog.endpoint
DLF服务的Endpoint。
是
详情请参见已开通的地域和访问域名。如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
示例:dlf-vpc.cn-hangzhou.aliyuncs.com。
dlf.catalog.region
DLF所在区域。
是
详情请参见已开通的地域和访问域名。请和dlf.catalog.endpoint选择的地域保持一致。
示例:cn-hangzhou。
fs.oss.endpoint
OSS服务的连接地址。
是
获取方法请参见OSS地域和访问域名。如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。
示例:oss-cn-hangzhou-internal.aliyuncs.com。
fs.oss.accessKeyId
拥有OSS读写权限的阿里云账号或RAM账号的Accesskey ID。
是
获取方法请参见创建AccessKey。
fs.oss.accessKeySecret
拥有OSS读写权限的阿里云账号或RAM账号的Accesskey secret。
是
target-warehouse
克隆的DLF 2.0 数据目录(Catalog)的 OSS仓库路径
是
DLF2 Catalog 并没有该参数,此处无需填写。
说明由于历史原因,此参数必填,您可填写任意值以防报错。请勿填写OSS地址,可填写xxx绕过检查,
target-database-name
克隆的DLF 2.0 数据库名
否
示例:target_database
target-table-name
克隆的DLF 2.0 数据表名
否
示例:targety_table
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所在区域
是
详情请参见已开通的地域和访问域名。请和dlf.endpoint选择的地域保持一致。
示例:cn-hangzhou。
dlf.catalog.id
DLF 2.0 数据目录ID。
是
请在数据湖构建控制台上查看数据目录对应的ID。
示例:clg-paimon-xxxx。
重要若需迁移整个数据库,请勿设置
table-name
和target-table-name
。若需迁移整个数据目录,请勿设置
database-name
和target-database-name
。
完成参数配置之后,单击部署详情页右上角的保存按钮。
单击作业运维页右上角的启动按钮,保持默认参数,启动作业。
步骤三:验证作业结果
当作业状态变成已完成时,登录DLF 1.0 控制台和DLF 2.0 控制台,检查是否迁移成功。
若是整个Catalog迁移:检查DLF 2.0中的Catalog结构以及内部的库、表是否与DLF 1.0 保持一致。
若是整个数据库迁移:检查DLF 2.0中的库、表结构是否与DLF 1.0 保持一致。
若是单个数据表迁移:检查DLF 2.0中的表结构是否与DLF 1.0 保持一致。
常见问题
Q:作业运行过程,OSS权限报错Access Denied by bucket policy。
target-warehouse参数请勿填写OSS地址,可填写XXX绕过必填检查。
相关文档
使用Flink管理Paimon Catalog,可参见管理Paimon Catalog。
使用Flink管理Paimon数据,可参见Paimon数据管理配置。
Flink VVP + DLF 1.0实践,可参见Flink VVP+DLF数据入湖与分析实践。