迁移DLF 1.0(旧版)至DLF

本文介绍如何通过实时计算Flink部署JAR作业,实现从DLF 1.0(旧版)迁移至DLF的操作流程。

前提条件

操作步骤

步骤一:创建JAR作业

  1. 登录实时计算控制台

  2. 单击Flink全托管工作空间列表中的工作空间名称,进入对应的工作空间。

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

  4. 单击部署作业,选择JAR作业,在弹窗中填写以下配置项。

    参数

    描述

    本文示例

    部署模式

    固定为批模式。

    批模式

    部署名称

    填写对应的JAR作业英文名。

    migrate_paimon

    引擎版本

    选择实时计算引擎版本。

    vvr-8.0.11-flink-1.17

    JAR URI

    上传paimon-flink-action JAR包。

    上传paimon-flink-action-1.3-SNAPSHOT-for-clone-20250909.jar包。若上传过,可在下拉菜单中选择。

    Entry Point Class

    程序的入口类。

    不填写。

    Entry Point Main Arguments

    传入参数,在主方法里调用该参数。

    此处不填写。具体参数根据不同作业而定,详见步骤二。

    附加依赖文件

    指定要附加的依赖文件的路径或文件名。

    上传paimon-ali-vvr-8.0-vvp-1.3-ali-SNAPSHOT-for-clone-20250909.jar包。若上传过,可在下拉菜单中选择。

    说明

    更多部署参数说明,请参见部署JAR作业

  5. 单击部署,完成JAR作业的创建。

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

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

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

  2. 部署详情页,单击右上角的编辑,重新填写Entry Point Main Arguments参数。

    根据您的源表类型,选择不同的方式:

    Clone Hive

    Hive表包括Hive表 (Parquet,ORC,Avro)、Iceberg表、Hudi表,迁移后为Paimon Append表。

    clone
    --parallelism '<parallelism>'
    --database '<database-name>'
    --table '<table-name>'
    --catalog_conf 'metastore=dlf'
    --catalog_conf "warehouse=<warehouse>"
    --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_database '<target-database-name>'
    --target_table '<target-table-name>'
    --target_catalog_conf 'metastore=rest'
    --target_catalog_conf 'warehouse=<target-warehouse>'
    --target_catalog_conf 'uri=<dlf.next.endpoint>'
    --target_catalog_conf 'token.provider=dlf'
    --target_catalog_conf 'dlf.access-key-id=<dlf.access-key-id>'
    --target_catalog_conf 'dlf.access-key-secret=<dlf.access-key-secret>'
    --clone_from 'hive'
    --where '<filter-spec>'

    Clone Paimon

    clone
    --parallelism '<parallelism>'
    --database '<database-name>'
    --table '<table-name>'
    --catalog_conf 'metastore=dlf'
    --catalog_conf "warehouse=<warehouse>"
    --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_database '<target-database-name>'
    --target_table '<target-table-name>'
    --target_catalog_conf 'metastore=rest'
    --target_catalog_conf 'warehouse=<target-warehouse>'
    --target_catalog_conf 'uri=<dlf.next.endpoint>'
    --target_catalog_conf 'token.provider=dlf'
    --target_catalog_conf 'dlf.access-key-id=<dlf.access-key-id>'
    --target_catalog_conf 'dlf.access-key-secret=<dlf.access-key-secret>'
    --clone_from 'paimon'
    --where '<filter-spec>'

    配置项说明如下:

    配置项

    描述

    是否必填

    备注

    parallelism

    作业的并发度。

    示例:16

    database-name

    需要克隆的DLF 1.0(旧版)数据库名。

    示例:my_database

    table-name

    需要克隆的DLF 1.0(旧版)数据表名。

    示例:my_table

    warehouse

    需要克隆的DLF 1.0(旧版)数据目录(Catalog)的 OSS仓库路径。

    格式为oss://<bucket>/<object>。其中:

    • bucket:表示您创建的OSS Bucket名称。

    • object:表示您存放数据的路径。

    请在OSS管理控制台上查看您的bucketobject名称。

    dlf.catalog.id

    DLF 1.0(旧版)数据目录ID。

    请在DLF 1.0(旧版)控制台上查看数据目录对应的ID,具体操作请参见数据目录

    dlf.catalog.accessKeyId

    访问DLF服务所需的Access Key ID。

    详情请参见查看RAM用户的AccessKey信息

    dlf.catalog.accessKeySecret

    访问DLF服务所需的Access Key Secret。

    dlf.catalog.endpoint

    DLF服务的Endpoint。

    详情请参见已开通的地域和访问域名

    示例:dlf-vpc.cn-hangzhou.aliyuncs.com。

    dlf.catalog.region

    DLF所在区域。

    详情请参见已开通的地域和访问域名。请和dlf.catalog.endpoint选择的地域保持一致。

    示例:cn-hangzhou。

    fs.oss.endpoint

    OSS服务的连接地址。

    获取方法请参见OSS地域和访问域名

    OSS示例:oss-cn-hangzhou-internal.aliyuncs.com。

    OSS-HDFS示例:cn-hangzhou.oss-dls.aliyuncs.com

    fs.oss.accessKeyId

    拥有OSS读写权限的阿里云账号或RAM账号的Accesskey ID。

    详情请参见查看RAM用户的AccessKey信息

    fs.oss.accessKeySecret

    拥有OSS读写权限的阿里云账号或RAM账号的Accesskey secret。

    target-database-name

    克隆的DLF数据库名。

    示例:target_database

    target-table-name

    克隆的DLF数据表名。

    示例:target_table

    target-warehouse

    克隆的DLF数据目录(Catalog)名称。

    请在DLF控制台上查看数据目录名称,具体操作请参见数据目录

    dlf.next.endpoint

    DLF服务的Endpoint。

    详情请参见服务接入点

    示例:cn-hangzhou-vpc.dlf.aliyuncs.com

    dlf.access-key-id

    访问DLF服务所需的Access Key ID。

    详情请参见查看RAM用户的AccessKey信息

    dlf.access-key-secret

    访问DLF服务所需的Access Key Secret。

    clone_from

    克隆的源表类型。

    'hive' 或 'paimon'

    filter-spec

    克隆时的分区过滤条件。

    dt = '2024-10-01'

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

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

    • 整个数据目录或数据库迁移时可以选择排除部分表,通过--excluded_tables <excluded-tables-spec>设置。示例:my_db.my_tbl,my_db2.my_tbl2。单表迁移时请勿设置。

  3. 完成参数配置后,单击部署详情页的保存

  4. 作业运维页面,单击该JAR作业的启动,保持默认参数,启动作业。

步骤三:验证作业结果

当作业状态变成已完成时,登录DLF 1.0(旧版)控制台DLF 控制台,检查是否迁移成功。

  • 若是整个Catalog迁移:检查DLF中的Catalog结构以及内部的库、表是否与DLF 1.0(旧版) 保持一致。

  • 若是整个数据库迁移:检查DLF中的库、表结构是否与DLF 1.0(旧版) 保持一致。

  • 若是单个数据表迁移:检查DLF中的表结构是否与DLF 1.0(旧版) 保持一致。