通过ES查询指定条件的全量数据python实现

from elasticsearch import Elasticsearch

def test():
try:
l_time = datetime.datetime.now() + datetime.timedelta(minutes=-15)
now_time = util.local2utc(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'))
now_time_5m = util.local2utc(l_time.strftime('%Y-%m-%d %H:%M:%S.%f'))
es = Elasticsearch([{"host": "192.168.25.30", "port": "9200"}])
body = {
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"range": {
"@timestamp": {
"gte": now_time_5m,
"lte": now_time
}
}
}
}
},
"size": 10000,
"sort": {
"@timestamp": {"order": "asc"}
},
"_source": ["status", "method", "client_ip", "remote_ip", "timestamp", "request_time", "@timestamp"]
}
queryData = es.search(index='your_index_name', scroll='5m', timeout='3s', size=10000, body=body)
mdata = queryData.get("hits").get("hits")
if not mdata:
print 'empty!'
scroll_id = queryData["_scroll_id"]
total = queryData["hits"]["total"]
print "total is :%s"%total
for i in range(total / 10000):
res = es.scroll(scroll_id=scroll_id, scroll='5m') # scroll参数必须指定否则会报错
mdata += res["hits"]["hits"]
print len(mdata)
except Exception as ex:
print "test function excute exception:" + str(ex)


if __name__ == "__main__":
test()

转载于:https://www.cnblogs.com/chmyee/p/9946254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值