将elasticsearch数据存储到excel中

由于elasticsearch数据在线上,偶尔需要将数据导到本地环境进行分析。目前有需求是将数据导入到excel表中,下面是我在用的实现方案。

1、将线上elasticsearch数据备份成文件

首先通过elasticdump组件将线上指定的index导出成文本文件

elasticdump --input="http://192.168.0.30:9200/adv_default" --output="/bigdata/adv_default.data" --type=data --limit=10000

数据样例:

2、将生成的文本文件下载到指定位置存储,以我本地电脑为例

3、通过python脚本将数据写入到excel

import json

import pandas as pd

# 读取JSON文件
json_file_path = 'D:/data/adv_default.data'
with open(json_file_path, 'r', encoding='utf-8') as file:
    json_data = file.readlines()

# 解析JSON数据
data_list = []
for line in json_data:
    json_line = json.loads(line)
    source_data = json_line['_source']
    data_list.append(source_data)

# 转换为DataFrame
df = pd.DataFrame(data_list)
# 指定 输出的 Excel 文件路径

excel_output_file = json_file_path.split('.')[0] + '.xlsx'
# 将数据写入Excel文件
df.to_excel(excel_output_file, index=False)

 生成的文件格式如下: