开发者社区> 传学> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

用脚本模式配置数据同步

简介: 本文主要用自定义的ECS来调度来解网络不可达的问题。通过使用脚本模式来解因为网络不可达导致的向导模式无法配置的问题。
+关注继续查看

大数据开发套件里可以通过配置同步任务,实现数据在不同数据源之间的迁移。但是因为目前只部署在华东1(参考文档),有一些特殊网络环境可能无法覆盖到。比如VPC下的DRDS或者其他区域自建数据库内网就不通了。不过套件还提供了脚本模式+调度资源设置这2个大杀器,满足各种复杂场景下的数据同步功能。

本文就数据从MaxCompute的数据导出到VPC下的DRDS为例,详细介绍如何使用这两种方法来实现灵活的数据同步。

同步原理

首先介绍下大数据开发套件的同步任务是怎么做的。
alt
(这个图片来自这里
常有人以同步是MaxCompute的功能,其实MaxCompute和DRDS、RDS一样只是一种数据源。图片中间的框框是一个数据同步服务,它有一个Reader和一个Writer配置,通过Reader从来源抽取数据,然后用Writer写到目标数据源上。
如果有各种网络通不通的问题,其实就是来源数据源到同步服务通不通,以及同步服务到目标数据源通不通两个问题。大数据开发套件提供了一个数据同步的服务,部署在华东1,所以也就有了前文提到的华东1的说法。在这种场景下,就需要考虑华东1的同步集群到来源数据源和目标数据源通不通。因为本文的例子里,虽然MaxCompute和同步集群虽然是通的,但是在华北2的VPC下的DRDS内网是不通,所以就有了同步不了的尴尬情况。
除了用大数据开发套件提供的同步服务集群外,也可以用直接的自己的ECS来做同步,那这样的问题就变成了来源数据源和目标数据源这两个数据源和自己的ECS通不通的问题了。这时候就可以通过安全组设置、高速通道等方法,实现数据的同步。而且这样防火墙等安全设置自主可控,用户自己排查网络问题也比较方便。本文就是用这种方法实现把数据写入到华北2的VPC内的DRDS的。为了能够和华北2的VPC内的DRDS能很好的内网连接,我使用华北2的VPC下的ECS来做调度资源。

DRDS的配置

DRDS没有做特殊的设置,只是说明下情况:它是在华北2的VPC里,里面的数据表是做了分库的。
需要特殊说明的是,这里因为VPC下的DRDS目前不支持设置白名单,所以本文不涉及白名单的部分。但是如果是其他的数据源(比如自建Mysql),需要看同步服务是什么。如果是用大数据开发套件默认的同步集群,需要参考文档设置白名单或者在防火墙/安全组等安全设置上开放这些IP的访问。如果是用自己的ECS做的调度资源,那只需要开放自己的ECS的IP给数据源,保证数据源和ECS之间是通的,系统的IP就可以不设置。只是如果因为用自己的ECS调度,没有开放系统的那些IP的话,可能在用模板模式配置任务的时候可能会有问题(比如本文如果用模板模式的话会在DRDS数据源里获取数据库下的表的列表的时候出现连接不通的情况),这时候就切换成脚本模式,直接修改同步脚本即可。
DRDS购买成功后,我从DMS登录到数据库上,使用

create table user_pay(
 user_id  varchar(100), 
 shop_id  varchar(100), 
 time_stamp timestamp) ;

在DRDS里创建好表。

ECS的配置

我的ECS是新购买的,购买时选择了和DRDS一样的专有网络和虚拟交换机,使得DRDS和ECS内网能通。另外我设置了公网IP,准备通过公网从MaxCompute获取数据。

调度资源

机器购买成功后需要配置这台ECS,让大数据开发套件知道这台机器可以用来做调度资源。到调度资源列表里创建一个调度资源,添加一台ECS
a1

数据源

创建数据源的步骤也只是跟着文档配置,没太多需要注意的。因为VPC下的DRDS不需要设置白名单,所以这里也省了一步。如果是其他数据源,注意对配置处提示的IP添加白名单放行。
a2

任务配置

接下来是最重要的同步脚本编写。到数据集成页面创建一个任务,直接使用脚本模式。选择好数据是从Odps导入到DRDS后,得到一个模板(模板自动生成的,这里就不再写拷一次)。
填上实际的业务数据后,变成

{
  "configuration": {
    "setting": {
      "speed": {
        "mbps": "1"
      }
    },
    "reader": {
      "parameter": {
        "partition": "",
        "column": [
          "*"
        ],
        "table": "user_pay",
        "datasource": "maxcompute_ds"
      },
      "plugin": "odps"
    },
    "writer": {
      "parameter": {
        "writeMode": "replace",
        "preSql": [
          "delete from user_pay;"
        ],
        "column": [
          "user_id",
          "shop_id",
          "time_stamp"
        ],
        "table": "user_pay",
        "datasource": "vpc_drds"
      },
      "plugin": "drds"
    }
  },
  "type": "job",
  "version": "1.0"
}

然后保存提交。

修改调度资源

任务提交后,需要到任务运维里修改任务运行使用的调度资源,这样任务才是运行在自己的ECS上的,可以看这个图
a4
修改好了后,直接在这个页面可以点截图右下角的操作下拉选项里的补数据来跑任务。

总结

本文主要用自定义的ECS来调度来解网络不可达的问题。通过使用脚本模式来解因为网络不可达导致的向导模式无法配置的问题。脚本模式除了能解这个问题外,其实还能支持比向导模式更多的数据源。

最后需要提醒一句,大数据开发套件的产品形态还没有完全固定,产品本身还在做迭代,在界面和功能上后续可能还是会有一些不同,但是数据同步大致的思路就是这样不会变。希望本文能给大家在做ETL上有一些帮助和启发。

本文使用的产品涉及大数据计算服务(MaxCompute),地址为https://www.aliyun.com/product/odps
配合大数据开发套件 https://data.aliyun.com/product/ide 完成的。
如果有问题,可以加入我们的钉钉群来咨询
screenshot

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据实时同步平台搭建
数据实时同步平台搭建
11 0
只需八步,做一个完整的数据分析
大家好,我是爱学习的小xiong熊妹。 很多小伙伴不清楚做数据分析的流程,经常疑惑:到底做到什么程度才算是一个完整的分析?其实,数据分析是有标准模板的,一共分8步走,只要全部做完就可以了。
39 0
浅谈数据同步
数据同步在后端是非常常见的场景,数据同步的稳定性和实时性对业务有非常重要的影响。数据同步的方式主要有全量同步和增量同步两种,本文主要介绍上述两种方式的差异,以及常用的解决方案。
129 0
数据分析入门
2018年6月14日笔记 1.数据分析的定义 用适当的统计分析方法对收集来的大量数据进行分析,将他们加以汇总和理解并加以消化,以求最大化的开发数据功能,发挥数据的作用。
1051 0
大数据的后台分析模式
一,点击数据可视化 二,智能推荐系统
1039 0
半同步/半异步模式
半同步/半异步模式的结构遵循分层模式,包括四层:同步服务层 同步服务层:完成高层处理服务。同步层中的服务在独立的操作情况下可以阻塞现成或进程。 异步服务层:进行低层处理服务。
922 0
Oracle OGG 数据同步简单配置
1、安装包准备 数据库版本:Oracle Database 11g Release 2(11.2.0.4.0) 安装包版本:Oracle GoldenGate 12.3.0.1.4 for Oracle on Linux x86-64 2、创建OGG用户 useradd -u 700 -g o.
2356 0
创建数据库脚本
create table `proxy` ( `ip` varchar(255) not null default '', `port` varchar(255) not null default '', primary key (`ip`,`port`)) engine=innodb aut...
654 0
数据同步中的误导
今天同事让我帮一个忙,说现在有两个环境中的一张表数据不一致,已经造成了一些数据问题,他们已经排查了一圈,最后发现是一张表的数据问题导致,希望我来帮忙协助一下。 他们提供了详细的源库,目标库的链接,看起来一起都明确了,那DBA需要做的事情就很明朗了。
672 0
+关注
传学
传学,专注于大数据领域的解决方案
文章
问答
来源圈子
更多
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。
+ 订阅
相关文档: MaxCompute
文章排行榜
最热
最新
相关电子书
更多
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute
立即下载
Streaming Datasets
立即下载
MongoShake
立即下载