大数据之数据采集组件选型

楼高2年前技术文章1579

按数据的源头、实际上也是对应的数据采集方式,分别进行分析与技术推荐,数据从源头基本分为

以下三大类

1、Web页面/移动App/MES/IoT/系统生产: 

这些数据是被动接收。建议可采用Apache NiFi,Apache Seatunel,虽然国内有DataX,但是NiFi

的能力要丰富,可视化界面,画布模式简单拖拽,NiFi经过Apache多年开源积累已经相当成熟,

有每天处理几十亿数据的案例SeaTunnel 与 kettle,NiFi这种重量级的平台相比,更像 Datax 轻量

级的数据传输工具,用户可以根据需要来安装 Source、Sink、Transform插件对于特殊场景,可以

使用NiFi和SeaTunnel结合使

第一种结合方式是可以用 NiFi 的 执行程序组件封装 SeaTunnel ,利用NiFi的调度能力,使其可以

定时运行 SeaTunnel 任务另外一种形式是NiFi可以二次开发来封装 SeaTunnel 组件

2、数据库(database):

首先可以是定期增量或全量批拉的方式,这里主要讲实时的CDC方式,数据是基于事件被推过来的。

(1)MySQL,可以采用Sqoop/Canal,也可以自己写逻辑成一个定制的NiFi Processor,最后流入

Kafka,也可以同时流入其它存储。

(2)Oracle可以采用OGG同步Oracle数据,通过解析源数据库在线日志或归档日志获得数据的增

删改变化(数据量只有日志的四分之一左右)

(3)HBase可以考虑写一个基于HBaseEndpoint的CDC(Change Data Capture)

(4)Cassandra作为一线业务存储,官方有CDC支持

(5)关系数据库管理系统(RDBMS)采用Sqoop完全可以支持

3、系统日志(System log):

可以用Apache NiFi中的TailFile(支持Rolling)这个Processor,中间加上自己写或拖拽处需要的处

理逻辑,最后吐到Kafka等存储中。或者使用典的Flume也是可以,但是相对来说NiFi简单便捷。

4、消息队列:一般选用Apache Flink做准实时数据处理,也可采用SparkStreaming或者

Apache Storm

数据采集组件选择流程图:

image.png

综合:用NiFi一个框架就可以解决所有数据的问题了,而且NiFi具备综合的管理能力,如:跟踪、

监控、拖拽开发、多租户、HA方案等。可以把NiFi看成是万能的整合采集器,但不要把复杂的

计算逻辑让它来担当,那不是它的强项。NiFi还有背压的能力

相关文章

MySQL运维实战之ProxySQL(9.8)SQL镜像

使用proxysql的镜像(mirror)功能,可以将SQL发送到一个额外的后端实例执行。还可以将发送到镜像的SQL进行改写,以测试修改后的SQL是否能正常执行。通过mirror_flagOut字段,...

kubernetes RBAC

kubernetes RBAC

认证过程,只是确认通信的双方都确认了对方是可信的,可以相互通信。而鉴权是确定请求方有哪些资源的权限。API Server 目前支持以下几种授权策略 (通过 API Server 的启动参数 “–aut...

Go 配置文件管理(ini)

Go 配置文件管理(ini)

1、背景ini 文件是 Initialization File 的缩写,即初始化文件,可用于统一管理各项配置。gopkg.in/ini.v1 是地表最强大、最方便和最流行的 Go 语言 INI 文件操...

chengying-6.0登入接口逆向

chengying-6.0登入接口逆向

版本更新首先是登入的加密url:http://172.16.121.70/login参数1. username:admin@dtstack.com2. password:614bb9438210c69...

数据湖技术之iceberg(五)Hive与Iceberg整合

数据湖技术之iceberg(五)Hive与Iceberg整合

1.  版本支持约束条件Iceberg就是一种表格式,支持使用Hive对Iceberg进行读写操作,但是对Hive的版本有要求,如下:Iceberg 与 Hive 2.x 和 Hive 3....

ORA-00054报错处理

执行语句报错:ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired原因:如错误信息提示,资源正忙(...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。