Hive -> MaxCompute 数仓迁移

更新时间:
复制 MD 格式

本文通过 HDFS 存储复制 + OSS 外表加载 的方式将 Hive 数据表通过 OSS 中转的方式迁移到 MaxCompute,包括将 Hive 表结构迁移到 MaxCompute、存量数据迁移到 MaxCompute。迁移任务可以开启增量,以定期发现新的 Hive 数据,并及时同步到 MaxCompute。

适用范围

当前仅杭州地域支持该功能。

前提条件

使用限制

  • 不支持__HIVE_DEFAULT_PARTITION__分区迁移。

  • 在增量迁移阶段,不支持同步源端的删表、删分区、表结构变更等DDL操作。

计费说明

数据迁移会产生如下费用:

  • 数据传输费用:将 HDFS 数据复制到 OSS 时,会产生 DataWorks 资源组的数据计算费用。为降低成本,建议您采用包年包月模式的资源组来执行迁移作业。详情请参见包年包月资源组计费。

  • 中转存储费用:迁移任务使用 OSS 作为中转存储,会产生相应的 OSS 存储费用。建议您开启“单表/分区迁移完成后 OSS 文件自动删除”功能,来节省您的存储开销。

  • 计算费用:计算费用主要源于以下两个场景

    • 将 OSS 外表数据加载至 MaxCompute 时,会因执行 SQL 作业而产生 MaxCompute 计算费用。

    • 若启用“迁移结果校验”功能,系统将在源端 Hive 和目标端 MaxCompute 分别执行校验 SQL,这会产生额外的计算费用。

    • 为有效控制计算成本,建议您为迁移作业选购包年包月的 MaxCompute 计算资源。详情请参见计算费用(包年包月)。

  • 网络费用:网络费用取决于您的连接方式。如果使用专线,将产生专线费用;如果通过公网传输,则通常按源端平台的数据流出流量进行计费。

操作步骤

步骤一:绑定资源组

  1. 登录 云迁移中心,在左上角选择目标地域,在右上角点击 前往湖仓迁移中心。

  2. 在左侧导航栏,选择迁移准备 > 资源组与服务代理管理。

  3. 在资源组页签,单击绑定资源组,选择 DataWorks Serverless 资源组。

资源组绑定完成后,您可以在资源组页签,查看已绑定的资源组。

步骤二:安装服务代理

在使用数据迁移模块前,您需要预先安装服务代理,它会建立与数据源的连接,以执行元数据即席查询、元数据盘点等操作。

  1. 在左侧导航栏,选择迁移准备 > 资源组与服务代理管理。

  2. 在服务代理页签,单击申请License,会自动生成一个License,防止服务代理被滥用。

  3. 单击服务代理安装,输入服务代理名称,选择地域与ECS,即可自动化部署安装。

安装完成后,可通过服务代理列表查看服务代理在线状态。

步骤三:创建数据源

  1. 在左侧导航栏,选择迁移准备 > 数据源管理。

  2. 在湖仓存储及元数据管理页签,单击新建数据源。

  3. 配置 Hive 数据源,数据源类型选择Hive,详情见 Hive数据源。

  4. 配置 HDFS 数据源,数据源类型选择HDFS,详情见 HDFS数据源。

  5. 配置 OSS 数据源,数据源类型选择OSS,详情见 OSS数据源。

  6. 配置 MaxCompute 数据源,数据源类型选择MaxCompute,详情见 MaxCompute数据源。

步骤四:添加迁移组

  1. 在左侧导航栏,选择湖仓数据迁移 > 数据迁移。

  2. 在Hive->MaxCompute页签,点击添加迁移组。

  3. 根据界面提示,配置迁移组。

参数名

是否必填

说明

迁移组名称

是

迁移组的名称。用于统一管理特定迁移场景下的所有相关任务。

源端数据源类型

是

指定数据来源的系统类型,当前仅支持 Hive。

目标端数据源类型

是

指定数据去向的系统类型,当前仅支持 MaxCompute。

源端数据源

是

从已注册的数据源列表中选择具体的源端 Hive 实例。

目标端数据源

是

从已注册的数据源列表中选择具体的目标端 MaxCompute 实例。

迁移方式

是

当前仅支持OSS中转后,外表转内表。

源端存储数据源

是

支持 HDFS、AWS S3、Azure Blob、Tencent COS。

目标端中转数据源

是

当前仅支持 OSS。

全局参数

否

支持配置两种类型的自定义参数:

  • 以 rclone.开头的参数,用于控制源端数据复制到 OSS 的行为。常见参数包括并行参数(rclone.transfers 和 rclone.checkers)、带宽限制参数(rclone.bwlimit)。具体参数参阅 rclone参数列表。

  • 以 odps.开头的参数,用于控制 OSS 外表数据加载至 MaxCompute 的行为。具体参数参阅 Flag参数列表。

步骤五:创建并执行迁移任务

  1. 在Hive->MaxCompute页签,点击新建迁移任务的按钮。

  2. 填写基本信息。

参数名

是否必填

说明

迁移任务名称

是

迁移任务的名称。

Hive数据库

是

指定作为数据来源的源端 Hive 数据库。

MaxCompute Project

是

指定用于接收数据的目标端 MaxCompute 项目空间。

描述

否

填写关于该迁移任务的备注或补充说明信息。

  1. 进行迁移任务设置。

参数名

是否必填

说明

迁移类型

是

指定数据迁移的模式。“结构+存量文件迁移”仅迁移历史存量数据及表结构;“结构+存量+增量文件迁移”在存量基础上增加对后续增量数据的迁移支持。

迁移数据对象选择

是

指定用于筛选迁移对象的规则模式,支持“白名单模式”或“黑名单模式”。具体规则参阅 黑白名单配置。

OSS中转目录

否

存储中转数据的 OSS 目录,默认存放在bucket的根目录。

后续数据迁移执行时间

否

仅当迁移类型选择“结构+存量+增量文件迁移”时生效且必填。用于设定增量数据同步的起始时间点。

是否开启迁移结果校验(内置count校验)

是

开启后,迁移任务完成后将自动执行源端与目标端的数据量(Count)一致性校验。

单表/分区迁移完成后中转OSS文件是否自动删除

是

选择是否在单个表或分区迁移成功后自动删除中转 OSS 中的临时文件,以节省中转存储成本。

自定义参数配置

否

支持配置两种类型的自定义参数:

  • 以 rclone.开头的参数,用于控制源端数据复制到 OSS 的行为。常见参数包括并行参数(rclone.transfers 和 rclone.checkers)、带宽限制参数(rclone.bwlimit)。具体参数参阅 rclone参数列表。

  • 以 odps.开头的参数,用于控制 OSS 外表数据加载至 MaxCompute 的行为。具体参数参阅 Flag参数列表。

  1. 在迁移任务列表页面,找到创建完成的迁移任务,点击操作列的执行迁移。

步骤六:查看迁移任务详情

创建完成后,您可在Hive->MaxCompute页签,查看迁移任务状态,若迁移任务运行失败后:

  • 您可以单击迁移任务左侧的箭头v,展开任务执行情况,再点击操作列的任务详情,查看每张表的执行情况。

image.png

  • 在迁移明细页面,您可以按照表名、分区名、是否分区表、迁移状态和校验状态等进行筛选,单击目标任务操作列中查看,以确定具体失败原因。

image.png

  • 您可以根据需求选择以下方式重跑任务:

    • 重跑所有失败作业:返回迁移任务列表页面,再次点击操作列的执行迁移。

    • 批量重跑指定表/分区:在迁移明细页面底部点击批量重跑,勾选目标表和分区后,点击确定按钮。

    • 重跑单个表/分区:在迁移明细页面找到对应的表或分区,点击操作列的重跑。

说明:

  • 数据迁移过程包含结构迁移、存储迁移、外表转内表三个阶段。执行重跑操作后,任务将从此前失败的阶段断点恢复运行。