首页 > 其他分享 >使用 Easysearch 还原 Elasticsearch 快照数据

使用 Easysearch 还原 Elasticsearch 快照数据

时间:2023-06-17 13:55:05浏览次数:45  
标签:index 快照 Easysearch 别名 索引 Elasticsearch infini 1.0 true

本文主要验证 Elasticsearch 快照在 Easysearch 中进行数据恢复。

准备测试数据

索引

别名

模版

生命周期策略

创建快照

PUT /_snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "/infini/test/es_backup"
  }
}

PUT /_snapshot/my_backup/snapshot_1
{
  "indices": "*",
  "ignore_unavailable": false,
  "include_global_state": false
}

GET /_snapshot/my_backup/snapshot_1
  • ignore_unavailable:如果 indices 列表中的索引不存在,则是否忽略该索引而不是使快照失败。默认值为 false 。
  • include_global_state:是否在快照中包含集群状态(包括索引模版、生命周期配置、持久化配置等)。默认值为 true ,建议设为 false。

恢复快照

POST /_snapshot/my_backup/snapshot_1/_restore
{
  "indices": "*",
  "ignore_unavailable": false,
  "include_global_state": false,
  "include_aliases": true,
  "ignore_index_settings": [
    "index.lifecycle.indexing_complete"
  ]
}
  • ignore_unavailable:如果 indices 列表中的索引不存在,则是否忽略该索引而不是使还原操作失败。默认值为 false 。
  • include_global_state:是否还原群集状态。默认值为 false 。
  • include_aliases:是否恢复别名及其关联索引。默认值为 true 。
  • index.lifecycle.indexing_complete 配置不支持,忽略掉。

数据验证

索引

通过 gateway 进行数据比对

path.data: data
path.logs: log

#show progress bar
#progress_bar.enabled: true

elasticsearch:
  - name: source
    enabled: true
    endpoints:
      - http://192.168.3.185:29200
  - name: target
    enabled: true
    endpoints:
      - https://192.168.3.185:9205
    basic_auth:
      username: admin
      password: admin

pipeline:
  - name: index_diff_service
    auto_start: true
    processor:
      - dag:
          mode: wait_all
          parallel:
            - dump_hash: #dump es1's doc
                sort_document_fields: true
                indices: ".infini_activities-000004"   ##需要比对的索引名
                scroll_time: "10m"
                elasticsearch: "source"
                #              query_string: "_id:c8es70pu46lgfdgmja9g-1646117763293610802-2"
                #              fields: "doc_hash"
                output_queue: "source_docs"
                batch_size: 5000
                slice_size: 1
            #              hash_func: "xxhash64"
            - dump_hash: #dump es2's doc
                indices: ".infini_activities-000004"
                scroll_time: "10m"
                #              fields: "doc_hash"
                #              query_string: "_id:c8es70pu46lgfdgmja9g-1646117763293610802-2"
                batch_size: 5000
                slice_size: 1
                #              hash_func: "xxhash64"
                elasticsearch: "target"
                output_queue: "target_docs"
          end:
            - index_diff:
                diff_queue: "diff_result"
                buffer_size: 10
                text_report: true #如果要存 es,这个开关关闭,开启 pipeline 的 diff_result_ingest 任务
                source_queue: "source_docs"
                target_queue: "target_docs"
#pipeline:
#  - name: diff_result_ingest
#    processor:
#      - json_indexing:
#          index_name: "diff_result"
#          elasticsearch: "source"
#          input_queue: "diff_result"

./gateway-linux-amd64 -config data_check.yml

别名

模版

PUT _template/.infini_activities-rollover
{
  "order": 100000,
  "index_patterns": [
    ".infini_activities*"
  ],
  "settings": {
    "index": {
      "format": "7",
      "lifecycle": {
        "name": "ilm_.infini_metrics-30days-retention",
        "rollover_alias": ".infini_activities"
      },
      "codec": "best_compression",
      "number_of_shards": "1",
      "translog": {
        "durability": "async"
      }
    }
  },
  "mappings": {
    "dynamic_templates": [
      {
        "strings": {
          "mapping": {
            "ignore_above": 256,
            "type": "keyword"
          },
          "match_mapping_type": "string"
        }
      }
    ]
  },
  "aliases": {}
}

PUT _template/.infini
{
  "order": 0,
  "index_patterns": [
    ".infini_*"
  ],
  "settings": {
    "index": {
      "max_result_window": "10000000",
      "mapping": {
        "total_fields": {
          "limit": "20000"
        }
      },
      "analysis": {
        "analyzer": {
          "suggest_text_search": {
            "filter": [
              "word_delimiter"
            ],
            "tokenizer": "classic"
          }
        }
      },
      "number_of_shards": "1"
    }
  },
  "mappings": {
    "dynamic_templates": [
      {
        "strings": {
          "mapping": {
            "ignore_above": 256,
            "type": "keyword"
          },
          "match_mapping_type": "string"
        }
      }
    ]
  },
  "aliases": {}
}

生命周期策略

PUT _ilm/policy/ilm_.infini_metrics-30days-retention
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_size": "50gb",
            "max_age": "30d"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "delete": {
        "min_age": "30d",
        "actions": {
          "delete": {
          }
        }
      }
    }
  }
}

注:不支持 "delete_searchable_snapshot": true 配置

测试结果

源集群(Elasticsearch) 目标集群(Easysearch) 测试结果
7.10.2 1.0.0 索引文档一致,别名恢复成功
7.10.1 1.0.0 索引文档一致,别名恢复成功
7.10.0 1.0.0 索引文档一致,别名恢复成功
7.9.2 1.0.0 索引文档一致,别名恢复成功
7.9.0 1.0.0 索引文档一致,别名恢复成功
7.8.1 1.0.0 索引文档一致,别名恢复成功
7.5.2 1.0.0 索引文档一致,别名恢复成功
6.8.12 1.0.0 索引文档一致,别名恢复成功
6.5.4 1.0.0 索引文档一致,别名恢复成功

关于 Easysearch

about easysearch

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。 Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。 Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。

详情参见:官方文档

标签:index,快照,Easysearch,别名,索引,Elasticsearch,infini,1.0,true
From: https://www.cnblogs.com/infinilabs/p/17487402.html

相关文章

  • elasticsearch7.8.0部署
    elasticsearch7.8.0部署复制下载链接地址,并使用wget命令下载对应的压缩包。例如:wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz下载完成后,解压压缩包:tar-xzvfelasticsearch-7.8.0-linux-x86_64.tar.gz进入解压后......
  • elasticsearch的使用
    elasticsearch的使用索引管理1、创建索引对比关系型数据库,创建索引相当于创建数据库url:http:/ip:9200/test方式:PUT不允许重复put相同索引2、获取索引a、将请求方式改为get即获取当前索引信息url:ip:9200/test方式:GETb、获取所有索引信息url:ip:9200/_ca......
  • Elasticsearch专题精讲—— Aggregations —— Metrics aggregations(度量聚合)
    Aggregations——Metricsaggregations(度量聚合)https://www.elastic.co/guide/en/elasticsearch/reference/8.8/search-aggregations-metrics.html#search-aggregations-metricsTheaggregationsinthisfamilycomputemetricsbasedonvaluesextractedinone......
  • 安装elasticsearch集群开启认证
    ##节点:172.30.1.101172.30.1.131172.30.1.102##下载rpmwgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-x86_64.rpm#安装elasticsearch##设置环境rpm-ivhelasticsearch-7.12.0-x86_64.rpm##禁用swapswapoff-ased-ri's/......
  • elasticsearch
    0.简介https://www.elastic.co/cn/what-is/elasticsearch全文搜索属于最常见的需求,开源的Elasticsearch是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、StackOverflow、Github都采用它。Elastic的底层是开源库Lucene。但是,你没法直接用L......
  • Elasticsearch专题精讲—— Aggregations(聚合)
    Aggregations(聚合)https://www.elastic.co/guide/en/elasticsearch/reference/8.8/search-aggregations.html#search-aggregationsAnaggregationsummarizesyourdataasmetrics,statistics,orotheranalytics.Aggregationshelpyouanswerquestionsl......
  • Elasticsearch自签证书
    ****如果方式适合安装时没有配置及证书相关配置,而安装后进行的证书自签一、自签证书1、进入工作目录进入容器,bin目录下有生成证书的脚本,路径下文件展示如下(我这里是以docker容器部署的模式演示的)[root@363474ada611elasticsearch]#llbin/total19604-rwxr-xr-x.1......
  • Elasticsearch8 单机以及集群部署(docker-compose)
    本文以Elasticsearch8.8.0为例,介绍一下单机安装ES,使用docker-compose方式进行便捷管理需要准本docker环境:一键安装脚本 https://www.cnblogs.com/Alay/p/15433473.html需要准备docker-compose环境:一键安装脚本 https://www.cnblogs.com/Alay/p/15433907.html官网阅......
  • 对比 redis cluster 和 elasticsearch
    一.对比redis提供了redissentinal的高可用策略,以及rediscluster来支持扩展性(同时也支持高可用)。rediscluster,ealsticsearch都属于有状态数据存储服务,这里做一个简单的对比。特性redisclusterelasticsearch 备注主要设计目标在保证highperformance的条件下,提......
  • flume+elasticsearch
    简单描述一下这个例子:将项目日志实时采集到elasticsearch,便于统一管理。1.收集日志格式为:log4j.properties: org.apache.log4j.Logger: %d{ISO8601}[%l-%M]-[%p]%t%m%nlogback.xml:org.slf4j.Logger:  %date[%logger:%L]-[%level]%thread%msg%n2.flume1.7.0(flume......