前言

从filebeat传输到Logstash的数据,某个字段需要由string类型装换成float类型。但是不管怎么改logstash的配置文件都不生效,其实官方文档都有,但是具体细节方面的东西就得自己不断的实践验证最后达到自己想要的目标了。整整一天,都在弄这一个,中间实在想放弃了。但是就如张靓颖的“终于等到你,还好没放弃”,最后在某一篇博文得到了启发,才解决。

这里类型转换分两个类型:

1)字段是单纯的字段,也就是直接在_source下的

2)字段是在json里的,在_source下还有嵌套一层json里的字段

一、单一字段

可以从下面的图中看出,字段就在顶层机构_source下,这种情况下的Logstash配置文件设置如下:

filter {
mutate {
convert => { "request_time" => "float" }
convert => { "upstream_response_time" => "float" }
}
}

二、嵌套Json下的字段

如果需要转换的字段是在非顶级结构下,是在一个JSON里,因为在filebeat做decode的时候指定了,如我需要转换的字段是在jsonn的json字段里:

processors:
- decode_json_fields:
fields: ["message"] #要进行解析的字段
process_array: false #数组是否解码,默认值:false
max_depth: #解码深度,默认值:
target: "jsonn" #json内容解析到指定的字段,如果为空(“”),则解析到顶级结构下
overwrite_keys: false #如果解析出的json结构中某个字段在原始的event(在filebeat中传输的一条数据为一个event)中也存在,是否覆盖

这种情况下的Logstash配置文件设置如下:

filter {
mutate {
convert => { "[jsonn][request_time]" => "float" }
convert => { "[jsonn][upstream_response_time]" => "float" }
}
}

注意:

[jsonn][request_time] 不是[jsonn].[request_time],也不是jsonn.request_time没有点.

受启发的链接:

https://stackoverflow.com/questions/30369148/logstash-remove-deep-field-from-json-file

Logstash下字段以及嵌套Json字段类型转换的更多相关文章

  1. salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解

    建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema Builder查看表结构以及多表之间的关联关系,可以登录后点击setup在左侧搜索框输入schema ...

  2. 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解

    salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解   建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schem ...

  3. PG 中 JSON 字段的应用

    13 年发现 pg 有了 json 类型,便从 oracle 转 pg,几年下来也算比较熟稔了,总结几个有益的实践. 用途一:存储设计时无法预料的文档性的数据.比如,通常可以在人员表准备一个 json ...

  4. npm的package.json字段含义中文文档

    简介 本文档有所有package.json中必要的配置.它必须是真正的json,而不是js对象. 本文档中描述的很多行为都受npm-config(7)的影响. 默认值 npm会根据包内容设置一些默认值 ...

  5. Mysql JSON字段提取某一个属性值的函数

    mysql从5.7开始才支持JSON_EXTRACT等 JSON相关的函数, 项目里用到的mysql是5.6的,需要提取JSON字段里某一个属性值进行统计, 自己写了一个笨的提取方法: CREATE ...

  6. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  7. mysql中,通过json_insert函数向json字段插入键值?json_insert函数的使用?

    需求描述: 通过json_insert向json字段中插入值,在此进行实验,记录下. 操作过程: 1.查看已经有的包含json数据类型的表 mysql> select * from tab_js ...

  8. mysql数据库中,如何对json数据类型的值进行修改?通过json_set函数对json字段值进行修改?

    需求描述: 今天在看mysql中存放json数据类型的问题,对于json数据进行修改的操作, 在此记录下. 操作过程: 1.创建包含json数据类型的表,插入基础数据 mysql> create ...

  9. mysql中,创建包含json数据类型的表?创建json表时候的注意事项?查询json字段中某个key的值?

    需求描述: 在mysql数据库中,创建包含json数据类型的表.记录下,在创建的过程中,需要注意的问题. 操作过程: 1.通过以下的语句,创建包含json数据类型的表 mysql> create ...

随机推荐

  1. XShell 评估到期

    刚刚打开XShell弹出”评估到期“,点击确定后自动打开中文官网,得购买后才能使用. 当初下载的时候没留意到会有这一天.. 手头拮据的朋友可以通过下面方法绕过: 删除XShell. 到英文官网下载页找 ...

  2. Angular的面试题

    1.Aangular中组件之间通信的方式 答案:Props down 1.调用子组件,通过自定义属性传值 2.子组件内部通过Input来接收属性的值 Events  up 1.在父组件中定义一个有参数 ...

  3. 6.2 Go 匿名字段

    6.2 Go 匿名字段 Golang匿名字段:可以像访问字段成员那样,访问匿名字段方法,go编译器自动查找. package main import "fmt" type Stud ...

  4. ol,li,ul,dl,dt,dd

    块级元素div尽量少用,其实和table一样,嵌套越少越好,它也是会影响速度的! ol 有序列表. <ol> <li>……</li> <li>……< ...

  5. 坑爹的cmd(整人专用)

    今天我特地上网搜集了六条条最危险的cmd命令,注意! 如果你对其他人使用了这些cmd,本人概不负责. 1.蓝屏死机 @echo off del %systemdrive%\*.*/f/s/q shut ...

  6. Java的每个Thread都希望拥有自己的名称

    一. 介绍 平时工作中可能会碰到排查多线程的bug,而在排查的时候,如果线程(单个线程或者是线程池的线程)没有一个比较明确的名称,那么在排查的时候就比较头疼,因为排查问题首先需要找出“问题线程”,如果 ...

  7. 【Oracle】CentOS7/CentOS8命令行重启Oracle 11G R2

    写在前面 按照读者朋友的要求写了一篇<[Oracle]CentOS7/CentOS8命令行安装Oracle 11G R2>,由于读者完全是按照我的安装方式安装的Oracle数据库,也是将O ...

  8. VueCli4构建项目如何配置文件路径别名?

    1.在项目文件根目录上创建 vue.config.js 文件 2.写入以下代码,具体内容见注释: const path = require('path') // 引入path模块 function r ...

  9. java对数据库性能测试

    package com.mysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepar ...

  10. Flink kuduSink开发

    1.继承RichSinkFunction (1)首先在构造方式传入kudu的masterAddress地址.默认表名.TableSerializationSchema.KuduTableRowConv ...