0、可搜索快照認(rèn)知前提Elasticsearch 可搜索快照是 7.10 版本才有的新功能,之前呼聲非常高。 Elastic 官方網(wǎng)站用一整頁(yè)面介紹,可見(jiàn)對(duì)該功能的重視。 https://www./cn/elasticsearch/elasticsearch-searchable-snapshots 但,有個(gè)細(xì)節(jié)要跟大家強(qiáng)調(diào):該功能是企業(yè)版本才有的收費(fèi)功能,黃金版、白金版、基礎(chǔ)免費(fèi)開(kāi)源版本都不具備該功能。 本文的相關(guān)實(shí)戰(zhàn)驗(yàn)證,是基于 30 天試用版本做的驗(yàn)證。 1、什么是可搜索快照?講可搜索快照的定義前,先說(shuō)一下大數(shù)據(jù)的存儲(chǔ)。 對(duì)于小微企業(yè)來(lái)講,硬件成本是產(chǎn)品、項(xiàng)目環(huán)節(jié)非常重要的考量因素。數(shù)據(jù)量的激增和項(xiàng)目的經(jīng)費(fèi)之間本來(lái)就是相生相克、相愛(ài)相殺的關(guān)系。 一方面:老板要控制成本的前提下滿(mǎn)足甲方的功能需求、性能需求且追求利潤(rùn)最大化。 另一方面:開(kāi)發(fā)人員為滿(mǎn)足性能指標(biāo)最大程度的優(yōu)化,多少會(huì)涉及提升硬件資源配置的需求,比如:換 SSD 磁盤(pán)、加內(nèi)存或更換CPU。
當(dāng)聽(tīng)說(shuō)字節(jié)跳動(dòng)線(xiàn)上環(huán)境:最小 256 GB內(nèi)存,多數(shù)都是 1TB 內(nèi)存的時(shí)候,除了羨慕還是羨慕。 然后,說(shuō)一下用戶(hù)的關(guān)注點(diǎn)。 拿大數(shù)據(jù)輿情場(chǎng)景,當(dāng)前(此刻為:20210731)用戶(hù)關(guān)注的肯定是時(shí)下最熱新聞數(shù)據(jù):奧運(yùn)會(huì)。一年前的熱點(diǎn):“馬老師,很快啊,不講武德等”即便當(dāng)時(shí)家喻戶(hù)曉、婦孺皆知,現(xiàn)在看早已“打入冷宮”、“灰飛煙滅”,沒(méi)有了任何熱度可言。
熱數(shù)據(jù)、冷數(shù)據(jù)都要保存怎么辦? 一方面:要有足夠的磁盤(pán)資源,數(shù)百TB甚至PB級(jí)別磁盤(pán)。只有超大規(guī)模的企業(yè)才有如此財(cái)力和資源。 另一方面:劃分冷熱集群架構(gòu),讓高配硬件資源(如:SSD磁盤(pán))用到刀刃(如:熱點(diǎn)數(shù)據(jù))上,冷數(shù)據(jù)或者低頻數(shù)據(jù)考慮存儲(chǔ)到:NFS 磁盤(pán)陣列或者云廠(chǎng)商的OSS。 快照:是繼副本后保證集群數(shù)據(jù)高可用的利器。一般高可用的場(chǎng)景:除了副本至少設(shè)置為1,還要定期設(shè)置增量快照 snapshot。 設(shè)置快照的好處就在于:當(dāng)集群故障時(shí),即便數(shù)據(jù)丟失,也能通過(guò)快照的方式及時(shí)恢復(fù)。 我們?cè)谔摂M機(jī)集群 VSphere 中鼓弄虛擬機(jī),一般都在適當(dāng)?shù)臅r(shí)機(jī)設(shè)置快照,這和 Elasticsearch 的增量快照是一樣的道理。 線(xiàn)上環(huán)境不出問(wèn)題一般都相安無(wú)事,一般出現(xiàn)問(wèn)題多半都和數(shù)據(jù)有關(guān)系,有了快照至少多了一份保障,運(yùn)維人員會(huì)多一份心安。 但是,早期的快照就是“死數(shù)據(jù)”,是不支持搜索的,但這種使用頻次非常低的數(shù)據(jù)也是有搜索需求的。 傳統(tǒng)做法可能是:將很久之前的“冷”數(shù)據(jù)以快照方式存儲(chǔ)(副本設(shè)置為0,節(jié)約存儲(chǔ)),當(dāng)需要檢索的時(shí)候,再由快照恢復(fù)到索引,實(shí)現(xiàn)檢索。 勢(shì)必,這會(huì)有較長(zhǎng)的時(shí)間成本。 可搜索快照就在此大背景下應(yīng)運(yùn)而生的。 可搜索快照是指使用快照以極具成本效益的方式搜索不常訪(fǎng)問(wèn)的只讀數(shù)據(jù)。冷數(shù)據(jù)層和凍結(jié)數(shù)據(jù)層( cold and frozen data tiers )使用可搜索的快照來(lái)降低存儲(chǔ)和運(yùn)營(yíng)成本。 可搜索快照消除了對(duì)副本分片的需求(副本默認(rèn)設(shè)置為0),會(huì)將搜索數(shù)據(jù)所需的本地存儲(chǔ)減半??伤阉骺煺找蕾?lài)于已用于備份的相同快照機(jī)制,并保障對(duì)快照存儲(chǔ)庫(kù)存儲(chǔ)成本的影響最小。 關(guān)于快照,如果您感覺(jué)不大熟悉或者沒(méi)有用過(guò),推薦閱讀: 干貨 | Elasitcsearch7.X集群/索引備份與恢復(fù)實(shí)戰(zhàn) 2、可搜索快照適用場(chǎng)景可搜索快照非常適合管理大量歷史歸檔數(shù)據(jù)。 歷史信息的搜索頻率通常低于最近的數(shù)據(jù),因此可能不需要副本以獲得性能優(yōu)勢(shì)。 對(duì)于更復(fù)雜或耗時(shí)的搜索,你可以將異步搜索與可搜索快照結(jié)合使用。 異步搜索推薦: https://www./guide/en/elasticsearch/reference/current/async-search.html 3、可搜索快照的特點(diǎn)以下三條內(nèi)容來(lái)自官網(wǎng)文檔,為了保證原汁原味,我沒(méi)有任何刪減。3.1、3.2、3.3 要連起來(lái)讀完才能更好的理解可搜索快照的設(shè)計(jì)初衷和特點(diǎn)。 https://www./cn/elasticsearch/elasticsearch-searchable-snapshots 3.1 平衡存儲(chǔ)成本時(shí)序數(shù)據(jù)以指數(shù)速度增長(zhǎng)。而且,隨著數(shù)據(jù)對(duì)您的業(yè)務(wù)和運(yùn)營(yíng)方式的影響越來(lái)越大,存儲(chǔ)和搜索所有數(shù)據(jù)的成本可能會(huì)非常高。 數(shù)據(jù)層是一種集成的自動(dòng)化數(shù)據(jù)生命周期管理方法,它可以幫助您平衡存儲(chǔ)成本。 3.2 管理數(shù)據(jù)生命周期Elasticsearch 中的重要數(shù)據(jù)存儲(chǔ)在熱層中,用于快速搜索查詢(xún)。隨著數(shù)據(jù)越來(lái)越舊,它們變得不再重要,并且搜索的頻率也降低了,這些數(shù)據(jù)會(huì)被移動(dòng)到由較低成本、較低性能的計(jì)算和存儲(chǔ)節(jié)點(diǎn)組成的溫層。 '’當(dāng)數(shù)據(jù)變得不太重要且為只讀時(shí),會(huì)以快照形式將它們存儲(chǔ)在對(duì)象存儲(chǔ)(如 S3)中。但是,要搜索這類(lèi)數(shù)據(jù),需要進(jìn)行恢復(fù),無(wú)法立即進(jìn)行搜索。 3.3 跳過(guò)手動(dòng)恢復(fù)引入可搜索快照這一功能為 S3 和其他對(duì)象存儲(chǔ)帶來(lái)全新的生命力:允許您直接搜索存儲(chǔ)在快照中的數(shù)據(jù)。 在冷層利用可搜索快照,您可以進(jìn)一步降低多達(dá)一半的存儲(chǔ)成本,同時(shí)兼顧搜索性能。 這是通過(guò)將用于獲得彈性的數(shù)據(jù)與用于搜索的數(shù)據(jù)分開(kāi)存儲(chǔ)來(lái)實(shí)現(xiàn)的,從而使您能夠平衡存儲(chǔ)成本和性能以滿(mǎn)足您的需求。 4、可搜索快照實(shí)戰(zhàn)介紹兩種實(shí)現(xiàn)方式:手動(dòng)掛載快照、ILM(索引生命周期管理)可搜索快照。 手動(dòng)是基礎(chǔ),理解了手動(dòng),再理解 ILM 自動(dòng)管理可搜索快照會(huì)很容易。 4.1 手動(dòng)掛載快照4.1.1 步驟1:配置快照存儲(chǔ)路徑及注冊(cè)快照存儲(chǔ)庫(kù)在elasticsearch中添加如下配置: "path.repo: "/www/elasticsearch_0713/elasticsearch-7.13.0/backup"注冊(cè)快照存儲(chǔ)庫(kù)(即設(shè)置存儲(chǔ)路徑) PUT /_snapshot/my_repository4.1.2 步驟2:為指定索引創(chuàng)建/拍攝快照PUT my_docs/_doc/1前兩步中規(guī)中矩,都是之前創(chuàng)建非可搜索快照的套路。 也就是說(shuō):在沒(méi)有可搜索快照之前,要?jiǎng)?chuàng)建快照也得這么干。 4.1.3 步驟3:將快照掛載為可搜索的快照索引這一步我們之前沒(méi)有見(jiàn)過(guò),這一步就是可搜索快照最為核心的地方。 重中之重:要搜索快照,必須首先將其作為索引掛載到本地。 通常 ILM 會(huì)自動(dòng)執(zhí)行此操作,手動(dòng)創(chuàng)建可搜索快照需要自己調(diào)用掛載快照 API(這點(diǎn)很重要,后面還會(huì)強(qiáng)調(diào)一次)。 POST /_snapshot/my_repository/snapshot_docs_index/_mount?wait_for_completion=true挨個(gè)參數(shù)解讀一下:
執(zhí)行結(jié)束,結(jié)果如下: {這里的 my_docs 是快照里面的索引,不是外層的索引,也就是說(shuō):把 my_docs 索引(非快照里)刪除,上面的掛載操作照樣可以運(yùn)行。 4.1.4 步驟4:掛載完畢后,執(zhí)行快照搜索GET docs/_search4.2 基于 ILM 索引生命周期管理實(shí)現(xiàn)自動(dòng)掛載快照以下實(shí)戰(zhàn)演練基于3節(jié)點(diǎn) 7.13.0 版本集群。 參見(jiàn):https://www./guide/en/elasticsearch/reference/7.x/ilm-searchable-snapshot.html 4.2.1 步驟1:注冊(cè)快照存儲(chǔ)庫(kù)(即設(shè)置存儲(chǔ)路徑)如下:在elasticsearch.yml 文件中配置。 PUT /_snapshot/my_repository4.2.2 步驟2:設(shè)置ilm policy測(cè)試需要,刷新值調(diào)的很小,實(shí)戰(zhàn)環(huán)境以需求為準(zhǔn)。4.2.3 步驟3:創(chuàng)建模板,關(guān)聯(lián)配置的ilm_policy4.2.4 步驟4:創(chuàng)建起始索引(便于滾動(dòng))PUT timeseries-0000014.2.5:批量插入數(shù)據(jù),驗(yàn)證滾動(dòng)和可搜索快照。PUT timeseries/_bulk剛執(zhí)行hot后的索引狀態(tài): 執(zhí)行完warm后: 執(zhí)行cold后的索引狀態(tài): cold 階段:原來(lái)的timeseries-000001不再存在,形成可搜索快照。索引名稱(chēng)前面加了前綴:restored-*,之前的索引名稱(chēng)變成了別名。 相比于手動(dòng)實(shí)現(xiàn),不需要人為實(shí)現(xiàn)掛載環(huán)節(jié),ILM自動(dòng)后臺(tái)實(shí)現(xiàn)。 這點(diǎn),官方文檔也有強(qiáng)調(diào):“Usually ILM will do this automatically, but you can also call the mount snapshot API yourself. ”。 到了這一步,下面就可以對(duì)可搜索快照進(jìn)行檢索了: # 基于可搜索快照索引檢索5、可搜索快照的工作原理當(dāng)從快照掛載索引時(shí),Elasticsearch 將其分片分配給集群內(nèi)的數(shù)據(jù)節(jié)點(diǎn)。然后,數(shù)據(jù)節(jié)點(diǎn)根據(jù)指定的掛載選項(xiàng)自動(dòng)從存儲(chǔ)庫(kù)檢索相關(guān)分片數(shù)據(jù)到本地存儲(chǔ)。如果可能,搜索使用本地存儲(chǔ)中的數(shù)據(jù)。如果數(shù)據(jù)在本地不可用,Elasticsearch 會(huì)從快照存儲(chǔ)庫(kù)找它需要的數(shù)據(jù)。 如果持有這些分片之一的節(jié)點(diǎn)出現(xiàn)故障,Elasticsearch 會(huì)自動(dòng)將受影響的分片分配到另一個(gè)節(jié)點(diǎn)上,并且該節(jié)點(diǎn)從存儲(chǔ)庫(kù)中恢復(fù)相關(guān)的分片數(shù)據(jù)。不需要副本,也不需要復(fù)雜的監(jiān)控或處理來(lái)恢復(fù)丟失的分片。 盡管默認(rèn)情況下可搜索快照索引沒(méi)有副本,但仍可以通過(guò)調(diào)整 index.number_of_replicas 將副本添加到這些索引中??伤阉骺煺辗制母北就ㄟ^(guò)從快照存儲(chǔ)庫(kù)復(fù)制數(shù)據(jù)來(lái)恢復(fù),就像可搜索快照分片的主分片一樣。相比之下,常規(guī)索引的副本是通過(guò)從主數(shù)據(jù)庫(kù)復(fù)制數(shù)據(jù)來(lái)恢復(fù)的。 6、可搜索快照常見(jiàn)問(wèn)題?6.1 如何區(qū)分正常索引和可搜索快照索引
6.2 除了掛載,還有哪些靠譜API?
GET /_searchable_snapshots/cache/stats
GET /_searchable_snapshots/stats
POST /_searchable_snapshots/cache/clear7、小結(jié)實(shí)戰(zhàn)出真知。本文講解了可搜索快照的產(chǎn)生背景、定義、適用場(chǎng)景、特點(diǎn)、工作原理、兩種方式實(shí)戰(zhàn)演練以及常見(jiàn)問(wèn)題與解答,但這些都是可搜索快照基礎(chǔ)內(nèi)容的冰山一角。 可搜索快照還有很多細(xì)節(jié)問(wèn)題待實(shí)戰(zhàn)驗(yàn)證、討論。 歡迎大家就可搜索快照問(wèn)題留言交流。 8、參考https://www./guide/en/elasticsearch/reference/master/searchable-snapshots-apis.html https://www./guide/en/elasticsearch/reference/7.13/ilm-searchable-snapshot.html https://www./guide/en/elasticsearch/reference/current/searchable-snapshots.html 推薦 |
|
|
來(lái)自: 銘毅天下 > 《待分類(lèi)》