我想使用类似这样的架构将数据从LogStash流传输到MS SQL Server工作表:
CREATE TABLE [dbo].[WorkingTable] (
[MessageId] bigint, //Auto Incrementing primary key.
[Data] nvarchar(MAX) //JSON data.
)
我希望[Data]
字段包含LogStash的全部消息,序列化为JSON字符串,并且不希望一半使用sprintf对其进行显式格式化。
如何使用JDBC输出插件或其他一些插件来完成此操作?
答案 0 :(得分: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