如何使用 Logstash 过滤器将 Elasticsearch 输出转换为嵌套对象?

美联社辛格

我有来自 JDBC 输入的以下事件或行。

{"academic_session_id" : "as=1|dur=2015-16,as=2|dur=2016-17",
          "branch_id" : 1}

我想使用logstash过滤器将其转换或格式化为以下内容...

{"branch_id": 1,"sessions":[{"as":"1","dur":"2015-16"},{"as":"2","dur":"2016-17"}]}

如果您可以提出任何替代logstash的建议。注意 - 我使用的是 Elasticsearch 5.X 版本

灾难

由于这是对数据的自定义操作,因此我将使用 ruby​​ 过滤器,并使用code设置编写脚本来解析数据。像这样的事情会起作用:

filter {
  ruby {
    code => "
      academic_session = event.get('academic_session_id').split(',').map{|data| data.split('|')}
      sessions = academic_session.map do |arr|
      temp_hash = {}
        arr.each do |kv|
          k,v = kv.split('=')
          temp_hash[k] = v
        end
        temp_hash
      end
      event.set('sessions', sessions)
    "  
    remove_field => ['academic_session_id']
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ElasticSearch如何将未嵌套的过滤器转换为查询

logstash kv过滤器,使用动态映射将字符串转换为整数

如何使用Logstash和jdbc_streaming过滤器将数据从HTTP输入发送到ElasticSearch?

我可以在Logstash中使用mutate过滤器将某些字段转换为genjdbc输入的整数吗?

Elasticsearch:如何将“嵌套查询”添加到(嵌套)过滤器中

logstash 过滤器将文本添加到输出

如何使用经过的过滤器-logstash

使用logstash将文档嵌套到elasticsearch

Elasticsearch,将嵌套过滤器与普通过滤器结合

elasticsearch将“和过滤器”与“布尔过滤器”混合使用

Elasticsearch使用背景过滤器嵌套重要术语聚合

使用ruby过滤器在logstash中将纪元时间转换为日期

如何用logstash累积过滤器?

Elasticsearch嵌套对象过滤器

如何使用logstash将elasticsearch与postgres连接?

如何在logstash中为JSON格式的嵌套文件编写过滤器部分

使用地理边界框过滤器对嵌套对象进行Elasticsearch渗滤

如何在Elasticsearch过滤器脚本中使用嵌套字段

如何使用过滤器脚本迭代Elasticsearch中的嵌套数组?

Elasticsearch中的过滤器嵌套排序

ElasticSearch中的复杂嵌套过滤器

ElasticSearch带过滤器的嵌套查询

ElasticSearch带过滤器的嵌套排序

Elasticsearch过滤器/计数嵌套字段

使用日期过滤器将Logstash日期解析为时间戳

AngularJS过滤器:如何将大巨型对象(JSON)转换为数组?

如何将git filter-branch命令从树过滤器转换为索引过滤器?

如何使用ES6过滤器和地图将平面结构转换为嵌套结构

如何在Logstash中应用子过滤器