python链接ES进行数据过滤删除

# -*- coding: utf-8 -*-
"""
    @Time       :2020/06/04
    @Author     :Mr.Yang
    @File       :ElasticSearch_operations.py
    @Software   :PyCharm
    @Description:对ES进行查询,按时间戳删除操做,后续增长写入操做
"""

import time
import datetime
import json
import sys
from elasticsearch import Elasticsearch

"""当前时间及时间戳转换"""Time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
"""当前时间计算"""
now_time = datetime.date.today()
"""当前时间的前一个月"""
last_time = datetime.datetime.now() - datetime.timedelta(days = 30)
"""字符格式类型转换"""
now_time = last_time.strftime("%Y-%m-%d %H:%M:%S")
"""换算时间戳为毫秒级"""
mtime = (int(time.mktime(last_time.timetuple())) * 1000)"""ES链接配置"""
es_host = ['域名', '域名', '域名']#可写入域名或IP
es = Elasticsearch(hosts=es_host,port=9200)#上一步写IP,此处加入port

"""ES查询修改下列参数"""
index_name = "cn_qlibobject"
id = "mUMdVHIBJYEnkK7W9DzK"

def es_query(index_name,id):
    """查询转换为json格式"""
    res = es.get(index=index_name,id=id)
    print json.dumps(res, sort_keys=True, indent=4, separators=(', ', ': '))


def es_del():
    """小于时间戳的数据删除"""
    body = {
       "query":{
           "range":{
               "updateTime": {
                   "lte": mtime
               }
           }
       }
    }
    res = es.search(index=index_name,body=body)
    #print json.dumps(res, sort_keys=True, indent=4, separators=(', ', ': '))
    es.delete_by_query(index=index_name,body=body)

#"""建立索引"""
#try:
#    result = es.indices.create(index='ceshi')
#    print result
#except  Exception as err:
#    print err
#    #es.count(index="cn_qlibobject",doc_type="_doc")
#
#"""单条数据写入"""
#data = {"updateTime":"1583241764000"}
#res = es.index(index=index_name,doc_type="_doc",body=data)
#print res

if sys.argv[1] == "query":
    es_query(index_name, id)#
elif sys.argv[1] == "del":
    es_del()
else:
    print "请正确输入参数(query(查询)或del(删除))"
相关文章
相关标签/搜索