Hive -> MaxCompute 数仓迁移

本文通过 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。

全局参数

仅支持配置以 odps开头的自定义参数,用于控制 OSS 外表数据加载至 MaxCompute 的行为。具体参数参阅 Flag参数列表

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

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

  2. 填写基本信息。

参数名

是否必填

说明

迁移任务名称

迁移任务的名称。

Hive数据库

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

MaxCompute Project

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

描述

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

  1. 进行迁移任务设置。

参数名

是否必填

说明

迁移类型

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

迁移数据对象选择

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

OSS中转目录

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

后续数据迁移执行时间

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

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

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

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

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

自定义参数配置

仅支持配置以 odps开头的自定义参数,用于控制 OSS 外表数据加载至 MaxCompute 的行为。具体参数参阅 Flag参数列表

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

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

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

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

image.png

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

image.png

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

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

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

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

说明

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