elasticsearch - logstash输入jdbc如何填充多值字段?
问题描述
我可以tagids
像这样放置一个具有多值字段的文档,但是如何使用logstash输入jdbc填充具有多值的字段。
PUT /song/_doc/0
{
"artist_name":"test",
"artistid":0,
"categories":[4,5,6],
"created_at":"2021-12-13T00:00:00Z",
"name":"test",
"name_pinyin":"csgq",
"tagids":[1,2,3]
}
现在我使用 jdbc 配置,但它1,2,3
作为一个关键字。如何使它成为一个数组?
input {
jdbc {
jdbc_driver_library => ""
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:............."
jdbc_user => ""
jdbc_password => ""
schedule => "* * * * *"
statement => "SELECT songid,name,name_pinyin,artistid,artist_name,'1,2,3' as tagids, '4,5,6' as categories,create_at from song"
}
}
解决方案
您可以利用mutate/split
过滤器来实现您想要的:
filter {
mutate {
split => {
"categories" => ","
"tagids" => ","
}
}
}
推荐阅读
- python - 基于数据框中列表对象内容的 Pandas 数据框选择
- java - 如何在配置文件中获取“子文件夹”列表
- elementor - 将 Memberpress 规则插入 Elementor
- mongodb - 在 Ubuntu 中列出集合 mongodb BI 连接器时出错
- sql - 安装及时调试
- python - 如何在plotly Dash中并排绘制数字?
- c - 使用 setup.py 编译 Cython 扩展时,这些额外的编译器标志来自哪里?
- php - Woocommerce - 产品配置器中的空图像
- git - git无法识别命令中的本地存储库路径
- php - PHP require_once 给出无法打开流错误