zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【ES三周年】线下es环境数据迁移至腾讯云ES实例实践

ES实例迁移腾讯数据 环境 实践 三周年
2023-06-13 09:18:22 时间

线下es迁移至腾讯云ES实践案例

1、首先我们先要准备好node环境,简便部署满足使用即可

1.1下载node应用包后在本地数据目录解压

# xz -d node-v10.16.3-linux-x64.tar.xz

cd /data;tar -xvf node-v10.16.3-linux-x64.tar

1.2配置本地环境变量##node

vi /etc/profile #将以下内容追加到profile内

export NODE_HOME=/data/node-v10.16.3-linux-x64

export PATH=$PATH:$NODE_HOME/bin

export NODE_PATH=$NODE_HOME/lib/node_modules

source /etc/profile ##生效配置

1.3检查环境情况

# node -v

v10.16.3

# npm -v

6.9.0

2、部署elasticsearch-dump工具环境

2.1解压elasticsearch-dump工具包

cd /data;tar -zxvf elasticsearch-dump-master-c7.tar.gz

cd /data/elasticsearch-dump-master

2.2确认elasticsearch-dump工具环境

# ./bin/elasticdump --version

6.14.1

3、准备导出本地es实例索引配置及数据

3.1 使用导出本地文件的方式,同时也可以使用网络实时的迁移方式,需要依赖两端网络互通

# ./bin/elasticdump --input=http://源esIP地址:9200 --output=/data/es_dump_settings.json --type=settings #导出配置信息

| starting dump

| got 1 objects from source elasticsearch (offset: 0)

| sent 1 objects to destination file, wrote 0

| got 0 objects from source elasticsearch (offset: 1)

| Total Writes: 0

| dump complete

# ./bin/elasticdump --input=http://源esIP地址:9200 --output=/data/es_dump_mapping.json --type=mapping #导出mapping信息

| starting dump

| got 1 objects from source elasticsearch (offset: 0)

| sent 1 objects to destination file, wrote 0

| got 0 objects from source elasticsearch (offset: 1)

| Total Writes: 0

| dump complete

# ./bin/elasticdump --input=http://源esIP地址:9200 --output=/data/es_dump_data.json --type=data #导出数据信息

| starting dump

3.3 网络实时的迁移方式,需要依赖两端网络互通,腾讯云es实例支持开通公网虚拟地址以便打通网络。

./bin/elasticdump --input=http://源esIP地址:9200/索引名--output=http://目的esIP地址:9200/索引名 --type=analyzer

./bin/elasticdump --input=http://源esIP地址:9200/索引名 --output=http://目的esIP地址:9200/索引名 --type=mapping

./bin/elasticdump --input=http://源esIP地址:9200/索引名 --output=http://目的esIP地址:9200/索引名 --type=alias

./bin/elasticdump --input=http://源esIP地址:9200/索引名 --output=http://目的esIP地址:9200/索引名 --type=data

3.4 带账号密码的数据迁移

elasticdump --input=http://username:password@192.168.1.2:9200/test --output=http://username@password@192.168.1.3:9200/test --type=内容类型

4、其他补充参考

----------------------------

# 备份

elasticdump --input=http://192.168.1.2:9200/test --output=/opt/esdump/test.json

# 支持星号匹配,以test开头的所有索引数据导出到test.json文件

elasticdump --input=http://192.168.1.2:9200/test* --output=/opt/esdump/test.json

# 还原

elasticdump --input=/opt/esdump/test.json --output=http://192.168.1.3:9200/test

# 还原,不需要指定索引自动插入

elasticdump --input=/opt/esdump/test.json --output=http://192.168.1.3:9200

# 迁移 加入limit限制每次更新的条数,加快更新时间

elasticdump --input=http://10.130:9200/rdms--limit=1000 --output=http:/localhost:9200/rdms

# 带账号密码的数据迁移

elasticdump --input=http://username:password@192.168.1.2:9200/test --output=http://username@password@192.168.1.3:9200/test

# 导出Mapping信息

elasticdump --ignore-errors=true --scrollTime=120m --bulk=true --input=http://10.10.20.164:9200/xmonitor-2015.04.29 --output=http://192.168.100.72:9200/xmonitor-prd-2015.04.29 --type=mapping

# 根据查询条件导出

nohup elasticdump --ignore-errors=true --scrollTime=120m --bulk=true --input=http://10.248.161.31:9200/ams_data --output=/usr/elasticsearch/output_datas_data_week0708_0714.json --type=data --searchBody '{"query":{"bool":{"must":{"range":{"created_at":{"from":"2017-07-08 00:00:00","to":"2017-07-14 23:59:59","format":"yyyy-MM-dd HH:mm:ss","include_lower":true,"include_upper":true}}}}}}' >/usr/elasticsearch/output_data/result5.log &