Easysearch 跨版本兼容性測試战授,還原 Elasticsearch 各版本快照數(shù)據(jù)

本文主要測試驗證 Elasticsearch 各版本快照在 Easysearch 中進(jìn)行數(shù)據(jù)恢復(fù)。

準(zhǔn)備測試數(shù)據(jù)

索引

別名

模版

生命周期策略

創(chuàng)建快照

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 列表中的索引不存在躺屁,則是否忽略該索引而不是使快照失敗冤今。默認(rèn)值為 false 。
  • include_global_state:是否在快照中包含集群狀態(tài)(包括索引模版桥状、生命周期配置帽揪、持久化配置等)。默認(rèn)值為 true 辅斟,建議設(shè)為 false转晰。

恢復(fù)快照

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 列表中的索引不存在,則是否忽略該索引而不是使還原操作失敗。默認(rèn)值為 false 查邢。
  • include_global_state:是否還原群集狀態(tài)蔗崎。默認(rèn)值為 false 。
  • include_aliases:是否恢復(fù)別名及其關(guān)聯(lián)索引扰藕。默認(rèn)值為 true 缓苛。
  • index.lifecycle.indexing_complete 配置不支持,忽略掉邓深。

數(shù)據(jù)驗證

索引

通過 gateway 進(jìn)行數(shù)據(jù)比對

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未桥,這個開關(guān)關(guān)閉,開啟 pipeline 的 diff_result_ingest 任務(wù)
                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 配置

測試結(jié)果

源集群(Elasticsearch) 目標(biāo)集群(Easysearch) 測試結(jié)果
7.10.2 1.0.0 索引文檔一致芥备,別名恢復(fù)成功
7.10.1 1.0.0 索引文檔一致冬耿,別名恢復(fù)成功
7.10.0 1.0.0 索引文檔一致,別名恢復(fù)成功
7.9.2 1.0.0 索引文檔一致门躯,別名恢復(fù)成功
7.9.0 1.0.0 索引文檔一致淆党,別名恢復(fù)成功
7.8.1 1.0.0 索引文檔一致,別名恢復(fù)成功
7.5.2 1.0.0 索引文檔一致讶凉,別名恢復(fù)成功
6.8.12 1.0.0 索引文檔一致,別名恢復(fù)成功
6.5.4 1.0.0 索引文檔一致山孔,別名恢復(fù)成功

關(guān)于 Easysearch

about easysearch

INFINI Easysearch 是一個分布式的近實時搜索與分析引擎懂讯,核心引擎基于開源的 Apache Lucene。 Easysearch 衍生自基于開源協(xié)議 Apache 2.0 的 Elasticsearch 7.10 版本台颠。 Easysearch 的目標(biāo)是提供一個輕量級的 Elasticsearch 可替代版本褐望,并繼續(xù)完善和支持更多的企業(yè)級功能。 與 Elasticsearch 相比串前,Easysearch 更關(guān)注在搜索業(yè)務(wù)場景的優(yōu)化和繼續(xù)保持其產(chǎn)品的簡潔與易用性瘫里。

詳情參見:官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荡碾,隨后出現(xiàn)的幾起案子谨读,更是在濱河造成了極大的恐慌,老刑警劉巖坛吁,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劳殖,死亡現(xiàn)場離奇詭異,居然都是意外死亡拨脉,警方通過查閱死者的電腦和手機哆姻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玫膀,“玉大人矛缨,你說我怎么就攤上這事。” “怎么了箕昭?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵誉简,是天一觀的道長。 經(jīng)常有香客問我盟广,道長闷串,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任筋量,我火速辦了婚禮烹吵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘桨武。我一直安慰自己肋拔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布呀酸。 她就那樣靜靜地躺著凉蜂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪性誉。 梳的紋絲不亂的頭發(fā)上窿吩,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音错览,去河邊找鬼纫雁。 笑死,一個胖子當(dāng)著我的面吹牛倾哺,可吹牛的內(nèi)容都是我干的轧邪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼羞海,長吁一口氣:“原來是場噩夢啊……” “哼忌愚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起却邓,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤硕糊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后申尤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體癌幕,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年昧穿,在試婚紗的時候發(fā)現(xiàn)自己被綠了勺远。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡时鸵,死狀恐怖胶逢,靈堂內(nèi)的尸體忽然破棺而出厅瞎,到底是詐尸還是另有隱情,我是刑警寧澤初坠,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布和簸,位于F島的核電站,受9級特大地震影響碟刺,放射性物質(zhì)發(fā)生泄漏锁保。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一半沽、第九天 我趴在偏房一處隱蔽的房頂上張望爽柒。 院中可真熱鬧,春花似錦者填、人聲如沸浩村。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽心墅。三九已至,卻和暖如春榨乎,著一層夾襖步出監(jiān)牢的瞬間怎燥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工谬哀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刺覆,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓史煎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驳糯。 傳聞我的和親對象是個殘疾皇子篇梭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容