0

我想将数据从 LogStash 流式传输到 MS SQL Server 工作表,其架构如下:

CREATE TABLE [dbo].[WorkingTable] (
    [MessageId] bigint,       //Auto Incrementing primary key.
    [Data]      nvarchar(MAX) //JSON data.
)

我希望该[Data]字段包含来自 LogStash 的整个消息,序列化为 JSON 字符串,并且不想一半使用 sprintf 显式格式化它。

如何使用 JDBC 输出插件或其他插件来做到这一点?

4

1 回答 1

0
output {
jdbc {
    driver_jar_path => 'jar file path'
    connection_string => "jdbc:sqlserver://sqlserver:port;databaseName=databaseName;user=user;password=pass"
    enable_event_as_json_keyword => true
    statement => ["INSERT INTO [dbo].[WorkingTable] (MessageId, Data) VALUES(?, ?)", "%{[Data][MessageId]}", "@event"]
}}

您应该将 enable_event_as_json_keyword 设置为 true,然后在语句中使用魔术 @event

于 2020-01-15T15:52:39.957 回答