本文主要测试验证 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
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。 Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。 Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
详情参见:官方文档
最后修改时间:2023-06-19 19:37:17
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
SelectDB
127次阅读
2025-03-27 17:56:44
【第 8 期】搜索客 Meetup - Elasticsearch 的一些“双刃剑”特性
极限实验室
122次阅读
2025-03-15 16:56:54
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
SelectDB
105次阅读
2025-04-02 17:52:59
INFINI Labs 产品更新 - Coco AI – 增强 AI 搜索、API 管理与性能优化等
极限实验室
103次阅读
2025-03-18 13:41:29
INFINI Labs 产品更新 | Coco AI 0.3 发布 – 新增支持 Widget 外部站点集成
极限实验室
38次阅读
2025-04-07 23:19:57
Apache Doris vs Elasticsearch:深入对比分析
数据微光
35次阅读
2025-03-24 09:42:38
.kat6.l6st6r勒索病毒来袭:数据文件安全与恢复之道
91huifu.com
33次阅读
2025-03-21 21:15:02
使用 INFINI Gateway 保护 Elasticsearch 集群之修改查询不合理参数(二)
极限实验室
32次阅读
2025-03-17 23:49:01
.wex勒索病毒”全解析:了解这一网络威胁
91huifu.com
29次阅读
2025-03-15 19:27:18
Easysearch 磁盘水位线注意事项
极限实验室
29次阅读
2025-03-12 23:43:06