【最佳实践】大数据时代,通过OSS快照迁移Elasticsearch数据

简介: 本文以将自建Elasticsearch迁移至阿里云Elasticsearch中为例,为您介绍通过OSS快照迁移数据的具体方法。

当您需要在Elasticsearch集群间迁移数据,或者需要恢复Elasticsearch中的数据时,可通过OSS快照的方式来实现。OSS快照方式的数据迁移,适用于数据量比较大的场景,简单流程如下。
在这里插入图片描述

本文以将自建Elasticsearch迁移至阿里云Elasticsearch中为例,为您介绍通过OSS快照迁移数据的具体方法。
阿里云Elasticsearch兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。支持5.5.3、6.3.2、6.7.0、6.8.0和7.4.0等版本,并提供了商业插件X-Pack服务。在开源Elasticsearch的基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。阿里云Elasticsearch为您提供1个月的免费试用活动,单击此处即可免费试用。
与开源Elasticsearch相比,阿里云Elasticsearch提供了高可用性高安全性等功能特性。并且提供Elasticsearch和Kibana的全托管服务,您可以按需付费,即买即用。在此基础上,还对内核性能进行了优化,提供独立的index build服务、存储计算分离、智能运维、达摩院分词器、商业插件等功能。

操作流程

  1. 准备工作

    完成搭建自建Elasticsearch集群、创建OSS Bucket、创建阿里云Elasticsearch集群。

  2. 步骤一:安装elasticsearch-repository-oss插件

    在自建Elasticsearch各节点中安装elasticsearch-repository-oss插件,插件安装后才可在自建Elasticsearch中创建OSS仓库。

  3. 步骤二:在自建Elasticsearch集群中创建仓库

    使用snapshot API在自建Elasticsearch中创建快照备份仓库。

  4. 步骤三:为指定索引创建快照

    为需要迁移的索引创建快照,并将快照备份到已创建的仓库中。

  5. 步骤四:在阿里云Elasticsearch上创建相同仓库

    在阿里云Elasticsearch的Kibana控制台中,使用snapshot API创建一个与自建Elasticsearch相同的快照备份仓库。

  6. 步骤五:在阿里云Elasticsearch上恢复快照

    将仓库中已备份的自建Elasticsearch的快照恢复到阿里云Elasticsearch中,完成数据迁移。

  7. 步骤六:查看快照恢复结果

    快照恢复后,查看恢复的索引和索引数据。

准备工作

  1. 准备自建Elasticsearch集群。

    如果您还没有自建Elasticsearch集群,建议您使用阿里云ECS进行搭建,具体操作步骤请参见安装并运行Elasticsearch

    本文以单节点的Elasticsearch集群为例进行演示,版本为6.7.0。实际生产中您可以购买多个相同专有网络VPC(Virtual Private Cloud)的ECS搭建Elasticsearch集群,购买ECS的具体步骤请参见使用向导创建实例

  2. 开通OSS服务,并创建与自建Elasticsearch所在ECS相同区域的Bucket。

    具体操作步骤请参见开通OSS服务创建存储空间

    说明: 请创建标准存储类型的OSS Bucket,不支持归档存储类型。

  3. 创建目标阿里云Elasticsearch实例,所选区域与您创建的Bucket相同。

    具体操作步骤请参见创建阿里云Elasticsearch实例

步骤一:安装elasticsearch-repository-oss插件

  1. 连接自建Elasticsearch集群所在的ECS。

    说明: 连接ECS的方式请参见连接Linux实例

  2. 下载elasticsearch-repository-oss插件。

    本文使用6.7.0版本的插件,要求JDK为11.0及以上版本。

    wget https://github.com/aliyun/elasticsearch-repository-oss/releases/download/v6.7.0/elasticsearch-repository-oss-6.7.0.zip
    
  3. 将安装包解压到自建Elasticsearch各节点安装路径的plugins目录下。

    unzip -d /home/elastic/app/elasticsearch-6.7.0/plugins elasticsearch-repository-oss-6.7.0.zip
    

    说明: 请将/home/app/elasticsearch-6.7.0替换为您自建Elasticsearch的安装路径。

  4. 修改插件的plugin-descriptor.properties文件中Elasticsearch集群的版本号,将其设置为当前Elasticsearch集群的版本。

    说明: 如果您使用的elasticsearch-repository-oss插件的版本与您自建Elasticsearch集群的版本相同,可忽略此步骤。

    使用以下命令打开plugin-descriptor.properties文件,将elasticsearch.version设置为当前Elasticsearch集群的版本。

    vim /home/elastic/app/elasticsearch-6.7.0/plugins/plugin-descriptor.properties
    

    在这里插入图片描述

  1. 启动自建Elasticsearch集群各节点。

    cd /home/app/elasticsearch-6.7.0/bin
    ./elasticsearch -d
    

    说明: 请将/home/app/elasticsearch-6.7.0替换为您自建Elasticsearch的安装路径。

步骤二:在自建Elasticsearch集群中创建仓库

连接自建Elasticsearch所在的ECS,执行如下命令创建仓库。

curl -H "Content-Type: application/json" -XPUT localhost:9200/_snapshot/es_backup -d' {"type": "oss", "settings": { "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",  "access_key_id": "your_accesskeyid",  "secret_access_key":"your_accesskeysecret", "bucket": "es-backup-es", "compress": true }}'
参数 说明
es_backup 仓库名称,可自定义。
type 仓库类型,请设置为oss
endpoint OSS Bucket的访问地址,请参见访问域名和数据中心获取。
说明: 如果自建Elasticsearch所在ECS与您的OSS在同一区域,请使用内网地址,否则请使用外网地址。
access_key_id 创建OSS Bucket的账号的AccessKey ID,获取方式请参见如何获取AccessKeyId和AccessKeySecret
secret_access_key 创建OSS Bucket的账号的AccessKey Secret,获取方式请参见如何获取AccessKeyId和AccessKeySecret
bucket 您创建的OSS Bucket名称。
compress 是否压缩。

创建成功后,返回"acknowledge":true

步骤三:为指定索引创建快照

在自建Elasticsearch中创建一个快照,用来备份您需要迁移的索引数据。创建快照时,默认会备份所有打开的索引。如果您不想备份系统索引,例如以.kibana、.security、.monitoring等开头的索引,可在快照时指定需要备份的索引。

注意: 建议您不要备份系统索引,因为系统索引会占用较大空间。

curl -H "Content-Type: application/json" -XPUT localhost:9200/_snapshot/es_backup/snapshot_1?pretty -d'
{
"indices": "index1,index2"
}'

index1index2为您需要备份的索引名称。快照创建成功后,返回"accepted" : true

步骤四:在阿里云Elasticsearch上创建相同仓库

  1. 登录阿里云Elasticsearch的Kibana控制台。

    登录控制台的具体步骤请参见[t615643.md#]

  2. 在左侧导航栏单击Dev Tools

  3. Console中执行以下命令,创建与自建Elasticsearch相同的仓库。

    PUT _snapshot/es_backup
    {
        "type": "oss",
        "settings": {
            "endpoint": "oss-cn-hangzhou-internal.aliyuncs.com",
            "access_key_id": "your_accesskeyid",
            "secret_access_key": "your_accesskeysecret",
            "bucket": "es-backup-es",
            "compress": true
        }
    }
    

步骤五:在阿里云Elasticsearch上恢复快照

参见步骤四:在阿里云Elasticsearch上创建相同仓库,在Kibana控制台上执行以下命令,恢复快照中的所有索引(除过.开头的系统索引)。

POST _snapshot/es_backup/snapshot_1/_restore
{"indices":"*,-.monitoring*,-.security_audit*","ignore_unavailable":"true"}

命令执行成功,返回"accepted" : true

以上命令会恢复快照中的所有索引,您也可以选择需要恢复的索引。同时如果阿里云Elasticsearch集群中有同名索引,而您想在不替换现有数据的前提下,恢复旧数据来验证内容,或者处理其他任务,可在恢复过程中重命名索引。

POST _snapshot/es_backup/snapshot_1/_restore
{
  "indices":"index1",
  "rename_pattern": "index(.+)",
  "rename_replacement": "restored_index_$1"
}

说明: 更多快照和恢复命令请参见快照备份与恢复命令

步骤六:查看快照恢复结果

参见步骤四:在阿里云ES上创建相同仓库,在Kibana控制台上执行以下命令,查看恢复结果。

  • 查看恢复的索引

    GET /_cat/indices?v
    

    在这里插入图片描述

  • 查看恢复的索引数据

    GET /index1/_search
    

    执行成功后,返回结果如下。

    {
      "took" : 2,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 1,
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "index1",
            "_type" : "_doc",
            "_id" : "1",
            "_score" : 1.0,
            "_source" : {
              "productName" : "testpro",
              "annual_rate" : "3.22%",
              "describe" : "testpro"
            }
          }
        ]
      }
    }
    

相关活动

更多折扣活动,请访问阿里云 Elasticsearch 官网

阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费

image.png
image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
271 92
|
23天前
|
SQL 分布式计算 数据挖掘
从湖仓分离到湖仓一体,四川航空基于 SelectDB 的多源数据联邦分析实践
川航选择引入 SelectDB 建设湖仓一体大数据分析引擎,取得了数据导入效率提升 3-6 倍,查询分析性能提升 10-18 倍、实时性提升至 5 秒内等收益。
从湖仓分离到湖仓一体,四川航空基于 SelectDB 的多源数据联邦分析实践
|
6天前
|
传感器 机器学习/深度学习 人工智能
数据让农业更聪明——用大数据激活田间地头
数据让农业更聪明——用大数据激活田间地头
22 2
|
27天前
|
人工智能 算法 大数据
数据的“潘多拉魔盒”:大数据伦理的深度思考
数据的“潘多拉魔盒”:大数据伦理的深度思考
68 25
|
20天前
|
存储 消息中间件 运维
AutoMQ x OSS 的 Iceberg 数据入湖的最佳实践
本文将从三个维度展开论述:首先分析 Iceberg 的技术优势及其成为行业标准的原因,其次详细阐述数据入湖的最佳实践方法,最后重点介绍 AutoMQ 如何利用阿里云 OSS 高效解决 Kafka 数据入湖问题。通过 AutoMQ 和阿里云服务的结合,用户可以轻松实现 Kafka 数据入湖的最佳实践。
132 15
|
1月前
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
2月前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
24天前
|
存储 Ubuntu 数据管理
使用s3cmd 2.x 与 Cyberduck 管理在 DigitalOcean Spaces 对象存储中的数据
通过 `s3cmd` 2.x 和 Cyberduck,你可以轻松管理 DigitalOcean Spaces 中的数据。`s3cmd` 提供了强大的命令行操作能力,适合脚本化和自动化任务,而 Cyberduck 提供了直观的图形界面,便于日常手动操作。掌握这两种工具的使用方法,将极大提高你的数据管理效率。希望本文能帮助你更好地使用 DigitalOcean Spaces。
25 7
|
19天前
|
存储 消息中间件 Kafka
AutoMQ x OSS 的 Iceberg 数据入湖的最佳实践
在数据湖技术生态中,Apache Iceberg凭借其开放性设计已确立事实标准地位。该技术不仅获得全球企业广泛采用,还构建了包含Apache Spark、Amazon Athena、Presto等主流计算引擎的完整生态系统。
|
1月前
|
存储 分布式计算 大数据
大数据与云计算:无缝结合,开启数据新纪元
大数据与云计算:无缝结合,开启数据新纪元
172 11

热门文章

最新文章

相关产品

  • 检索分析服务 Elasticsearch版