1、业务背景
上一篇文章中,我们介绍了如何利用streamsets的组件实时采集日志信息并入库的实现方案,本文我们将继续探讨streamsets其他组件的强大功能。
日常开发中,我们经常会对接一些第三方接口数据,进行业务处理后进行存储的过程。其实通过正常的业务代码也可以轻松实现,比如引入第三方的sdk包,或者通过接口调用的形式进行访问。本文主要是通过ETL工具演示下streamsets如何不用写一行业务代码实现自动化采集的过程。
Talk is cheap, Actions speak louder than words。好了,开始我们的表演
2、流程实现
采集第三方https接口数据并入库时,流程的完整管道示意图如下所示:
具体实现按照以下步骤进行操作:
2.1 创建管道任务
在SDC中创建一个新的Pipeline,创建过程如下图
成功后进入如下页面
2.2 选择源并添加配置信息
第三方接口的配置信息,高级配置部分使用默认值即可
数据格式配置
2.3 流程选择器配置
该配置的作用是进行数据格式转换,由于list的数据结构在streamsets中不好处理,此处使用该组件将上游的list数据集合转换成便于处理的map数据格式,这样便于下游组件通过字段属性映射,然后取值入库。 Field To Pivot处的/data配置代表将上一个组件输入的数据封装到/data目录下,其实也可以使用/目录代表不做处理。
2.4 目标源配置
配置数据库连接信息、库名和表名
字段映射关系配置:配置数据库中的字段和当前组件的上一个组件输出的字段之间的对应关系,类似于mybatis的配置文件中实体类字段和数据库字段的映射。如果不配置,可能会报语法错误。如果上游组件的输出字段和数据库中字段一 一对应且名称相同,可以不用配置映射关系。此处数据库的字段和https接口返回的字段有不一样的地方,所以需要配置。
2.5 启动任务并查看结果
数据库入库数据信息如下:
可以看到,数据已经正常写入数据库了。
注意
: 由于服务会一直运行,所以会重复将https数据写入数据的情况,如果仅需要执行一次,添加Pipeline Finisher Executor组件结束任务即可。
3、总结
好了,今天的内容就到这里。如果这篇文章对你有所帮助的话,希望可以一键三连哦,您的认可和鼓励就是我创作的最大动力!