childe / gohangout

使用 golang 模仿的 Logstash。用于消费 Kafka 数据,处理后写入 ES、Clickhouse 等。
MIT License
1.01k stars 234 forks source link

‘Y’ ‘N’ 转换bool #170

Closed hoysoft closed 2 years ago

hoysoft commented 2 years ago

字符 ‘Y’ ‘N’ 如何转换bool

childe commented 2 years ago

看了一下代码,目前还有点麻烦。像下面这样是可以的。

inputs:
  - Stdin:
      codec: json

filters:
  - Add:
      if:
        - 'EQ($.message,"Y")'
      fields:
        message: 'true'
  - Convert:
      fields:
        message:
          to: bool

outputs:
  - Stdout: {}
hoysoft commented 2 years ago

我目前采用方案

inputs:
  - Stdin:
      codec: json

filters:
  - Replace:
        fields:
          our_result: ['Y', 'true']
          our_result: ['N', 'false']    
          upstream_result: ['Y', 'true'] 
          upstream_result: ['N', 'false']
  - Convert:
      fields:
        our_result:
          to: bool
        upstream_result:
          to: bool
outputs:
  - Stdout: {}