栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch 小规模数据 跨集群迁移

elasticsearch 小规模数据 跨集群迁移

迁移方法1,通过代码迁移,优点不需要改动任何集群配置和重启器群:

from elasticsearch import Elasticsearch
from elasticsearch import helpers

def get_all_data(table, query_dsl,scroll='5m',timeout='1m'):
    es = Elasticsearch([{'host': "IP", 'port': PORT, "http_auth": "user:passwd"}])
    es_result = helpers.scan(
        client=es,
        query=query_dsl,
        scroll=scroll,
        index=table,
        timeout=timeout
    )
    return es_result


def batch_data(data_list, index_name, _id_name=None):
    """ 批量写入数据 """
    es = Elasticsearch([{'host': "IP", 'port': PORT, "http_auth": "user:passwd"}])
    if _id_name:
        action = [{
            "_index": index_name,
            "_id": data_list[i][_id_name],
            '_type': '_doc',
            "_source": data_list[i]
        } for i in range(len(data_list))]
    else:
        action = [{
            "_index": index_name,
            '_type': '_doc',
            "_source": data_list[i]
        } for i in range(len(data_list))]
    helpers.bulk(es, action)

query_dsl = {
    "query":{
        "match_all":{}
    }
}

es_result = get_all_data("index_name",query_dsl)
result = []
for each in es_result:
    result.append(each.get("_source"))
    if len(result)>3000:
        batch_data(result,"index_name",_id_name="news_id")
        result.clear()

迁移方式2:Elasticdump

迁移方式3:reindex

参考:es数据跨集群的两种迁移方式_一只行走鸟的博客-CSDN博客_es reindex跨集群

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774992.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号