logstash维护读取数据的顺序
logstash maintaining the order in which data is read
我有一个 logstash 实例并从多个文件读取数据。我想维护 Elasticsearch 中数据更新的顺序,因为 _id 字段是关键。
因此如果输入文件中有两条记录具有相同的键,则必须按顺序更新。
如何在 logstash 中强制从源排序?
Input file 1:
Key = A1 , Data = abc , time=5:51 PM
Key = B1 , Data = efg , time=5:52 PM
Key = C1 , Data = hij , time=5:53 PM
Input file 2:
Key = A1 , Data = klm, time=5:50 PM
这将由 logstash 中的两个线程读取。
如果有两个过滤器线程格式化数据。
输出使用 _id 进行弹性搜索:
output {
elasticsearch {
embedded => true
index => "samples6"
index_type => "sample"
document_id => "%{Key}"
}
}
如何确保 Key=A1 有 Data=abc 而不是 "klm"。
如果需要按顺序处理的数据是从不同的文件中读取的,则无法执行此操作,因为 Logstash 不维护有序的事件队列。如果您有多个过滤器工作人员(即以 -w
/--filterworkers
大于一个启动 Logstash),即使您从单个文件读取也无法保证顺序。
您必须自己编写一些内容才能正确排序。也许 Apache Samza 会有用。
我有一个 logstash 实例并从多个文件读取数据。我想维护 Elasticsearch 中数据更新的顺序,因为 _id 字段是关键。
因此如果输入文件中有两条记录具有相同的键,则必须按顺序更新。
如何在 logstash 中强制从源排序?
Input file 1:
Key = A1 , Data = abc , time=5:51 PM
Key = B1 , Data = efg , time=5:52 PM
Key = C1 , Data = hij , time=5:53 PM
Input file 2:
Key = A1 , Data = klm, time=5:50 PM
这将由 logstash 中的两个线程读取。
如果有两个过滤器线程格式化数据。
输出使用 _id 进行弹性搜索:
output {
elasticsearch {
embedded => true
index => "samples6"
index_type => "sample"
document_id => "%{Key}"
}
}
如何确保 Key=A1 有 Data=abc 而不是 "klm"。
如果需要按顺序处理的数据是从不同的文件中读取的,则无法执行此操作,因为 Logstash 不维护有序的事件队列。如果您有多个过滤器工作人员(即以 -w
/--filterworkers
大于一个启动 Logstash),即使您从单个文件读取也无法保证顺序。
您必须自己编写一些内容才能正确排序。也许 Apache Samza 会有用。