zoukankan      html  css  js  c++  java
  • Elasticsearch数据迁移工具elasticdump工具

    1. 工具安装

    wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz
    
    tar xf node-v8.11.2-linux-x64.tar.xz 
    
    mv node-v8.11.2-linux-x64 /usr/local
    
    ln -s /usr/local/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm
    
    ln -s /usr/local/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node
    
    npm init -f
    
    npm install elasticdump
    
    # 因为我只用一次,所以这里没有安装到全局,需要到node_modules目录下才能找到 elasticdump , 我安装的位置如下:
    
    /usr/local/node-v8.11.2-linux-x64/node_modules/elasticdump/bin/elasticfump 

    2. 工具使用

    '#拷贝analyzer分词
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=http://staging.es.com:9200/my_index 
      --type=analyzer
    '#拷贝映射
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=http://staging.es.com:9200/my_index 
      --type=mapping
    '#拷贝数据
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=http://staging.es.com:9200/my_index 
      --type=data

    3. 注意事项

    3.1 

    # 注意 elasticdump 提供给了--httpAuthFile 参数来做认证
    --httpAuthFile      When using http auth provide credentials in ini file in form
                        `user=<username>
                        password=<password>`
    
    # 只需要写一个ini文件 ,文件中写入用户名和密码就可以了
    # 这里其实还有另外一个好的方法
    # 在--input参数和--output参数的的url中添加账号密码
    # 例如
    elasticdump 
      --input=http://prod-username:prod-passowrd@production.es.com:9200/my_index 
      --output=http://stage-username:stage-password@staging.es.com:9200/my_index 
      --type=data

    3.2 如果网络情况不好,或者没有网络还可以先备份到文件:

    # 备份索引数据到文件里:
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=/data/my_index_mapping.json 
      --type=mapping
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=/data/my_index.json 
      --type=data
    
    # 备份到标准输出,且进行压缩(这里有一个需要注意的地方,我查询索引信息有6.4G,用下面的方式备份后得到一个789M的压缩文件,这个压缩文件解压后有19G):
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=$ 
      | gzip > /data/my_index.json.gz
    
    # 把一个查询结果备份到文件中
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=query.json 
      --searchBody '{"query":{"term":{"username": "admin"}}}'
    # 将备份文件的数据导入ES
    elasticdump 
      --input=./data.json 
      --output=http://es.com:9200 
    elasticdump还是非常方便的,主要是可以指定查询条件,把查询结果进行备份。如果按照日期进行查询,那么就可以迁移指定之间段内的数据,
    
    
  • 相关阅读:
    【测试管理】如何简单的新增用例模块
    【自动化框架开发】node.js+selenium基于mac框架架设v1.0.1
    【自动化框架开发】node.js+selenium基于mac框架架设v1.0.0
    python--导入导出数据
    python爬虫--运用cookie模拟登录知乎
    python爬虫--连接数据库2
    python爬虫--模拟登录知乎
    python爬虫--连接数据库1
    python爬虫--储存本地
    python爬虫--解析网页几种方法之BeautifulSoup
  • 原文地址:https://www.cnblogs.com/sunfie/p/10165473.html
Copyright © 2011-2022 走看看