ES索引的导入与导出

需求 将生产环境指定的 es 索引导入到测试环境

思路 1、查询 prod 环境要导入的索引,导入到 txt 文件 2、删除 test 环境所有索引(依据实际情况) 3、编写脚本 4、查看进度

步骤 1、查看索引 查看 prod 环境索引

1
curl -s -XGET --user "用户名:密码" -H "Content-Type: application/json" 'es地址/_cat/indices?v' |grep ka_budget_spu-

保存索引名

1
curl -s -XGET --user "用户名:密码" -H "Content-Type: application/json" 'es地址/_cat/indices?v' |grep ka_budget_spu- |awk '{print $3}' | sort > prd_index_name.txt

2、删除索引 删除指定索引

1
2
curl -XDELETE -u "用户名:密码" 'es地址/索引名称'
curl -X DELETE -u "elastic:$PASSWORD" 'https://localhost:9200/_all' -k

删除所有索引

1
2
3
curl -X DELETE 'http://localhost:9200/_all'

# 一般不建议,最好是将要删除的索引放入txt文件,通过for循环遍历删除

3、编写脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[root@node01 es]# cat import_pro_to_dev_index.sh
#!/bin/bash
for line in `cat prd_index_name.txt`
do
    echo -------- $line --- $uat_index_name ----------------
    echo "开始导入 $line -> $uat_index_name [mapping]"
    elasticdump --input=https://账户:密码@es地址/$line --output=https://账户:密码@es地址/$uat_index_name --type=mapping
    echo "开始导入 $line -> $uat_index_name [data]"
    # --limit=20000依据实际情况调整
    elasticdump --limit=20000 --input=https://账户:密码@es地址/$line --output=https://账户:密码@es地址/$uat_index_name --type=data
    echo "导入结束 $line -> $uat_index_name"
done

查看进度 查看 test 环境目前导入索引的情况

1
curl -s -XGET --user "xxx:xxx" -H "Content-Type: application/json" 'https://xxx/_cat/indices?v' |grep ka_budget_spu

elasticsearch 查询时设置最大返回数 max_result_window | 限制字段总数超 1000

1
2
3
4
5
6
PUT log-2021-04-13/_settings
{
  "index": {
    "max_result_window": 2000000000
  }
}

在 kiabana 进行处理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PUT /blog_article
{
    "settings":{
        "number_of_replicas":0,
        "number_of_shards":1
    },
    "mappings":{
        "properties":{
            "briefContent":{
                "type":"text",
                "analyzer":"ik_max_word"
            },
            "title":{
                "type":"text",
                "analyzer":"ik_max_word"
            }
        }
    }
}
## 取消查询10000条限制

PUT /blog_article/_settings
{
  "index":{
    "max_result_window":1000000
  }
}

转自:

https://blog.csdn.net/qq_40887651/article/details/129121643

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up