Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程

前言

如果希望将数据导出到本地文件而不是通过编程方式处理,可以考虑使用Elasticsearch的导出工具,如Elasticsearch Dump(Elasticdump)或Elasticsearch Exporter。这些工具可以将Elasticsearch索引中的数据导出为可用于后续处理的文件格式,如JSON或CSV,本文主要介绍使用Elasticsearch Dump进行索引数据导出的示例:

1 安装Node.js和npm

首先,确保主机已安装Node.js和npm,可以从Node.js官方网站(https://nodejs.org)下载并按照说明进行安装。

要判断当前系统是否已安装Node.js和npm,可以按照以下步骤进行:

  1. 打开终端或命令行界面。

  2. 在终端或命令行中输入以下命令来检查Node.js的版本:

    node -v
    
  3. 输入以下命令来检查npm的版本:

    npm -v
    

根据上述步骤的结果,可以判断当前系统是否已安装Node.js和npm。如果两者都已安装并且显示了版本号,则说明可以在系统上使用它们。如果没有安装或显示错误信息,则需要根据需要安装Node.js和npm。

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第1张图片

2. 安装Elasticsearch Dump

打开终端或命令行界面, 运行以下命令来全局安装Elasticsearch Dump:

  npm install elasticdump -g

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第2张图片

3. 使用Elasticsearch Dump导出索引结构

Elasticsearch Dump支持导出和导入索引的映射(mapping)和设置(settings)

3.1 导出索引设置

elasticdump --input=http://localhost:9200/my_index --output=/path/to/exported_settings.json --type=settings

这将导出"my_index"索引的设置,并保存到指定的JSON文件中。

示例:

elasticdump --input=http://192.168.0.221:11700/cnoa_data_1987051001 --output=E:/elatic_dump/cnoa_data_1987051001_settings.json --type=settings

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第3张图片

3.2 导出索引映射

elasticdump --input=http://localhost:9200/my_index --output=/path/to/exported_mapping.json --type=mapping

这将导出"my_index"索引的映射,并保存到指定的JSON文件中

示例:

elasticdump --input=http://192.168.0.221:11700/cnoa_data_1987051001 --output=E:/elatic_dump/cnoa_data_1987051001_mapping.json --type=mapping

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第4张图片

3.3 导入索引设置

elasticdump --input=/path/to/exported_settings.json --output=http://localhost:9200/new_index --type=settings

这将导入先前导出的设置数据到"new_index"索引中。

示例:

elasticdump --input=E:/elatic_dump/cnoa_data_1987051001_settings.json --output=http://localhost:9200/zhouquan_index --type=settings

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第5张图片
注意:此操作会创建新的es索引并设置settings
Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第6张图片

3.4 导入索引映射

elasticdump --input=/path/to/exported_mapping.json --output=http://localhost:9200/new_index --type=mapping

这将导入先前导出的映射数据到"new_index"索引中。

示例:

elasticdump --input=E:/elatic_dump/cnoa_data_1987051001_mapping.json --output=http://localhost:9200/zhouquan_index --type=mapping

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第7张图片

4. 使用Elasticsearch Dump导出数据

在终端或命令行界面中,可以使用以下命令导出Elasticsearch索引中的数据:

elasticdump --input=http://your_elasticsearch_host:9200/your_index_name --output=/path/to/output_file.json --type=data
  • your_elasticsearch_host 替换为实际的Elasticsearch主机地址。
  • your_index_name 替换为要导出的索引名称。
  • /path/to/output_file.json 替换为您想要保存导出数据的路径和文件名。
  • --type=data 参数指定导出类型为数据。您还可以选择导出其他类型,如--type=mapping(导出索引映射)或--type=settings(导出索引设置)。
  • 可以使用其他选项来进一步配置导出,如 --limit(限制导出的文档数量)或 --searchBody(指定自定义的搜索查询)。

运行命令后,Elasticsearch Dump将开始将数据从指定的索引导出到指定的文件中。导出的文件将采用JSON格式

示例:

elasticdump --input=http://192.168.0.1:8200/book --output=E:/elatic_dump/esdumptest.json --type=data

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第8张图片

5. 使用Elasticsearch Dump导入数据到另一个Elasticsearch实例

如果希望将导出的数据导入到另一个Elasticsearch实例,可以使用Elasticsearch Dump的--output参数来指定导入的目标。

elasticdump --input=/path/to/exported_file.json --output=http://new_elasticsearch_host:9200/new_index_name --type=data
  • /path/to/exported_file.json 替换为先前导出的文件路径和文件名。
  • new_elasticsearch_host 替换为目标Elasticsearch主机地址。
  • new_index_name 替换为目标索引名称。

示例:

elasticdump --input=E:/elatic_dump/esdumptest.json --output=http://localhost:9200/zhouquan_index --type=data

Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程_第9张图片


6. Elasticsearch的滚动搜索(Scroll API)

如果希望代码的方式读取所有数据
这个API允许在不受限制地从Elasticsearch中检索大量数据。它通过在每次请求中返回一小部分结果,并为您保持搜索上下文,以便在后续请求中继续滚动。可以使用滚动搜索将所有数据检索到本地,然后进行处理。此代码将从指定的索引中检索所有文档,并在每个文档上执行需要的操作

此操作可参考我之前写的文章:
Elasticsearch“滚动查询“(Scrolling)的机制的与Java使用ES Client 调用滚动查询

你可能感兴趣的:(Elasticsearch,elasticsearch,大数据,搜索引擎)