ODPS数据迁移指南

1. 背景调研

1.1 ODPS源与目的集群

调研项 内容
ODPS源集群版本
ODPS目的集群版本
ODPS源与目的是否在一个集群/可使用相同账号
ODPS源集群AccessKeyId
ODPS源集群AccessKeySecret
ODPS目的集群AccessKeyId
ODPS目的集群AccessKeyIdSecret

1.2 预迁移数据统计

所属Project 表名 大小 是否要迁移增量
Project1 Table1 Desc查看表大小

2. 工具选择与方案确定

目前有四种方式可用于ODPS的数据迁移。

  1. 如果源与目的ODPS在一个集群,或可使用相同账号,则推荐使用ODPS COPY TASK的方式进行迁移;
  2. 如果表的数量少,可通过手动建立CDP任务的方式进行迁移;
  3. 如果表的数量多,可通过调用Base CDP API接口的方式批量建立CDP任务,但目前此API接口还不成熟,和页面有较多关联;
  4. 如果是不同集群,不同账号体系下的ODPS数据迁移,则采用使用Datax工具进行迁移,迁移所需的配置文件,可用脚本批量生成;

3. 具体实施

3.1 表(分区)结构迁移

本部分操作,可通过调用ODPS的SQL来完成。具体可编写程序,调用ODPS SDK或ODPS cmd工具来进行。
对预迁移的表,在源ODPS中获取表结构,根据表结构,在目标ODPS中批量运行组装好的建表语句,即可完成。

3.1.1 要迁移的表名梳理

  1. 根据1.2中调研结果,梳理出表名列表;
  2. 此步骤,也可使用show tables语句获取表名,然后将临时表等不需要迁移的表名去除;

3.1.2 生成DDL建表(分区)语句

此步骤操作,在ODPS源端进行,可使用ODPS CMD工具。其配置文件位于config/odps_config.ini,配置项如下:

project_name=
access_id=<accessid>
access_key=<accesskey>
end_point=http://service.odps.aliyun.com/api

这里注意,专有云环境下的end_point需要联系专有云管理人员获取。

在Bash环境下,执行如下示例语句,导出表结构。请根据实际情况改写shell语句,例如读取表名列表文件等。这里的odps_config.ini.src是源端ODPS的配置文件。

for table in tab1 tab2 tab3
do
odpscmd --config=odps_config.ini.src -e "export table $table "|awk -F ':' '{print $2}' >>tab.ddl
done

3.1.3 建立对应表(分区)

将ODPS CMD的配置文件配置成目的ODPS,然后执行如下实例语句。这里的odps_config.ini.dst是目的端ODPS的配置文件。

odpscmd --config=odps_config.ini.dst -f tab.ddl

3.2 数据迁移

3.2.1 使用ODPS TASK COPY

注意使用该工具的前提是在同一ODPS集群,或具有相同的账号。示例语句如下所示,请按照实际情况进行修改。

for table in tab1 tab2 tab3
do
odpscmd --config=odps_config.ini.dst -e "copy -d import -t proj_i.$table -url=http://src_odps_tunnel_endpoint/proj_p/$table -a" &
done

src_odps_tunnel_endpoint指源ODPS的tunnel endpoint,专有云环境下,请联系云管理人员获取。odps_config.ini.dst同上只目的端odps 的配置。
Copy命令的解释如下,有助于帮助使用和理解该命令。

copy [-a 或-o] -d [import 或 export] -url [TUNNEL 服务的 url 地址] -t [本地 ODPS 表名] -p [本地 ODPS 分区名] -e [远端 ODPS];
-a (追加模式)把数据附加到目标表已有数据之后
-o (覆盖模式)目标表已有数据被删除,新数据进入目标表
-d IMPORT或EXPORT。IMPORT表示数据从远端集群导入本地集群,EXPORT 表示数据从本地集群导入远端 集群
-url TUNNEL 服务的url地址,其中包含 Project 名,表名和分区名(如果是分区表的话)
-t 本地ODPS集群的表名
-p 本地ODPS集群的分区名,如果该表没有分区,该选项被省略
-e 远端ODPS的访问点(end point)
  • append(-a)和overwrite(-o)的语义很明确,不过tunnel其实是只支持append操作的,所以-o 命令只不过是帮你执行了一下alter table drop partition然后add partition的操作。
  • -url 指定的是tunnel地址,分区表的写法http://odps_endpoint_tunnel/prj_name/table_name/month=1,day=1,不需要写引号,多级分区用逗号分隔。
  • -t 可以写成project_name.table_name的名字
  • -p 分区名称不需要写引号,多级分区逗号分隔
  • -e 当前tunnel支持路由功能,copy task将使用-e指定的远端odps endpoint路由到对应的tunnel endpoint

以下举个例子。从源ODPS的 project_a.table_a,分区是ds='ds1'/pt=‘pt1’,导入到目的生产的project_b.table_b,分区是ds='ds2'/pt='pt2',在目的生产的ODPS CMD上运行:

copy -o -d import -url http://dt-all.ext.odps.aliyun-inc.com/project_a/table_a/ds=ds1,pt=pt1 -t project_b.table_b -p ds=ds2,pt=pt2 -e http://service-all.ext.odps.aliyun-inc.com/api;

3.2.2 使用DataX工具

本步骤利用DataX工具进行数据迁移,DataX是阿里巴巴集团内被广泛使用的离线数据同步工具。
利用datax批量配置工具来生成对应的脚本和json文件。
本步骤流程如下:

  1. 进行环境的准备,本步骤需要在迁移机上安装odpscmd与datax工具,其中datax工具和datax批量工具需要python2.6及以上的运行环境;
  2. 在datax批量工具的config.ini中进行相关配置,包括源与目的ODPS的accessID与key、odps及tunnel的endpoint、odpscmd与datax的路径等信息;
  3. 在tables.ini中填写调试用到的表列表;
  4. 运行python datax_tools.py生成对应的脚本和json配置文件;
  5. 检查脚本与json配置文件;
  6. 运行run_datax.py脚本,批量顺序执行datax任务;
  7. 运行check_datax.py脚本,进行条数的检查;

3.2.2.1 批量配置工具

批量配置工具的流程如下:

  1. 配置源与目的端的基础信息;
  2. 读取并校验源与目的端的表结构和分区信息;
  3. 根据校验结果,生成DataX所需的json文件;
  4. 生成顺序运行Datax迁移命令的脚本文件;
  5. 利用select count(*)的方式进行条数检查;

代码示例详见Datax批量工具,可自行修改优化。

3.2.2.2 DataX使用与调优

本部分详见Datax的使用文档。

时间: 2025-01-21 01:19:39

ODPS数据迁移指南的相关文章

DRDS到ODPS数据迁移指南

数据同步节点任务是阿里云大数据平台对外提供的稳定高效.弹性伸缩的数据同步云服务.DRDS到ODPS数据迁移采用CDP的方式同步数据. 开始DRDS到ODPS数据迁移 1. 创建源和目标库表结构 初次在同步数据前需要在源库和目标库创建好相应的表结构. 2.  配置数据源 2.1源数据源配置-DRDS    1.登录Base管控台,单击顶部菜单栏中的项目管理,并选择相应的项目. 2.进入数据源配置,单击新增数据源. 3. 在新建数据源弹出框中,选择数据源类型为DRDS; 配置项说明(上图中带*的都必

ODPS到ODPS数据迁移指南

1.工具选择与方案确定 目前,有两种方式可用于专有云环境下的从MaxCompute到MaxCompute整体数据迁移. (1)使用DataX工具进行迁移,迁移所需的作业配置文件及运行脚本,可用DataX批量配置工具来生成: (2)通过大数据开发套件(DataIDE)- 数据开发进行迁移,这种方式可选择界面向导模式逐步配置,操作简单容易上手: 2.具体实施 2.1使用DataX工具  这种场景需要先从源MaxCompute中导出元数据DDL,在目标MaxCompute中初始化表,然后借助DataX

ODPS到ADS数据迁移指南

数据同步节点任务是阿里云大数据平台对外提供的稳定高效.弹性伸缩的数据同步云服务.ODPS到ADS数据迁移采用CDP的方式同步数据. 1.     创建源和目标库表结构 初次在同步数据前需要在源库和目标库创建好相应的表结构. 2.     配置数据源 2.1源数据源配置-ODPS 1.登录Base管控台,单击顶部菜单栏中的项目管理,并选择相应的项目.   2.进入数据源配置,单击新增数据源. 3. 在新建数据源弹出框中,选择数据源类型为ODPS;   配置项说明(上图中带*的都必须

DRDS向ADS数据迁移指南

1 CDP简介 数据同步节点任务是阿里云大数据平台对外提供的稳定高效.弹性伸缩的数据同步云服务.用户利用数据同步节点可以轻松地实现DRDS到ADS的数据同步.使用CDP将DRDS数据同步至ADS前需要在目标端创建相应的表结构,同步数据的具体操作如下: 2配置数据源 2.1增加DRDS数据源 1.登录Base管控台,单击顶部菜单栏中的项目管理,并选择相应的项目. 2. 进入数据源配置,单击新增数据源. 3. 在新建数据源弹出框中,选择数据源类型为 DRDS. 4. 配置 DRDS 数据源的各个信息

MaxCompute跨Region数据迁移指导手册

概述 大数据计算服务(MaxCompute,原名ODPS)是一种快速.完全托管的 GB/TB/PB 级数据仓库解决方案.MaxCompute 为用户提供了完善的数据导入导出方案以及多种经典的分布式计算模型,能够更快速的解决海量数据计算问题,有效降低企业成本,并保障数据安全. 随着MaxCompute的多Region部署,一些用户可能需要把MaxCompute的应用从老的Region上迁移到和自己的业务系统相同的Region上来,从而在数据传输上获得更好的性能并减少数据传输费用.本指导手册主要聚焦

PgSQL · 最佳实践 · 云上的数据迁移

title: PgSQL · 最佳实践 · 云上的数据迁移 author: 义从 背景 大多数使用云产品作为 IT 解决方案的客户同时使用多款云产品是一个普遍现象. 用户在多款云产品之间转移数据成为一个基础的需求. 例如 1. 用户把线下机房中的 Oracle 数据库中的数据 迁移到云上 RDS PPAS 中. 2. 使用 RDS MYSQL 做为数据库支撑交易型业务场景,同时使用 HybridDB for PostgreSQL 作数据仓库解决方案. 3. 把 ODPS 中的大量数据导入到 Hy

CRP升级到RDC,迁移指南

有问题,或者疑问,请使用钉钉扫码联系. 我已经了解RDC,可以直接跳转至迁移指南 开发同学,您好!感谢两年来在CRP上的陪伴.为了给您提供更好的服务,我们推出了企业级一站式研发协同平台RDC.RDC基于阿里巴巴十余年的内部研发协同平台经验,结合阿里云生态,为您提供项目管理.代码托管.构建发布和系统运维,等端到端的研发协同体验. 在提供CRP所有能力的前提下,RDC在多个方面进行了增强,比如: 作为阿里云的一方产品,RDC提供更好的SLA. 提供构建缓存,加速您的构建. 实验室提供包括单元测试.集

[大数据新手上路]“零基础”系列课程--如何将ECS上的Hadoop数据迁移到阿里云数加·MaxCompute

免费开通大数据服务:https://www.aliyun.com/product/odps  想用阿里云数加·大数据计算服务(MaxCompute),但是现在数据还在hadoop上,怎么办? 大数据计算服务(MaxCompute) 快速.完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全. 了解更多   别烦恼,跟着我们走,来一次MaxCompute零基础数据迁移之旅-Let'

云端数据迁移最佳操作指南

参与Gartner咨询公司市场调查的IT高管们把云计算称之为2011年势在必行的头等技术,企业正在不断发挥想象力,扩大预算范围,从经济和业务角度来影响云的效益.云存储功能,尤其在数据备份和恢复功能方面正获得着广泛的认可.在当今IT共同体中,没有任何一个市场模式能比云计算更为突出.对于IT产业来说,云存储或许很流行,但并非人人都懂得如何将传统的人工数据转移到基于云的数据备份和恢复中,至少他们必须依靠云服务供应商做一些迁移工作.许多公司越来越多地将其关键业务数据迁移到云环境中,他们毫不犹豫地这样做是