最近由于服务器故障,导致部分数据丢失,由于我们当初将数据备份到ES上,现在需要将丢失数据从ES上同步hdfs上,这里我使用Logstash作为数据同步工具。
整体思路是:第一步,拿到最后一次数据发送到hdfs上时间戳(这里我是通过impala查询到的)。第二步,拿到最后一次时间戳,去es上把丢失数据搜出来。第三步,直接追加到hdfs上文件里。中间,还要对数据做一些处理,增加一些字段。
具体配置如下:
input {
elasticsearch {
hosts => "http://host:9200"
index => "索引名"
query => '{"query": {"range":{"@timestamp":{"gte":"2020-05-31T00:00:00.614Z","lte":"2020-05-31T23:59:00.123Z"}}}}'
docinfo => true
#使用scroll api 在五分钟内 批量5000 将数据拉去完。
size => 5000
scroll => "5m"
user => "用户名"
password => "密码"
}
}
filte