“标签”在logstash中修改“tags”; sql 查询的列

发布于 2025-01-11 11:02:50 字数 563 浏览 0 评论 0原文

我有一个 LogStash 设置,可以从 Postgres 获取数据。问题是,我在 SQL 中有一个名为“tags”的列,它是一个字符串数组。但在插入数据期间,Logstash 会将“Logstash 标签”附加到我的列的标签数组中。有什么办法可以覆盖它吗?

jdbc {
tags => "color_list"
jdbc_connection_string => "jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}"
jdbc_user => "${DB_USER}"
jdbc_password => "${DB_PASSWORD}"
schedule => "* * * * *"
jdbc_driver_class => "org.postgresql.Driver"
statement => "SELECT tags
    from color_table;"

在我的表中,标签列为空。所以我期待一个空数组。但我收到的是 [color_list] 而不是 []。有什么办法可以覆盖它吗?

I have a LogStash setup that will fetch data from Postgres. The problem is, I have a column called "tags" in SQL which is an array of strings. But during the insertion of data, the Logstash will append the "Logstash tag" into the tags array of my column. Is there any way to override that?

jdbc {
tags => "color_list"
jdbc_connection_string => "jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}"
jdbc_user => "${DB_USER}"
jdbc_password => "${DB_PASSWORD}"
schedule => "* * * * *"
jdbc_driver_class => "org.postgresql.Driver"
statement => "SELECT tags
    from color_table;"

In my table, the tags column is empty. So I am expecting an empty array. But am receiving [color_list] instead of []. Is there any way to override that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

将军与妓 2025-01-18 11:02:50

Logstash 管理每个事件的“标签”。这是某种元数据,您可以在管道中进行操作:所有过滤器都有 add_tag 和 remove_tag 选项。某些过滤器会在失败时自动添加标签(例如:如果 grok 模式与事件内容不匹配,则 grokparsefailure )。

我建议不要尝试将标签字段用于其他任何用途。
我建议您从数据库中重命名您的字段。这个怎么样?

statement => "SELECT tags as db_tags
    from color_table;"

然后在你的文档中,你可以按照你的预期处理 [db_tags] 字段,并将 [tags] 字段留给logstash。

Logstash manages "tags" on each event. It is some kind of metadata, that you can manupulate in your pipeline : all filters have add_tag and remove_tag options, for example. Some filters will automatically add tags on failure (for example: grokparsefailure if the grok pattern doesn't match on the event's contents).

I would advise to not attempt to use the tags field for anything else.
I suggest you rename your field from the DB instead. How about this ?

statement => "SELECT tags as db_tags
    from color_table;"

Then in your doument you can process the [db_tags] field as you expect, and leave the [tags] field for logstash.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文