elasticsearch 数据迁移

现需要将某集群下一个索引下的所有数据迁移到另一个集群上, elasticsearch-dump, Elasticsearch-Exporter 试了一下都不好使,只能老实的写代码来实现

import os
import sys
import pyes
import datetime

index_list = [
    ["alias-offer", "offer"]
]

ES_URL = "http://ip1:9200/"
NEW_ES_URL = "http://ip2:9200/"

def main():
    for _index, _type in index_list:
        print "开始索引:"+_index
        conn = pyes.es.ES(ES_URL)
        print "已经连接上原地址"
        search = pyes.query.MatchAllQuery().search(bulk_read=1000)
        hits = conn.search(search, _index, _type, scan=True, scroll="30m", model=lambda _,hit: hit)
        print "原地址返回数据"
        conn2 = pyes.es.ES(NEW_ES_URL)
        print "连接到新地址"
        count = 0
        for hit in hits:
            conn2.index(hit[‘_source‘], _index, _type, hit[‘_id‘], bulk=True)
            count += 1
            if count % 1000 == 0:
                print (datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M:%S‘),count)
                conn2.flush_bulk(forced=True)
        conn2.flush_bulk(forced=True)
        conn2 = None
        conn = None

if __name__ == ‘__main__‘:
    main()
    print "数据导入结束"

虽然慢,但能用,基本满足需要!

原文地址:http://blog.51cto.com/12597095/2123065

时间: 2024-10-05 04:56:08

elasticsearch 数据迁移的相关文章

elasticsearch数据迁移——elasticsearch-dump使用

先安装好nodejs和nodejs的包管理工具npm.然后安装elasticsearch-dump: npm install elasticdump 下面迁移数据: 先在目的地址创建一个index来储存数据: curl -X PUT 'localhost:9200/customer?pretty' 执行迁移命令:--input设置导出的源地址,--output设置导出的目的地址 '#拷贝analyzer如分词 elasticdump --input=http://production.es.co

centos下Elasticsearch数据迁移与备份

########### ### 共享创建es官方网站就一句话 ######## 1.下载 文件共享 .. rpm -i http://mirror.symnds.com/distributions/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm 2.安装 yum -y install sshfs #如果离线自己机器上安装个和服务器一样版本.修改/etc/yum/yum.conf   keepcache=1 #在 /var/cache/yum/x8

Elasticsearch集群数据迁移

参考 https://www.elastic.co/guide/en/elasticsearch/reference/5.0/modules-snapshots.htmlhttps://www.elastic.co/guide/en/elasticsearch/guide/current/_rolling_restarts.htmlhttps://blog.csdn.net/u014431852/article/details/52905821 环境 阿里云elasticsearch集群5.0版

elasticdump 迁移 elasticsearch 数据

elasticdump 迁移 elasticsearch 数据 elasticdump github地址 https://github.com/taskrabbit/elasticsearch-dump 折腾了一会nodejs耐心尽失,果断使用docker方式. 1.下载docker镜像 拉取镜像 docker pull taskrabbit/elasticsearch-dump 2.导出数据 如果将数据导出为文件形式,需要将宿主机目录挂载至容器上. # 提前创建数据目录. mkdir /dat

Easticsearch 数据迁移至influxdb【python】

Easticsearch 数据迁移至influxdb python 需求:将Easticsearch部分数据迁移至influxdb中. 见过从mysql,influxdb迁移至Easticsearch中的,没见过从Easticsearch迁移至influxdb中,迁移的数据是一些实时性的流量数据,influxdb时序性数据库对这类数据的支撑比较客观. 解决方案:大批量从Easticsearch取数据,两种方案.1.from...size    2.scroll (类似于数据库的游标)  脚本采用

[elasticsearch]ES迁移笔记

ES在更改分词器或更改已有mapping结构后需要重新重新索引,当然复制也是一样的,相当于重新生成索引信息 //es的head插件地址:http://localhost:9200/_plugin/head/ //新建索引PUT    /my_index_new{//此处mapping复制的时候可以复制已有的mapping信息  "mappings": {    "my_type" : {      "properties": {        &

轻松上云系列之一:本地数据迁移上云

背景信息在云计算服务高速发展的今天,如何方便快捷地将已有的服务器系统迁移上云,有着非常重要的意义.阿里云服务器迁移服务方案,即迁移服务,正是在这个需求背景下应运而生.它极大地简化了服务器系统迁移工具的使用条件.降低了使用成本,使用户的系统一键迁移到阿里云成为可能. 使用迁移服务来进行系统迁移比较便捷,您可以先参考迁云工具帮助文档了解使用条件及基本操作. 迁移流程1.熟悉迁移工具使用方法,提前做好测试演练. 2.评估迁移时间/成本,制定迁移计划. 3.正式迁移,可咨询阿里云团队支持. 数据传输服务

elasticsearch7.5.0+kibana-7.5.0+cerebro-0.8.5集群生产环境安装配置及通过elasticsearch-migration工具做新老集群数据迁移

一.服务器准备 目前有两台128G内存服务器,故准备每台启动两个es实例,再加一台虚机,共五个节点,保证down一台服务器两个节点数据不受影响. 二.系统初始化 参见我上一篇kafka系统初始化:https://www.cnblogs.com/mkxfs/p/12030331.html 三.安装elasticsearch7.5.0 1.因zookeeper和kafka需要java启动 首先安装jdk1.8环境 yum install java-1.8.0-openjdk-devel.x86_64

Code First Migrations更新数据库结构(数据迁移) 【转】

背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的旧数据库中包含一些测试数据时,当持久化更新后,原数据将全部丢失,故我们可以引入EF的数据迁移功能来完成. 要求 已安装NuGet 过程示例 [csharp] view plaincopyprint? //原model //原model [csharp] view plaincopyprint? us