网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
source ~/.bashrc
#### 四、使用elasticdump
这里的使用主要分为两种,一种是数据备份,一种是数据迁移
1. 备份主要指的是生成备份的数据文件,在需要的时候进行还原
2. 数据迁移是指将原来索引里的数据迁移到新的索引
>
> 其实数据备份也能达到数据迁移的目的,但是在两个环境的网络不通的时候我们只能使用数据备份
>
>
>
我们安装成功后,在elasticdump的bin目录下其实有两个工具,一个是`elasticdump` 另外一个是`multielasticdump`
![image-20230714090711434](https://img-blog.csdnimg.cn/img_convert/d897fa016a4f363b08672818c6f83719.png)
##### 数据迁移
迁移索引
elasticdump
–input=http://192.168.1.140:9200/source_index
–output=http://192.168.1.141:9200/target_index
–type=mapping
迁移数据
elasticdump
–input=http://192.168.1.140:9200/source_index
–output=http://192.168.1.141:9200/target_index
–type=data
–limit=2000 # 每次操作的objects数量,默认100,数据量大的话,可以调大加快迁移速度
这个命令会将源 Elasticsearch 实例中的 “my\_index” 索引的所有数据导出,并保存到 “/path/to/output.json” 的 JSON 文件中。
* `--input`:指定输入的 Elasticsearch 实例和索引。可以是一个 URL,也可以是本地 Elasticsearch 实例的路径。
* `--output`:指定输出的文件路径,数据将保存为一个 JSON 文件。
* `--type`:指定要导出的数据类型,通常为 “data” 表示文档数据。
你还可以使用其他选项来进一步控制导出过程,如 `--query`, `--size`, `--limit`, `--filter` 等,具体取决于你的需求。可以通过运行 `elasticdump --help` 命令来
##### 数据备份
导出索引和数据
elasticdump
–input=http://192.168.1.140:9200/source_index
–output=/data/source_index_mapping.json
–type=mapping
elasticdump
–input=http://192.168.1.140:9200/source_index
–output=/data/source_index.json
–type=data
–limit=2000
导入索引和数据
elasticdump
–input=/data/source_index_mapping.json
–output=http://192.168.1.141:9200/source_index
–type=mapping
elasticdump
–input=/data/source_index.json
–output=http://192.168.1.141:9200/source_index
–type=data
–limit=2000
##### 其他用法
还有其他使用的细节,例如压缩,指定query 什么的,我们可以参考下面的例子
Copy an index from production to staging with analyzer and mapping:
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
Backup index data to a file:
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
Backup and index to a gzip using stdout:
elasticdump
–input=http://production.es.com:9200/my_index
–output=$
| gzip > /data/my_index.json.gz
Backup the results of a query to a file
elasticdump
–input=http://production.es.com:9200/my_index
–output=query.json
–searchBody=“{“query”:{“term”:{“username”: “admin”}}}”
Specify searchBody from a file
elasticdump
–input=http://production.es.com:9200/my_index
–output=query.json
–searchBody=@/data/searchbody.json
Copy a single shard data:
elasticdump
–input=http://es.com:9200/api
–output=http://es.com:9200/api2
–input-params=“{“preference”:”_shards:0"}"
Backup aliases to a file
elasticdump
–input=http://es.com:9200/index-name/alias-filter
–output=alias.json
–type=alias
Import aliases into ES
elasticdump
–input=./alias.json
–output=http://es.com:9200
–type=alias
Backup templates to a file
elasticdump
–input=http://es.com:9200/template-filter
–output=templates.json
–type=template
Import templates into ES
elasticdump
–input=./templates.json
–output=http://es.com:9200
–type=template
Split files into multiple parts
elasticdump
–input=http://production.es.com:9200/my_index
–output=/data/my_index.json
–fileSize=10mb
Import data from S3 into ES (using s3urls)
elasticdump
–s3AccessKeyId “
a
c
c
e
s
s
_
k
e
y
_
i
d
"
−
−
s
3
S
e
c
r
e
t
A
c
c
e
s
s
K
e
y
"
{access\_key\_id}" \ --s3SecretAccessKey "
access_key_id" −−s3SecretAccessKey"{access_key_secret}”
–input “s3://
b
u
c
k
e
t
_
n
a
m
e
/
{bucket\_name}/
bucket_name/{file_name}.json”
–output=http://production.es.com:9200/my_index
Export ES data to S3 (using s3urls)
elasticdump
–s3AccessKeyId “
a
c
c
e
s
s
_
k
e
y
_
i
d
"
−
−
s
3
S
e
c
r
e
t
A
c
c
e
s
s
K
e
y
"
{access\_key\_id}" \ --s3SecretAccessKey "
access_key_id" −−s3SecretAccessKey"{access_key_secret}”
–input=http://production.es.com:9200/my_index
–output “s3://
b
u
c
k
e
t
_
n
a
m
e
/
{bucket\_name}/
bucket_name/{file_name}.json”
Import data from MINIO (s3 compatible) into ES (using s3urls)
elasticdump
–s3AccessKeyId “
a
c
c
e
s
s
_
k
e
y
_
i
d
"
−
−
s
3
S
e
c
r
e
t
A
c
c
e
s
s
K
e
y
"
{access\_key\_id}" \ --s3SecretAccessKey "
access_key_id" −−s3SecretAccessKey"{access_key_secret}”
–input “s3://
b
u
c
k
e
t
_
n
a
m
e
/
{bucket\_name}/
bucket_name/{file_name}.json”
–output=http://production.es.com:9200/my_index
–s3ForcePathStyle true
–s3Endpoint https://production.minio.co
Export ES data to MINIO (s3 compatible) (using s3urls)
elasticdump
–s3AccessKeyId “
a
c
c
e
s
s
_
k
e
y
_
i
d
"
−
−
s
3
S
e
c
r
e
t
A
c
c
e
s
s
K
e
y
"
{access\_key\_id}" \ --s3SecretAccessKey "
access_key_id" −−s3SecretAccessKey"{access_key_secret}”
–input=http://production.es.com:9200/my_index
–output “s3://
b
u
c
k
e
t
_
n
a
m
e
/
{bucket\_name}/
bucket_name/{file_name}.json”
–s3ForcePathStyle true
–s3Endpoint https://production.minio.co
Import data from CSV file into ES (using csvurls)
elasticdump \
csv:// prefix must be included to allow parsing of csv files
–input “csv://${file_path}.csv” \
–input “csv:///data/cars.csv”
–output=http://production.es.com:9200/my_index
–csvSkipRows 1 # used to skip parsed rows (this does not include the headers row)
–csvDelimiter “;” # default csvDelimiter is ‘,’
常用参数
–direction dump/load 导出/导入
–ignoreType 被忽略的类型,data,mapping,analyzer,alias,settings,template
–includeType 包含的类型,data,mapping,analyzer,alias,settings,template
–suffix 加前缀,es6-
i
n
d
e
x
−
−
p
r
e
f
i
x
加后缀,
{index} --prefix 加后缀,
index−−prefix加后缀,{index}-backup-2018-03-13
### 总结
![img](https://img-blog.csdnimg.cn/img_convert/e7b48564576ecfb136bfb3a58ccba898.png)
![img](https://img-blog.csdnimg.cn/img_convert/fdba68857cf2b49aced80d9bf1aa3d41.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
543427)]
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**