主要通过一个定时数据迁移的案例来介绍Streamsets(3.20.0 汉化版)的使用,主要将mysql的数据定时将前一天的数据迁移到ES中,主要包括任务调度器、定时启动数据迁移数据流等。
学习目的:学习使用调度器定时调度数据迁移数据流、学习数据迁移的流程、学习怎么自动关闭数据流和消息提醒。
最终数据流的效果图:
需要配置两个数据流
数据迁移调度器数据流
数据迁移工作流
前期准备:
(1)需要在mysql数据库中准备一张每天都有新增数据的表,该表必须有一个时间字段,用于选取时间范围。
构建步骤:
1.首先构建数据迁移数据流
从mysql中读取数据我们选用origin类JDBC插件,做一些配置,包括:连接串、用户名密码、根据数据迁移调度器传来的时间范围配置查询SQL语句、Max Batch Size (Records)等等。
注意:为什么选用origin类的JDBC插件读取数据而不选取processors类的JDBC插件读取数据呢?大家思考一下。
配置一下ES配置信息,包括地址、用户名密码、索引名、索引类型等,这里不需要我们在ES中提前建索引,ES会根据数据生成索引,当然还是建议大家去自己动手建索引。
配置一个任务完成就自动关闭数据流的插件,条件为${record:eventType() == 'no-more-data'},也就是今天的数据迁移完后,自动关闭该数据流。
在数据流配置中配置一个任务提醒,当任务出现错误或停止或完成时会通过邮件发送通知。
数据流默认的启动参数
2.构建数据迁移调度器数据流
通过Groovy脚本插件将调度器生成的时间戳生成数据查询的时间范围。
通过数据流启动插件启动数据迁移数据流,需要配置数据迁移数据流的地址、ID、数据迁移数据流的启动参数、指定streamset的用户名密码。
Streamsets实战之路正在更新中,尽情期待!!!
此文章为博主原创,转载请标明出处和原始链接,谢谢。