文档章节

MaxCompute_2_MaxCompute数据迁移文档

_夜枫
 _夜枫
发布于 2017/04/19 10:00
字数 1002
阅读 13
收藏 0

乍一看标题会以为是不是作者写错了,怎么会有从MaxCompute到MaxCompute迁移数据的场景呢?在实际使用中已经有客户遇到了这种场景,比如:两个网络互通的专有云环境之间数据迁移、公共云数加DataIDE上两个云账号之间数据迁移、还有网络不通的两个MaxCompute项目数据迁移等等,下面我们逐个场景介绍。

场景一:两个网络互通的专有云MaxCompute环境之间数据迁移

    这种场景需要先从源MaxCompute中导出元数据DDL,在目标MaxCompute中初始化表,然后借助DataX工具完成数据迁移,步骤如下:

1.   安装配置ODPS客户端

https://help.aliyun.com/document_detail/27804.html

2.   安装配置Datax客户端

下载DataX工具包,下载后解压至本地某个目录,修改权限为755,进入bin目录,即可运行样例同步作业:

 

$ tar zxvf datax.tar.gz 
$ sudo chmod -R 755 {YOUR_DATAX_HOME} 
$ cd  {YOUR_DATAX_HOME}/bin 
$ python datax.py ../job/job.json

 

 

3.   表结构迁移

3.1 从ODPS中导出某个表的建表语句,可用来测试数据同步。

export table table_name;

 

DDL:create table IF NOT EXISTS ` date_timestame ` (`id` datetime comment "") partitioned by(pt string comment "");
alter table ` date_timestame ` add IF NOT EXISTS partition(dt='20161001');
alter table ` date_timestame ` add IF NOT EXISTS partition(dt='20161101');
alter table ` date_timestame ` add IF NOT EXISTS partition(dt='20161201');
alter table ` date_timestame ` add IF NOT EXISTS partition(dt='20170101');

 

3.2 从ODPS批量导出建表语句。

export <projectname> <local_path>;

3.3 将建表语句在目标ODPS的project下执行,即可完成表结构创建。

4.   数据迁移

    从源ODPS读取数据写入到目标ODPS,先按照“表结构迁移”在目标ODPS创建一个表,做DataX数据同步验证。

4.1 、创建作业的配置文件(json格式)

    可以通过命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}

odps2odps.json样例(填写相关参数,odpsServer/ tunnelServer要改成源/目标ODPS配置):

 

{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [
            {
                "reader": {
                    "name": "odpsreader",
                    "parameter": {
                        "accessId": "${srcAccessId}",
                        "accessKey": "${srcAccessKey}",
                        "project": "${srcProject}",
                        "table": "${srcTable}",
                        "partition": ["pt=${srcPartition}"],
                        "column": [
                            "*"
                        ],
                        "odpsServer": "http://service.odpsstg.aliyun-inc.com/stgnew",
                        "tunnelServer": "http://tunnel.odpsstg.aliyun-inc.com"
                    }
                },
                "writer": {
                    "name": "odpswriter",
                    "parameter": {
                        "accessId": "${dstAccessId}",
                        "accessKey": "${dstAccessKey}",
                        "project": "${dstProject}",
                        "table": "${dstTable}",
                        "partition": "pt",
                        "column": [
                            "*"
                        ],
                        "odpsServer": "http://service.odpsstg.aliyun-inc.com/stgnew",
                        "tunnelServer": "http://tunnel.odpsstg.aliyun-inc.com"
                    }
                }
            }
        ]
    }
}


 

 

4.2 、启动DataX

cd {YOUR_DATAX_DIR_BIN} $ python datax.py ./odps2odps.json

同步结束,显示日志如下:

 

 


4.3 、批量迁移

 

根据导出的表结构批量生成DataX同步脚本,我会协助完成。

 

场景二:公共云数加DataIDE上两个云账号之间数据迁移

   这个场景比较容易理解,比如一个公司很可能会申请多个云账号,假如每个云账号都开通了MaxCompute,很可能就会碰到两个云账号的MaxCompute之间数据迁移。公共云上都借助于DataIDE使用MaxCompute,而DataIDE上面本身提供了数据同步任务,我们通过配置数据同步任务即可很容易的完成数据迁移。执行步骤如下:

1、在其中一个MaxCompute项目空间项目管理中添加数据源,该数据源为另一个云账号的MaxCompute项目空间。

3de190ba6f0e34c86a33f73243711c6af43fcfd7

2、在DataIDE数据开发中新建“数据同步”任务,如果目标数据源中表还不存在,可以点击“快速建ODPS表”,配置字段映射等。

6d474e58ba32283508d1c5172a6acee452a29a2c

3、保存之后点击“测试运行”即可。

 

场景三:网络不通的两个MaxCompute环境数据迁移

   这种场景做数据同步局限性比较大,由于网络不通,数据迁移必须要在中间落盘后再写入,所以当数据量比较大时要考虑磁盘容量、带宽等问题。步骤如下:

1、首先也是要先将源MaxCompute项目空间的DDL导出并在目标项目空间创建表,操作同场景一。

export <projectname> <local_path>;

2、安装配置ODPS客户端,操作同场景一。

3、通过ODPS CLT中的tunnel命令实现数据的导出。命令参考:

e6276916c6da1fc92ded4b94f8eb3ef06ff299c2

Example:

tunnel download test_project.test_table log.txt

4、通过ODPS CLT中的tunnel命令实现数据的导入。命令参考:

cbe8a0feb44681e5c0e2e31f7abc3ce067e57c86

Example:

tunnel upload log.txt test_project.test_table

本文转载自:https://yq.aliyun.com/articles/71329

_夜枫
粉丝 10
博文 506
码字总数 0
作品 0
朝阳
后端工程师
私信 提问
获取大数据计算通关秘籍,拥有全新一代计算引擎免费试用权益

如何将 MaxCompute 快速应用于实际业务场景?如何跑起你的第一个sql?想试用想学习交流怎么办?So easy!!! 已为你准备大数据计算通关秘籍,还有机会拥有全新一代计算引擎免费试用权益。 一、...

晋恒
2018/08/01
0
0
玩转大数据系列之一:数据采集与同步

数据的采集和同步,是先将数据从设备、或者本地数据源采集、同步到阿里云上,然后在阿里云上对数据进行分析和处理,最终完成您的业务要求。本文向您介绍阿里云各产品的数据采集和同步的操作实...

阿里云云栖社区
01/07
162
0
阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)

概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方...

隐林
2017/05/05
0
0
【干货索引】阿里云大数据计算服务MaxCompute与生态系统的融合

摘要: MaxCompute大家都不陌生,之前产品名称叫ODPS,之后随国际化而更名。从支持阿里集团内部99%数据业务到计算能力对外输出,帮助政府、互联网公司、金融等进行大数据项目服务,使得数据变...

阿里云云栖社区
2018/01/12
25
0
阿里云大数据利器之-RDS迁移到Maxcompute实现动态分区

当前,很多用户的业务数据存放在传统关系型数据库上,例如阿里云的RDS,做业务读写操作。当数据量非常大的时候,此时传统关系型数据库会显得有些吃力,那么会经常有将mysql数据库的数据迁移到...

上单
2017/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
44分钟前
4
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
今天
4
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
7
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部