数据采集的工具有哪些,有哪些优缺点?分别适用什么应用场景?

参与18

3同行回答

rein07rein07  系统架构师 , 某证券
数据采集是做大数据分析的第一环,也是非常重要的一环,为上层应用不断地提供数据养料。做大数据分析常用的数据来源包括以下几种:1) 日志文件2) 数据库3) 网页4) APP不同的数据源使用的采集技术和工具是不同的:1) 日志文件日志文件常用的采集工具有Flume、Logstash...显示全部

数据采集是做大数据分析的第一环,也是非常重要的一环,为上层应用不断地提供数据养料。做大数据分析常用的数据来源包括以下几种:
1) 日志文件
2) 数据库
3) 网页
4) APP
不同的数据源使用的采集技术和工具是不同的:
1) 日志文件
日志文件常用的采集工具有Flume、Logstash、FileBeat等等。Flume和Logstash同属于采集框架,集成了很多插件,主要集中在source和sink两端,用户选择相应插件配置即可完成数据流转;支持用户基于框架做自定义开发,框架启动后会自动加载插件并驱动数据流转至该插件进行处理。但是两者都属于重量级框架,领域性不强,所以诞生了FileBeat工具,专门用于文件采集,该工具包非常轻巧,易于安装和使用,其特色功能--流量控制使得采集不会对宿主机产生较大压力。
2) 数据库
数据库数据同步常用的工具有Sqoop和Kettle。Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。以Mapreduce作为底层引擎,并行方式同步数据,效率较高。Kettle的优秀之处在于把ETL的过程可视化,数据的转换可以在界面上通过拖拽配置的方式实现,且支持二次开发,方便与大数据平台的集成。两者相比,Sqoop更注重同步,而Kettle更注重数据处理流程。
但两者属于批处理引擎,对数据库无法实时感知,无法满足做大数据实时处理的场景,所以现在有做数据库实时同步的工具。阿里的Canal可以通过读取mysql bin log实现数据的实时同步,也支持oracle部分版本的同步。
3) 网页和APP
网页和APP数据的采集技术一般采用埋点实现。开源的网页埋点工具有Piwik,只需在页面中嵌入一段js代码即可实现数据的采集和传输,后台支持插件开发,对于采集字段做额外处理,自带可视化展现工具,数据从采集到展示的时效性很高。APP埋点的开源工具较少,大部分都采用自研和商业化产品。

收起
证券 · 2018-10-19
浏览15594
sxtycxxsxtycxx  解决方案经理 , 人工智能(计算机视觉)
1、数据采集的工具主要分为面向结构化数据(关系数据库)、非结构化数据(设备日志)、半结构化数据(HTML网页),2、同时还应该支持全库数据同步、增量数据同步(基于时间戳、触发器、更新标识等多种机制)3、大数据环境下向结构化数据(采用Sqoop,关系数据库与非关系数据库之间的数据同步)、...显示全部

1、数据采集的工具主要分为面向结构化数据(关系数据库)、非结构化数据(设备日志)、半结构化数据(HTML网页),
2、同时还应该支持全库数据同步、增量数据同步(基于时间戳、触发器、更新标识等多种机制)
3、大数据环境下向结构化数据(采用Sqoop,关系数据库与非关系数据库之间的数据同步)、非结构化数据(flume)、半结构化数据(爬虫)

收起
互联网服务 · 2018-10-18
浏览14357
windixwindix  商业分析师 , 某证券公司
(1)日志采集:Logstash,可对数据进行复杂预处理。Flume,保证数据传输的一致性,部署复杂。(2)Hadoop HDFS与数据库(MySQL)数据同步:Sqoop,部署复杂。(3)结构化数据采集,如数据库、文件等:DataStage,高性能,简单易用,收费。Kettle,免费,性能较低。...显示全部

(1)日志采集:Logstash,可对数据进行复杂预处理。Flume,保证数据传输的一致性,部署复杂。
(2)Hadoop HDFS与数据库(MySQL)数据同步:Sqoop,部署复杂。
(3)结构化数据采集,如数据库、文件等:DataStage,高性能,简单易用,收费。Kettle,免费,性能较低。

收起
互联网服务 · 2018-10-18
浏览13925

提问者

rein07
系统架构师某证券
擅长领域: 人工智能大数据机器学习

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-10-18
  • 关注会员:4 人
  • 问题浏览:17825
  • 最近回答:2018-10-19
  • X社区推广