本文主要驗證 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 更關注在搜索業務場景的優化和繼續保持其產品的簡潔與易用性,
詳情參見:官方檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/555482.html
標籤:其他
上一篇:使用 Easysearch 還原 Elasticsearch 快照資料
下一篇:返回列表
