Flink迁移DLF 1.0 Paimon表至DLF 2.0

本文介绍如何通过Flink部署JAR作业将DLF 1.0 Paimon表结构迁移至DLF 2.0。

背景信息

当您需迁移DLF 1.0 Paimon表至DLF 2.0时,您可通过Flink Paimon Action JAR作业进行迁移,此时元数据和数据均迁移至DLF 2.0 中。

说明

迁移作业只迁移最新的Snaphot。

前提条件

操作步骤

步骤一:创建JAR作业

  1. 登录实时计算控制台,在Flink全托管页签下选择目标工作空间,单击控制台进入实时计算 Flink 版

  2. 左侧菜单栏选择运维中心 > 作业运维,进入作业运维页面。

  3. 单击部署作业,选择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作业

  4. 单击弹窗右下角的部署按钮,完成JAR作业的创建。

步骤二:调整参数并启动作业

Flink Paimon作业可支持迁移整个Catalog、整个数据库或单个Paimon表。根据不同作业目的,调整Entry Point Main Arguments参数。

  1. 作业运维列表选择刚创建的JAR作业,单击名称查看部署详情

  2. 部署详情页,点击右上角编辑按钮,重新填写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。

    image

    重要
    • 若需迁移整个数据库,请勿设置table-nametarget-table-name

    • 若需迁移整个数据目录,请勿设置database-nametarget-database-name

  3. 完成参数配置之后,单击部署详情页右上角的保存按钮。

  4. 单击作业运维页右上角的启动按钮,保持默认参数,启动作业。

步骤三:验证作业结果

当作业状态变成已完成时,登录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。

    image

target-warehouse参数请勿填写OSS地址,可填写XXX绕过必填检查。

相关文档