benthos组件使用系列(input)

input常用组件的记录:

generate

benthos的任务运行必须要有一个输入作为触发条件,比如当处理文件时,配置的目录下有相应的文件触发任务的运行。
但是有的需求肯能没有输入,此时可以用input中的generate,generate可以定时的触发一次推动任务向下流转。
举例:
定时查数据库。

input:
  generate:
    interval: '@every 5m'
    mapping: 'root = {}'
  processors:
    - sql_select:
        driver: postgres
        dsn: postgres://foouser:foopass@localhost:5432/testdb?sslmode=disable
        table: foo
        columns: [ "*" ]

定时时间写法有:
interval: 1s
interval: TZ=Local 30 0 1 * *(注意时区,默认是UTC时间)
count 非零则意味着触发的次数。

file

# Common config fields, showing default values
input:
  label: ""
  file:
    paths: []
    codec: lines

file类型的输入有一个元数据(Metadata) :

  • path
    元数据是"不可见"的,但是可以可以使用meta("path")方法获得。
    参数
    paths支持正则表达式;
    codec:定义了文件读取的方式,delim:x自定义文件分隔符,lines 一行行读取,没读一行文件,改行文件就会流转到任务执行完毕。
    例如读取*.log.gz ,可以将设置为codec: gzip/delim:\n。
    max_buffer:文件大小(读取到内存中,压缩包文件需要注意),默认1000000 bytes。
    delete_on_finish:文件处理后的操作,是否删除;感觉功能还是不够灵活,只支持是否删除,没有备份到别的目录功能。
posted @ 2022-02-13 15:36  桂花载酒少年游O  阅读(291)  评论(0编辑  收藏  举报