精华内容
下载资源
问答
  • elasticSearch数据迁移

    2021-07-01 11:27:11
    为什么要进行数据迁移,常用场景: 新建索引 gulimall_product,因为老索引 product 的映射规则的 attrs属性类型是doc_value=false,代表不可以进行aggs聚合操作,要想实现聚合操作,必须新建索引规则,doc_value=...

    为什么要进行数据迁移,常用场景:
    新建索引 gulimall_product,因为老索引 product 的映射规则的 attrs属性类型是doc_value=false,代表不可以进行aggs聚合操作,要想实现聚合操作,必须新建索引规则,doc_value=true默认为true,然后将老索引中的数据迁移到新索引中即可

    1、新建索引映射规则

    PUT gulimall_product
    {
      "mappings": {
        "properties": {
          "attrs": {
            "type": "nested",
            "properties": {
              "attrId": {
                "type": "long"
              },
              "attrName": {
                "type": "keyword"
              },
              "attrValue": {
                "type": "keyword"
              }
            }
          },
          "brandId": {
            "type": "long"
          },
          "brandImg": {
            "type": "keyword"
          },
          "brandName": {
            "type": "keyword"
          },
          "catalogId": {
            "type": "long"
          },
          "catalogName": {
            "type": "keyword"
          },
          "catelogId": {
            "type": "long"
          },
          "hasStock": {
            "type": "boolean"
          },
          "hosStock": {
            "type": "boolean"
          },
          "hotScore": {
            "type": "long"
          },
          "saleCount": {
            "type": "long"
          },
          "skuId": {
            "type": "long"
          },
          "skuImg": {
            "type": "keyword"
          },
          "skuPrice": {
            "type": "keyword"
          },
          "skuTitle": {
            "type": "text",
            "analyzer": "ik_smart"
          },
          "spuId": {
            "type": "long"
          }
        }
      }
    }
    

    2、数据迁移

    将旧索引product的数据迁移到新索引中

    POST _reindex
    {
      "source": {
        "index": "product"
      },
      "dest": {
        "index": "gulimall_product"
      }
    }
    

    3、查询新索引

    #新索引中已迁移了老索引中的数据
    #GET gulimall_product/_search
    
    {
      "took" : 0,
      "timed_out" : false,
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "skipped" : 0,
        "failed" : 0
      },
       "hits" : {<-->}
    }
    
    展开全文
  • elasticsearch数据迁移

    2018-10-30 13:52:49
    下面介绍两个工具对Elasticsearch数据进行迁移: elasticdump elasticsearch-exporter elasticdump 安装步骤 yum install epel-release yum install nodejs yum install nodejs npm npm install ...

    下面介绍两个工具对Elasticsearch数据进行迁移:

    • elasticdump
    • elasticsearch-exporter

    elasticdump

    安装步骤

    yum install epel-release
    yum install nodejs
    yum install nodejs npm
    npm install elasticdump  
    
    • 如果出现这个错误:
      a、没有package.json这个文件。可以使用npm init -f命令生成一下
      b、relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libss
      先安装openssl 命令:yum install -y openssl 然后安装ws 命令:npm install ws

    如果安装成功,elasticdump的默认路径在node_modules/elasticdump/bin,首先打开目录

    cd node_modules/elasticdump/bin  
    

    执行下面语句可以把数据迁移到目标机器

    ./elasticdump  --input=http://192.168.1.1:9200/original --output=http://192.168.1.2:9200/newCopy --type=data 
    

    参数说明(可以访问https://www.npmjs.com/package/elasticdump查看)

    这一步是迁移到新索引的命令,把192.168.1.1的original索引迁移至192.168.1.2。 需要注意的是如果只使用这个命令的话,目的索引必须先手动创建一下mapping,不然迁移过去类型会自动判断,date类型判断成string等等

    如果你很懒你不想自己创建索引,那么你可以在执行上述命令前执行以下命令:

    ./elasticdump  --input=http://192.168.1.1:9200/original --output=http://192.168.1.2:9200/newCopy --type=mapping  
    

    不一样的地方就是--type=mapping ,意思是把原始索引originalmapping结构迁移给目标索引newCopy

    如果索引很多,你还是懒得一个个去迁移,那么你可以改用这个命令:

    ./elasticdump  --input=http://192.168.1.1:9200/ --output=http://192.168.1.2:9200/ --all=true  
    

    加个--all=trueinputoutput里不需要把索引名加上,这样就可以自动把原机器上的所有索引迁移到目标机器

    下面补充一个运行脚本,从192.168.1.10把数据导入到192.168.1.11

    • 导入索引 --type=mapping
    for index in $(cat import_index.txt | awk '{print $1}' );do
    	echo ${index}
    	./elasticdump --ignore-errors  --input=http://192.168.1.10:9200/${index} --output=http://192.168.1.11:9200/${index} --type=mapping
    done
    
    • 导入数据--type=data
    for index in $(cat import_index.txt | awk '{print $1}' );do
    	echo ${index}
    	./elasticdump --limit=1000 --ignore-errors  --input=http://192.168.1.10:9200/${index} --output=http://192.168.1.11:9200/${index} --type=data
    done
    

    Elasticsearch-exporter

    安装步骤:

    npm install nomnom  
    npm install colors  
    npm install elasticsearch-exporter --production  
    

    然后执行命令脚本

    node exporter.js -a <source hostname> -b <target hostname> -p <s port> -q <t port> -i <s index> -j <t index>
    
    展开全文
  • Elasticsearch数据迁移

    千次阅读 2017-11-03 21:51:07
     将旧的数据从一个Elasticsearch集群,迁移到应外一个Elasticsearch集群  将每天或者每月的索引库,合并成一个索引库1、安装插件安装命令:进入到lostash的目录: bin/logstash-plugin install logstash-input-...

    应用场景:
     将旧的数据从一个Elasticsearch集群,迁移到应外一个Elasticsearch集群
     将每天或者每月的索引库,合并成一个索引库

    1、安装插件

    安装命令:进入到lostash的目录:
    bin/logstash-plugin install logstash-input-elasticsearch
    
    如果安装不上,卡在验证,请尝试一下一下安装命令:
    bin/logstash-plugin install --no-verify logstash-input-elasticsearch
    
    如果还是安装不上,请修改logstash下的Gemfile:
    将ruby源修改为一下任意一个镜像:
    source "https://rubygems.org" 修改为:source "https://ruby.taobao.org/"   或者 source "https://gems.ruby-china.org"
    

    2、配置参数

    2.1、描述
    
    基于从Elastisearch集群中查询的结果。这对于重新索引日志等很有用处。
    
    例如:
    

    input {
    # Read all documents from Elasticsearch matching the given query
    elasticsearch {
    hosts => “localhost”
    query => ‘{ “query”: { “match”: { “statuscode”: 200 } }, “sort”: [ “_doc” ] }’
    }
    }

    这相当于如下对Elasticsarch集群做了一次查询:
    

    curl ‘http://localhost:9200/logstash-*/_search?&scroll=1m&size=1000’ -d ‘{
    “query”: {
    “match”: {
    “statuscode”: 200
    }
    },
    “sort”: [ “_doc” ]
    }’

    2.3、Elasticsearch输入的配置参数(Elastisearch Input Configuration Options)
    支持一下参数选项,常见参数选项在后面列出。
    
    ![这里写图片描述](https://img-blog.csdn.net/20171103220122525?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXNsMTI0MjE1NzkwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    

    ca_file:
     类型:path
     没有默认值
    具有PEM编码格式的SSL证书颁发机构文件,必要时还必须包含任何链式证书。

    doc_info:
     类型:boolean
     默认:false
    如果设置,请在事件中包含Elasticsearch文档信息,如索引,类型和id。

    要注意的是,关于元数据,如果您正在查询文档以重新建立索引(或只是更新它们)。 它可以动态分配一个字段添加到元数据中。

    例如:
    input {
    elasticsearch {
    hosts => “es.production.mysite.org”
    index => “mydata-2018.09.*”
    query => ‘{ “query”: { “query_string”: { “query”: “*” } } }’
    size => 500
    scroll => “5m”
    docinfo => true
    }
    }
    output {
    elasticsearch {
    index => “copy-of-production.%{[@metadata][_index]}”
    document_type => “%{[@metadata][_type]}”
    document_id => “%{[@metadata][_id]}”
    }
    }

    docino_fields:
     类型:array
     默认数据:[“_index”, “_type”, “_id”]
    如果启用docinfo选项,则文档元数据是需要的,该选项将会列举所有的元数据字段以保存到当前事件中。查看[文档元数据]
    (http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_document_metadata.html)
    详情请参考Elasticsearch的文档获取更多的信息

    docinfo_traget:
     类型:string
     默认:”@metadata”
    当启用docinfo选项时,文档元数据是需要的,该选项将会确定那个字段存储元数据字段。

    hosts:
     类型:array
     无默认值
    列举一个或者多个Elasticsearch主机,用于查询数据,每一个host可以是IP也可以是HOST,IP:port 或者 HOST:port.默认端口是9200

    index:
     类型:string
     默认:”logstash-*”
    要查询的索引库的名称或者别名。

    password:
     类型:password
     无默认值
    在对Elasticsearch服务器进行身份验证时,与用户选项中的用户名一起使用的密码。 如果设置为空字符串,认证将被禁用。

    query:
     类型:string
     默认:’{ “sort”: [ “_doc” ] }’
    要执行的查询。 阅读[Elasticsearch查询DSL文档]。详情请参考:(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html)

    scroll:
     类型:string
     默认:1m
    这个参数用于控制每次scrolling请求的报活时间并启动scrolling进程。该时间每次适用于往返时间。

    size:
     类型:number
     默认:1000
    每次scroll请求返回的最大命中数。

    ssl:
     类型:boolean
     默认值:false
    如果启用该参数,与Elasticsearch交互的时候将会使用HTTPS请求。

    user:
     类型:string
     无默认值
    当与Elasticsearch服务器进行认证时,user与password一起使用。如果设置空字符串,认证将失效。

    这里写图片描述

    add_field:
     类型:hash
     默认:{}
    添加一个字段到事件中。

    codec:
     类型:codec
     默认值:”plain”
    用于输入数据编解码器,输入编码器是一种便捷的方法,用于在数据进入输入之前进行编码,而不需要在Logstash的pipleline中添加过滤器。

    enable_metric:
     类型:boolean
     默认值:true
    是否启用metric日志,默认情况下,我们是尽可能的收集所有插件示例的metrics日志,但你也可以不启用特定插件的metric日志。

    id:
     类型:string
     无默认值
    为插件配置添加一个唯一的ID。 如果没有指定ID,Logstash将会生成一个。 强烈建议在您的配置中设置此ID。 当你有两个或多个相同类型的插件时,这是特别有用的,例如,如果你有两个elasticsearch输入。 在这种情况下添加一个命名的ID将有助于在使用监视API时监视Logstash。
    input {
    elasticsearch {
    id => “my_plugin_id”
    }
    }

    tags:
     类型:array
     无默认值
    添加任意的数字标识到事件中。这可以帮助我们后期处理。

    type:
     类型:string
     无默认值
    Logstash输入的基本类型,输入将会在所有的事件中添加type类型字段。它将会主要用于过滤。Type作为时间本身的一部分,因此你可以在kibana上进行查询。
    如果对事件设置了type,新的输入是不会覆盖已经存在的type的。设置的type将会在传输的过程中一直存在。

    3、配置文件

    input {
    elasticsearch {
    hosts => [“172.22.9.3:9200”,”172.22.9.4:9200”,”172.22.9.20:9200”,”172.22.9.21:9200”]
    index => “inner-nginx-20170412”
    query => ‘{ “query”: { “query_string”: { “query”: “*” } } }’
    size => 1000
    scroll => “1m”
    docinfo => true
    }
    }
    output {
    elasticsearch {
    hosts => [“172.22.9.3:9200”,”172.22.9.4:9200”,”172.22.9.20:9200”,”172.22.9.21:9200”]
    index => “inner-nginx-201704”
    document_type => “%{[@metadata][_type]}”
    document_id => “%{[@metadata][_id]}”
    }
    stdout {
    }
    }

    以上使用得是将四月份每天生成的索引库,合并成一个索引库。

    官网参考:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-elasticsearch.html

    展开全文
  • Elasticsearch 数据迁移

    2021-05-28 15:24:06
    docker run --rm -ti elasticdump/elasticsearch-dump \ --input=http://10.202.228.28:9200/knowledge_index \ --output=http://10.202.228.8:9201/knowledge_index \ --type=mapping docker run --rm -ti ...

    1.导入索引

    docker run --rm -ti elasticdump/elasticsearch-dump \
      --input=http://source_url/knowledge_index \
      --output=http://target_url/knowledge_index \
      --type=mapping

    2.导入数据

      docker run --rm -ti elasticdump/elasticsearch-dump \
      --input=http://source_url/knowledge_index \
      --output=http://target_url/knowledge_index \
      --type=data

    说明:

    参考:https://github.com/elasticsearch-dump/elasticsearch-dump

    展开全文
  • es数据迁移

    2020-10-23 15:10:37
    经过测试对比_reindex和logstash在es数据迁移的适用场景,推荐使用_reindex。下一为对比结果: 1._reindex适用场景https://www.elastic.co/guide/en/elasticsearch/reference/6.1/docs-reindex.html ·同一集群...
  • ElasticSearch 数据迁移

    2018-08-03 11:18:36
    1.indices整体迁移-磁盘文件 迁移环境: centos到windows 版本: ES6.2.4到ES6.2.4  copy 源ES目录下的data文件到新ES目录下 启动新ES即可 2.indices部分迁移-磁盘文件 迁移环境:windows到centos 版本:...
  • elasticsearch ES数据迁移

    2020-08-29 04:37:59
    #源es ES_HOST="192.168.137.200" ES_USER="" ES_PASSWORD='' ###获取es索引列表 index_list=`curl -u ES_USER:ES_PASSWORD -XGET "http://$ES_HOST:9200/_cat/indices?v"|awk -F' ' '{if (NR>1){print $3}}' |...
  • Elastic数据迁移方法及注意事项 需求 ES集群Cluster_A里的数据(某个索引或某几个索引),需要迁移到另外一个ES集群Cluster_B中。 环境 Linux:Centos7 / Centos6.5/ Centos6.4 Elastic:5.2.0 总结的方法 ...
  • 手把手教您完成Elasticsearch数据迁移

    千次阅读 2020-06-30 20:32:27
    本文以阿里云Elasticsearch(简称ES)为例,介绍阿里云Elasticsearch数据迁移、自建ES数据迁移至阿里云ES和第三方ES迁移至阿里云ES的方案,帮助您根据业务选择合适的场景进行迁移。 单击此处免费试用阿里云Elastic...
  • ES数据迁移

    千次阅读 2019-04-15 15:37:31
    ES集群Cluster_A里的数据(某个索引或某几个索引),需要迁移到另外一个ES集群Cluster_B中。 环境 Linux:Centos7 / Centos6.5/ Centos6.4 Elastic:5.2.0 总结的方法 查询并导出数据 拷贝ES物理目...
  • elasticsearch数据迁移备份还原

    千次阅读 2019-05-19 15:41:30
    需求二:elasticsearch5.2中的数据迁移elasticsearch6.5.4中 方案:采用repository-hdfs插件进行数据迁移备份和还原 疑问一 elasticsearch本来分布式有副本为什么要备份数据?? 任何一个存储数据的软件,都...
  • es 数据迁移

    千次阅读 2016-08-09 10:29:12
    大家都知道,Elasticsearch手动迁移索引到其他机器上是一件非常麻烦的事情。 1. Elasticsearch-dump 这个是我比较常用的一个工具 [python] view plain copy 1) yum install epel-...
  • elasticsearch数据迁移python3脚本 #!/usr/bin/python3 #elsearch 数据迁移脚本 #迁移工具路径 import time,os #下面命令是用到了一个go语言写的迁移工具 cmd = "/usr/local/elk/elasticsearch_remove/esm" ...
  • ElasticSearch数据迁移工具Transporter

    千次阅读 2018-07-31 16:35:35
     transporter 是一款简单而又强大的数据迁移工具。它通过一种的agnostic message format数据形式轻松的将不同数据来源不同格式的数据进行转换。 transporter 可以在不同数据库之间进行数据转换迁移,同时也可以将...
  • elasticsearch数据迁移esm

    2020-12-31 17:08:59
    es同步工具官网:https://github.com/medcl/esm ...depth_1-utm_source=distribute.pc_relevant_t0.none-
  • 目录 1.es数据迁移工具 1.1.ElasticDump简介 1.2.安装ElasticDump ...ElasticDump是一个ElasticSearch的数据导入导出开源工具包,方便使用,有npm和docker两个版本。官方地址:https://github.com/tas
  • 应用背景: 当你的数据量过大,而你的索引最初创建的分片数量不足,导致...但是在ES中,一个字段的mapping在定义并且导入数据之后是不能再修改的, 所以这种情况下也可以考虑尝试使用Reindex。 Reindex: ES提供...
  • https://www.elastic.co/guide/en/elasticsearch/reference/5.4/docs-reindex.html https://www.elastic.co/guide/en/elasticsearch/reference/5.4/tasks.html 基本形式 POST _reindex { "source": { "index": ...
  • 上一篇说了对ES的index迁移的方式,这篇来讲一下具体怎么迁移 既然要迁移,那就得考量对已有业务的影响,为了避免对已有业务的影响,这里提供介绍一种方式,ES别名 _aliases 别名说起来很简单,就像一个代号,...
  • 迁移步骤 遇到的问题 1、创建仓库报错 {“error”:{“root_cause”:[{“type”:“repository_verification_exception”,“reason”:"[my_backup] [[mu3vPb-eTBeom4ElNsSeoQ, ‘RemoteTransportException[[node-1]...
  • Elasticsearch数据迁移及优化方案

    千次阅读 2018-12-14 15:24:43
    目前存储的剩余空间截止到4月4日的统计数字,大概有3T左右,也就是说还可以坚持1个多月的时间,因为当es存储占用接近90%时,将会出现尝试迁移数据的操作,但如果所有节点都超过90%,这种重试可能导致致命的后果,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,988
精华内容 7,595
关键字:

es数据迁移