es数据导出csv文件

简介: es数据导出csv文件

1 介绍

es数据导出到csv文件,暂时不考虑效率问题,仅谈实现方式。

2 python3

def connect_elk():
    client = Elasticsearch(hosts='http://192.168.56.20:9200',
                           http_auth=("elastic", "elastic密码"),
                           # 在做任何操作之前,先进行嗅探
                           # sniff_on_start=True,
                           # 节点没有响应时,进行刷新,重新连接
                           sniff_on_connection_fail=True,
                           # 每 60 秒刷新一次
                           sniffer_timeout=60
                           )
    return client
from elasticsearch import Elasticsearch
import csv

# 获取es数据库
from common.util_es import connect_elk

es = connect_elk()

'''
    查询所有数据并导出
'''
index = 'blog_rate'
body = {}
item = ["r_id", "a_id"]

# body = {
#     "query": {
#         "match": {"name": "张三"},
#     }
# }

def ExportCsv(index, body,item):
    query = es.search(index=index, body=body, scroll='5m', size=1000)
    # es查询出的结果第一页
    results = query['hits']['hits']
    # es查询出的结果总量
    total = query['hits']['total']["value"]
    # 游标用于输出es查询出的所有结果
    scroll_id = query['_scroll_id']

    for i in range(0, int(total / 100) + 1):
        # scroll参数必须指定否则会报错
        query_scroll = es.scroll(scroll_id=scroll_id, scroll='5m')['hits']['hits']
        results += query_scroll

    with open('./' + index + '.csv', 'w', newline='', encoding="utf_8_sig") as flow:
        csv_writer = csv.writer(flow)
        for res in results:
            csvrow1 = []
            for i in item:
                csvrow1.append(res["_source"][i])
            csv_writer.writerow(csvrow1)
    print('done!')

参考地址:
https://blog.csdn.net/github_27244019/article/details/115351640

相关文章
|
1月前
|
Java Apache
导出csv格式的文件
导出csv格式的文件
30 0
|
1月前
|
关系型数据库 大数据 Python
如何快速创建千万行CSV 数据?
如何快速创建千万行CSV 数据?
|
存储 数据挖掘 数据库
|
关系型数据库 数据库 PostgreSQL
导出CSV文件
导出CSV文件
347 0
|
关系型数据库 MySQL 中间件
Hyperf结合PhpOffice/PhpSpreadsheet实现Excel&CSV文件导出导入
Hyperf结合PhpOffice/PhpSpreadsheet实现Excel&CSV文件导出导入。PhpSpreadsheet是一个用纯PHP编写的库,它提供了一组类,允许您读取和写入各种电子表格文
894 0
Hyperf结合PhpOffice/PhpSpreadsheet实现Excel&CSV文件导出导入
|
SQL Shell 数据库
利用groovy把表中数据导出成txt或csv
胶水语言就是胶水,写起也挺快的.这个脚本主要是从数据库中把表中的数据导出来生成文件.而不用每次都打开数据库编辑器去手工收集.
1089 0
|
关系型数据库 测试技术 Windows