StreamSets(3.22.2)创建一个工作流
首先介绍工作流中的四类组件
- Origins: origin是一个管道工作流的源, 一个工作流只能由一个
origin
- Processors: Processors表示您要执行的一种数据处理类型。您可以根据需要在管道中使用任意数量的
Processor
- Destinations: Destinations代表工作流的目的地, 一个工作流可以有一个或多个目的地
- Executors: Executors在接收到事件时触发任务
- 上一节StreamSets启动之后, 在浏览器中输入
http://$host::18630
打开如下页面,
- 点击左上角新建工作流
-
这里选择一个简单的**Origins **组件
directory
, 将外部数据数据输入到StreamSets[root@localhost listen_dir]# pwd /home/fgap/wbb/listen_dir [root@localhost listen_dir]# jq . 1.json [ { "name": "1.1.1.1", "field1": 1, "data": "local", "host": "1.1.1.1", "value": "1" }, { "name": "www.baidu.com", "field1": 1, "data": "baidu", "host": "2.2.2.2", "value": "2" }, { "name": "www.tencent.com", "field1": 1, "data": "tencent", "host": "2.2.2.2", "value": "3" } ] [root@localhost listen_dir]#
进行一些配置
-
选择一个Processers组件
Jython Executor
, 用来处理data字段对
data
字段处理 -
接着选择一个Processers组件
Stream Selector
将符合条件一的数据输入到下一个Processers组件
Field Remover
, 过滤掉value
字段. 不符合条件的数据输入到Destinations组件Trash
中.Field Remover
对field1
字段处理 -
最后选择一个Destinations组件
local FS
, 默认输出路径/tmp/out/${YYYY()}-${MM()}-${DD()}-${hh()}
-
启动工作流
结果:
[root@localhost 2021-09-02-11]# pwd /tmp/out/2021-09-02-11 [root@localhost 2021-09-02-11]# tree . └── _tmp_sdc-d8f0eeda-0b20-11ec-9701-9391d80e4d4b_0 0 directories, 1 file [root@localhost 2021-09-02-11]# jq . _tmp_sdc-d8f0eeda-0b20-11ec-9701-9391d80e4d4b_0 [ { "name": "1.1.1.1", "field1": 2, "data": "hello local hello", "host": "1.1.1.1" }, { "name": "www.baidu.com", "field1": 2, "data": "hello baidu hello", "host": "2.2.2.2" }, { "name": "www.tencent.com", "field1": 2, "data": "hello tencent hello", "host": "2.2.2.2" } ] [root@localhost 2021-09-02-11]#