阿里云•数加上如果要实现大数据上云,可选的工具有以下几种(如下图所示),主要分为批量加载工具和实时采集工具两大类。工具这么多,那么我应该选择哪一个呢?
首先第一就是确定您的业务场景对实时性的要求。
a) 如果是实时性要求不高,则采用批量加载类工具,定时完成批量数据加载即可。比如离线数仓,离线BI数据分析等场景。
b) 如果对实时性要求很高,数据一产生就需要即时看到分析结果,则采用实时采集类工具。如实时监控,实时分析,实时大屏等场景。
不过也有例外,在某些离线场景下有时候也会采用实时采集工具来完成数据上云。比如每天都有海量数据(可能TB级别甚至更多)需要同步,批量定时同步的话同步时间过长,无法满足业务要求,此时可以考虑采用实时采集工具来完成数据上云,以满足对同步时间的要求。
离线工具适用场景说明:
- 数据集成(DI)是数加提供的官方同步工具,分为界面向导模式和脚本模式两种开发模式。如果您是离线数据加工场景,那么优先推荐选择它。它可以完成阿里云云上数据到MaxCompute的大部分离线场景。比如常见的:
a) 从RDS/DRDS同步到MaxCompute
b) 从ECS(自建MySQL/Oracle等)同步到MaxCompute
c) 从ECS(文件)同步到MaxCompute
d) 从OSS/OTS等阿里云产品同步到MaxComdpute
e) 数据在IDC机房,并且企业已经搭建阿里云物理专线连接,此时可以通过数据集成(DI)自定义调度资源的方式完成数据上云。
注:以上均为举例,不一定覆盖所有情况,DI支持的数据源请参考:https://help.aliyun.com/document_detail/53008.html
- DataX(开源)阿里开源的离线数据同步工具,可以理解它是数据集成(DI)的单机版实现,它与数据集成(DI)所支持的数据源是基本相同的。但有些时候因为网络、安全或者自定义需求等情况,无法用数据集成(DI)来完成企业的需求,此时可以考虑使用DataX来完成。比如:
a) 数据在本地IDC机房,IDC的机器无法添加为数据集成(DI)的执行Agent
b) 企业期望对同步任务资源占用有完全的控制权(包括但不限于内存占用量、完全掌控同步流控等);
c) 企业具有一定的系统运维能力,期待脚本化、定制化的数据上云策略。比如本地环境已有任务调度系统,期待使用此调度系统触发执行同步作业;
d) 数据上云是临时性的、一次性的操作;
- DI On Hadoop适用于企业已有Hadoop集群,且对数据同步性能有很高的要求,此时用DI On Hadoop工具来完成数据上云。它可以充分的利用现有Hadoop 集群的能力,来快速完成从Hadoop 到 MaxCompute的数据迁移或上云。但它对网络情况也有一定要求,它要求Hadoop集群的机器必须可以通过公网或者专线的方式,能过连通MaxCompute。
- MaxCompute客户端中有Tunnel 命令,它适用于原始数据存在在文件,临时或一次性上传一些数据到MaxCompute。
- Tunnel SDK :在上述工具均无法满足需求时,可以通过自己调用Tunnel SDK实现更加灵活自由的数据上传需求。比如:
a) 数据下载过程中,需要根据数据内容不同,分发到不同的数据库或分库分表。
实时采集工具适用场景说明:
- Logstash / Flume / Flunted 为3个开源的数据采集工具,阿里云分别为其提供了写入DataHub的插件,可以实现数据采集后输出到DataHub。适用于大部分文件类数据采集类需求,如行为日志,系统日志等。选择这3个,主要取决于用户自己的技术倾向。
Logstash 为JRuby开发,Flume为Java开发,Flunted为Ruby开发。三者性能上来看Flunted略差,Logstash和Flume应该说不分仲伯吧,暂无明确数据对比。 - Log Service(日志服务)是阿里云提供的针对日志类数据的一站式服务,它可以完成采集日志信息,并将其投递给各种下游产品,其中就包括Stream Compute 和 MaxCompute。它与Logstash / Flume / Flunted 所完成的场景类似,选择哪个主要取决于客户的使用习惯或技术倾向,暂无比较明显的区别。
- DTS(数据传输服务)是阿里云提供的云上数据的实时传输服务,适用于采集RDS(MySQL)的实时更新数据,并将其传输给DataHub或MaxCompute。如果你有云上RDS(MySQL)数据需要上传到大数据平台,那么可以选择它。不过它采集的是binlog信息,到MaxCompute后还需对数据做合并和预处理。
- OGG(Oracle GoldenGate)主要适用于源库为Oracle,可以通过其采集实时更新数据到DataHub中。一般在公共云上比较少见,但在专有云即线下机房比较常见。
整理各个工具的官网及使用说明供大家参考:
- 数据集成(DI)官网:https://www.aliyun.com/product/cdp
使用文档:https://help.aliyun.com/document_detail/47677.html - DataX源码:https://github.com/alibaba/DataX
快速开始:https://github.com/alibaba/DataX/wiki/Quick-Start
各个数据源配置:https://github.com/alibaba/DataX/wiki/DataX-all-data-channels
- DI On Hadoop 暂无,目前还未完全开放。
- MaxCompute 客户端 安装:https://help.aliyun.com/document_detail/27971.html
Tunnel命令说明:https://help.aliyun.com/document_detail/27833.html - Tunnel SDK 使用说明:https://help.aliyun.com/document_detail/27837.html
Tunnel SDK 上传下载示例:https://help.aliyun.com/document_detail/27842.html - Logstash 官网帮助文档:https://www.elastic.co/guide/en/logstash/2.3/index.html
阿里云Logstash教程文档:https://help.aliyun.com/document_detail/47451.html - Flume 插件开源网站:https://github.com/aliyun/aliyun-maxcompute-data-collectors/tree/master/flume-plugin
- Flunted 官方文档http://docs.fluentd.org/v0.12/articles/quickstart
阿里云Flunted教程文档:https://help.aliyun.com/document_detail/47450.html - Log Service 官网:https://www.aliyun.com/product/sls
Log Service 数据采集:https://help.aliyun.com/document_detail/28981.html
Log Service 投递 MaxCompute:https://help.aliyun.com/document_detail/29001.html
Log Service StreamCompute实时消费:https://help.aliyun.com/document_detail/47334.html
- DTS 官网:https://www.aliyun.com/product/dts
DTS 采集到MaxCompute:https://help.aliyun.com/document_detail/44547.html
DTS 采集到Datahub:https://help.aliyun.com/document_detail/45214.html