查看其它 2 个回答rein07的回答

rein07rein07  系统架构师 , 某证券
大大觉迷yinxingaogangtie等赞同了此回答

数据采集是做大数据分析的第一环,也是非常重要的一环,为上层应用不断地提供数据养料。做大数据分析常用的数据来源包括以下几种:
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
浏览3035

回答者

rein07系统架构师, 某证券

回答状态

  • 发布时间:2018-10-19
  • 关注会员:4 人
  • 回答浏览:3035
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2020  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30