streamingset学习之旅

背景,之前需要把oracle的数据拉取导kudu,组内大神增加了flume组件。

jdbcsource,之前配置文件时xxx.conf,改造后flume不读配置文件,将配置文件放到mysql

中间接入了zk,将读取的offset记录到zk。

streamingset学习之旅_第1张图片

kudusink,改造后的kudusink 就是建立一个kuduclient,从channal里获取数据,然后通过kuduClient写道kudu里。

后面不知道怎么的 大神觉得flume不太好用。。。。用了一个大杀器 streamingset

文档https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Getting_Started/GettingStarted_Title.html#concept_htw_ghg_jq

源码https://github.com/streamsets/datacollector  

不多说直接上案例。

1、读取oracle指定表的数据写到kudu,并且会实时监控后续增加的数据,类似flume

选取jdbc Query Consumer

streamingset学习之旅_第2张图片

配置oracle或者mysql等jdbc源

streamingset学习之旅_第3张图片

streamingset学习之旅_第4张图片

备注这个sql query必须要有一个offset列,也就是说指定一列,一般为主键id列或者etl_date列。

例如 select  rowidtochar(rowid) "ROWID" ,ID ,NAME。。。。。。。。。

from dwdmdata.dm_kpi_dim_account    where etl_last_update_date > to_date('${OFFSET}','yyyy-mm-dd hh24:mi:ss')  order by etl_last_update_date

备注 这里我有ROWID是因为kudu表根据oracle表建表的时候必须指定主键,有的oracle表没有主键id,所以采用ROWID

streamingset学习之旅_第5张图片

oracle配置其他参数如上图

选取kudu组件

streamingset学习之旅_第6张图片

配置kudu参数,下面的Field to Column Mapping ,我理解的是上面oracle 的Root Field Type = List-Map

一个map里放的就是 Oracle字段-kudu的字段。

streamingset学习之旅_第7张图片

连接好就可以启动了。

streamingset学习之旅_第8张图片

 

你可能感兴趣的:(streamingSet,streamingset)