数加:基于maxcompute之上封装的便于我们使用和管理maxcompute的一个壳
ecs:阿里的云服务器
tunnelserver:用于和maxcompute上传下载的数据通道
默认资源:数加提供的用于运行datax的服务器资源(常用于和maxcompute之间的数据同步),目前只有在华东2区(上海)有机器
自定义资源:我们提供的用于运行datax的服务器资源,目前我们只有华北2区(北京)2台ecs
专线:目前北京机房和北京ecs(华北2区)通专线,简单理解就是北京机房和北京ecs同属一个局域网,让两个机房间的通讯更稳定,快速.
端口转发:简单的理解,一个网络端口,转发到另一个网络端口上(我们常用的是:从外网的某个端口转发到内网的某台机器的某个端口,这里是指从ecs的外网端口,转发到北京机房的某台机器的某个端口).
maxcompute上传收费:上传不收费
maxcompute下载收费:通过公网下载收费,是指maxcompute到datax这个过程,我们在使用自定义资源的时候需在odps那端(reader)要使用<code>"tunnelserver": "http://dt-ext.nu16.odps.aliyun-inc.com",</code>这个配置才能走maxcompute专线,且不收费,默认是走公网需要收费,这点大家要特别注意一下
在使用自定义资源与maxcompute做数据同步任务,务必在odps端加上<code>"tunnelserver": "http://dt-ext.nu16.odps.aliyun-inc.com",</code>配置.免费且能提升同步速度

目前默认资源只在华东2区有,而我们大部分的数据和机器在北京,只能通过公网进行数据同步,网络延迟比较大(33ms),且不稳定,经常出现time out情况.且默认资源会限速,而我们需要上传的日志量比较大,数据延迟会比较大,不能很好的满足业务需求.
因为我们北京机房和华北2区有专线连接,方便与北京机房的机器做数据同步
华北2区的自定义资源可以通过maxcompute专线(需要在任务里配置tunnelserver)连接maxcompute服务,比通过公网连接更稳定,更快.
另一端,自定义资源和北京机房或北京ecs是通过专线或内网连接,网络也比公网更有保障.
如果maxcompute和华东区的ecs的数据同步,请选用默认资源
如果maxcompute和(华北ecs或者北京机房)的数据同步有两种方式:
通过自定义资源(如果操作见下文)
通过华北ecs做端口转发:只需将北京机房对应机器的端口(一般是22端口),转发到ecs出口的某个端口(例如21222),然后使用默认资源,使用ecs的外网ip和端口就可以了.
对网络延迟比较敏感的用自定义资源(例如数据要写到北京ecs或机房上mysql,如果使用默认资源,容易报错,连接超时)
对网络延迟不那么敏感,且数据量不是很大的,可通过端口转发的方式进行数据同步,通过端口转发方式能满足需求的尽量使用这种方式,以免自定义资源负载过高.
项目配置自定义资源组:一个项目只需要配置一次,而且只有项目owner才有权限(这个不需要大家操作)
配置数据源:由项目管理员配置(一般来说一台服务器只需要配置一次),需要配置数据源服务器的内网地址,因此datax通过内网地址读写,更快速,稳定; 此时不需要测试连接,因为测试连接是通过默认资源发起的测试,所以网络不通.
修改任务的资源组:见下图步骤
运行: 这里只对新生成的实例生效,例如测试运行或补数据;而之前生成的实例,还是会用默认资源,会导致失败.
其实使用默认资源也是以上的这些步骤,只是有些步骤是默认值,不需要更改,例如:
项目配置资源组(数加项目生成的时候,就已经有了默认资源组,不需要我们额外配置)
配置数据源(默认有odps_first,指该odps项目),我们自己的数据源同样需要配置
编写数据同步任务(一样)
修改任务的资源组(默认值是默认资源组,无需修改)
运行数据同步任务(一样)
在实际使用过程中,出现失败的话,多思考一下:
数据同步基于datax , 是通过datax到reader数据源抽取数据,在通过writer数据源写数据,
多思考一下网络方面的原因:例如防火墙,mysql的白名单,账号是否有权限等等.