當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]作者介紹 李猛(ynuosoft),Elastic-stack產(chǎn)品深度用戶,ES認(rèn)證工程師,2012年接觸Elasticsearch,對(duì)Elastic-Stack開(kāi)發(fā)、架構(gòu)、運(yùn)維等方面有深入體驗(yàn),實(shí)踐過(guò)多種Elasticsearch項(xiàng)目,最暴力的大數(shù)據(jù)分析應(yīng)用,最復(fù)雜的業(yè)務(wù)系統(tǒng)應(yīng)用;業(yè)余為企業(yè)提供Elastic-sta


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?



作者介紹

李猛(ynuosoft),Elastic-stack產(chǎn)品深度用戶,ES認(rèn)證工程師,2012年接觸Elasticsearch,對(duì)Elastic-Stack開(kāi)發(fā)、架構(gòu)、運(yùn)維等方面有深入體驗(yàn),實(shí)踐過(guò)多種Elasticsearch項(xiàng)目,最暴力的大數(shù)據(jù)分析應(yīng)用,最復(fù)雜的業(yè)務(wù)系統(tǒng)應(yīng)用;業(yè)余為企業(yè)提供Elastic-stack咨詢培訓(xùn)以及調(diào)優(yōu)實(shí)施。


序言


經(jīng)常遇到很多朋友詢問(wèn),如何學(xué)好Elasticsearch?這個(gè)問(wèn)題本質(zhì)上很不好回答,但我一直又很想好好回答,所以本文就以我個(gè)人的經(jīng)驗(yàn)視角,跟大家探討一下如何正確的擁抱Elasticsearch。若有不當(dāng)之處,歡迎留言指正。


ES認(rèn)知


1、ES是什么


Elasticsearch是什么,不同的人有不同的理解定位,之前寫(xiě)過(guò)Elasticsearch對(duì)比其它數(shù)據(jù)產(chǎn)品的文章《Elasticsearch對(duì)壘8大競(jìng)品技術(shù),孰優(yōu)孰劣?》,看了文章下面的評(píng)論,很多人定位它是搜索引擎,我覺(jué)得也很片面,下面就談?wù)勎业恼J(rèn)知:


1)Elasticsearch是搜索引擎


Elasticsearch在搜索引擎數(shù)據(jù)庫(kù)領(lǐng)域排名絕對(duì)第一,內(nèi)核基于Lucene構(gòu)建,支持全文搜索是職責(zé)所在,提供了豐富友好的API。個(gè)人早期基于Lucene構(gòu)建搜索應(yīng)用,需要考慮的因素太多,自接觸到Elasticsearch就再無(wú)自主開(kāi)發(fā)搜索應(yīng)用。普通工程師要想掌控Lucene需要一些代價(jià),且很多機(jī)制并不完善,需要做大量的周邊輔助程序,而Elasticsearch幾乎都已經(jīng)幫你做完了。


2)Elasticsearch不是搜索引擎


說(shuō)它不是搜索引擎,估計(jì)很多從業(yè)者不認(rèn)可,在個(gè)人涉及到的項(xiàng)目中,傳統(tǒng)意義上用Elasticsearch來(lái)做全文檢索的項(xiàng)目占比越來(lái)越少,多數(shù)時(shí)候是用來(lái)做精確查詢加速,查詢條件很多,可以任意組合,查詢速度很快,替代其它很多數(shù)據(jù)庫(kù)復(fù)雜條件查詢的場(chǎng)景需求;甚至有的數(shù)據(jù)庫(kù)產(chǎn)品直接使用Elasticsearch做二級(jí)索引,如HBase、Redis等。Elasticsearch由于自身的一些特性,更像一個(gè)多模數(shù)據(jù)庫(kù)。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:Elasticsearch綜合數(shù)據(jù)庫(kù)排名熱度已經(jīng)到第7


3)Elasticsearch是數(shù)據(jù)庫(kù)


Elasticsearch使用Json格式來(lái)承載數(shù)據(jù)模型,已經(jīng)成為事實(shí)上的文檔型數(shù)據(jù)庫(kù),雖然底層存儲(chǔ)不是Json格式,同類(lèi)型產(chǎn)品有大名鼎鼎的MongoDB,不過(guò)二者在產(chǎn)品定位上有差別,Elasticsearch更加擅長(zhǎng)的基于查詢搜索的分析型數(shù)據(jù)庫(kù),傾向OLAP;MongoDB定位于事務(wù)型應(yīng)用層面OLTP,雖然也支持?jǐn)?shù)據(jù)分析,筆者簡(jiǎn)單應(yīng)用過(guò)之后再無(wú)使用,誰(shuí)用誰(shuí)知道。


4)Elasticsearch不是數(shù)據(jù)庫(kù)


Elasticsearch不是關(guān)系型數(shù)據(jù)庫(kù),內(nèi)部數(shù)據(jù)更新采用樂(lè)觀鎖,無(wú)嚴(yán)格的ACID事務(wù)特性,任何企圖將它用在關(guān)系型數(shù)據(jù)庫(kù)場(chǎng)景的應(yīng)用都會(huì)有很多問(wèn)題,很多其它領(lǐng)域的從業(yè)者喜歡拿這個(gè)來(lái)作為它的缺陷,重申這不是Elasticsearch的本質(zhì)缺陷,是產(chǎn)品設(shè)計(jì)定位如此。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:Elastic擅長(zhǎng)的應(yīng)用場(chǎng)景


2、ES做什么


Elasticsearch雖然是基于Lucene構(gòu)建,但應(yīng)用領(lǐng)域確實(shí)非常寬泛。


1)全文檢索


Elasticsearch靠全文檢索起步,將Lucene開(kāi)發(fā)包做成一個(gè)數(shù)據(jù)產(chǎn)品,屏蔽了Lucene各種復(fù)雜的設(shè)置,為開(kāi)發(fā)人員提供了很友好的便利。很多傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)也提供全文檢索,有的是基于Lucene內(nèi)嵌,有的是基于自研,與Elasticsearch比較起來(lái),功能單一,性能也表現(xiàn)不是很好,擴(kuò)展性幾乎沒(méi)有。


如果,你的應(yīng)用有全文檢索需求,建議你優(yōu)先遷移到Elasticsearch平臺(tái)上來(lái),其提供豐富的Full text queries會(huì)讓你驚訝,一次用爽,一直用爽。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:Elasticsearch官方搜索文檔


2)應(yīng)用查詢


Elasticsearch最擅長(zhǎng)的就是查詢,基于倒排索引核心算法,查詢性能強(qiáng)于B-Tree類(lèi)型所有數(shù)據(jù)產(chǎn)品,尤其是關(guān)系型數(shù)據(jù)庫(kù)方面。當(dāng)數(shù)據(jù)量超過(guò)千萬(wàn)或者上億時(shí),數(shù)據(jù)檢索的效率非常明顯。


個(gè)人更看中的是Elasticsearch在通用查詢應(yīng)用場(chǎng)景,關(guān)系型數(shù)據(jù)庫(kù)由于索引的左側(cè)原則限制,索引執(zhí)行必須有嚴(yán)格的順序,如果查詢字段很少,可以通過(guò)創(chuàng)建少量索引提高查詢性能,如果查詢字段很多且字段無(wú)序,那索引就失去了意義;相反Elasticsearch是默認(rèn)全部字段都會(huì)創(chuàng)建索引,且全部字段查詢無(wú)需保證順序,所以我們?cè)跇I(yè)務(wù)應(yīng)用系統(tǒng)中,大量用Elasticsearch替代關(guān)系型數(shù)據(jù)庫(kù)做通用查詢,自此之后對(duì)于關(guān)系型數(shù)據(jù)庫(kù)的查詢就很排斥,除了最簡(jiǎn)單的查詢,其余的復(fù)雜條件查詢?nèi)孔逧lasticsearch。


3)大數(shù)據(jù)領(lǐng)域


Elasticserach已經(jīng)成為大數(shù)據(jù)平臺(tái)對(duì)外提供查詢的重要組成部分之一。大數(shù)據(jù)平臺(tái)將原始數(shù)據(jù)經(jīng)過(guò)迭代計(jì)算,之后結(jié)果輸出到一個(gè)數(shù)據(jù)庫(kù)提供查詢,特別是大批量的明細(xì)數(shù)據(jù)。


這里會(huì)面臨幾個(gè)問(wèn)題,一個(gè)問(wèn)題是大批量明細(xì)數(shù)據(jù)的輸出,如何能在極短的時(shí)間內(nèi)寫(xiě)到數(shù)據(jù)庫(kù),傳統(tǒng)上很多數(shù)據(jù)平臺(tái)選擇關(guān)系型數(shù)據(jù)庫(kù)提供查詢,比如MySQL,之前在這方面吃過(guò)不少虧,瞬間寫(xiě)入性能極差,根本無(wú)法滿足要求。另一個(gè)問(wèn)題是對(duì)外查詢,如何能像應(yīng)用系統(tǒng)一樣提供性能極好的查詢,不限制查詢條件,不限制字段順序,支持較高的并發(fā),支持海量數(shù)據(jù)快速檢索,也只有Elasticsearch能夠做到比較均衡的檢索。


從官方的發(fā)布版本新特性來(lái)看,Elasticseacrch志在大數(shù)據(jù)分析領(lǐng)域,提供了基于列示存儲(chǔ)的數(shù)據(jù)聚合,支持的聚合功能非常多,性能表現(xiàn)也不錯(cuò),筆者有幸之前大規(guī)模深度使用過(guò),頗有感受。


Elasticsearch為了深入數(shù)據(jù)分析領(lǐng)域,產(chǎn)品又提供了數(shù)據(jù)Rollup與數(shù)據(jù)Transform功能,讓檢索分析更上一層樓。在數(shù)據(jù)Rollup領(lǐng)域,Apache Druid的競(jìng)爭(zhēng)能力很強(qiáng),筆者之前做過(guò)一些對(duì)比,單純的比較確實(shí)不如Druid,但自Elasticsearch增加了Transfrom功能,且單獨(dú)創(chuàng)建了一個(gè)Transfrom的節(jié)點(diǎn)角色,個(gè)人更加看好Elasticseach,跳出了Rollup基于時(shí)間序列的限制。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:Rollup執(zhí)行過(guò)程數(shù)據(jù)轉(zhuǎn)換示意圖


4)日志檢索


著名的ELK三件套,講的就是Elasticsearch,Logstash,Kibana,專(zhuān)門(mén)針對(duì)日志采集、存儲(chǔ)、查詢?cè)O(shè)計(jì)的產(chǎn)品組合。很多第一次接觸到Elasticsearch的朋友,都會(huì)以為Elasticsearch是專(zhuān)門(mén)做日志的,其實(shí)這些都是誤解,只是說(shuō)它很擅長(zhǎng)這個(gè)領(lǐng)域,在此領(lǐng)域大有作為,名氣很大。


日志自身特點(diǎn)沒(méi)有什么通用的規(guī)范性,人為的隨意性很大,日志內(nèi)容也是任意的,更加需求全文檢索能力,傳統(tǒng)技術(shù)手段本身做全文檢索很是吃力。而Elasticsearch本身起步就是靠全文檢索,再加上其分布式架構(gòu)的特性,非常符合海量日志快速檢索的場(chǎng)景。今天如果還發(fā)現(xiàn)有IT從業(yè)人員用傳統(tǒng)的技術(shù)手段做日志檢索,應(yīng)該要打屁股了。


如今已經(jīng)從ELK三件套發(fā)展到Elastic Stack了,新增加了很多非常有用的產(chǎn)品,大大增強(qiáng)了日志檢索領(lǐng)域。


5)監(jiān)控領(lǐng)域


指標(biāo)監(jiān)控,Elasticsearch進(jìn)入此領(lǐng)域比較晚,卻趕上了好時(shí)代,Elasticsearch由于其倒排索引核心算法,也是支持時(shí)序數(shù)據(jù)場(chǎng)景的,性能也是相當(dāng)不錯(cuò)的,在功能性上完全壓住時(shí)序數(shù)據(jù)庫(kù)。


Elasticsearch搞監(jiān)控得益于其提供的Elastic Stack產(chǎn)品生態(tài),豐富完善,很多時(shí)候監(jiān)控需要立體化,除了指標(biāo)之外,還需要有各種日志的采集分析,如果用其它純指標(biāo)監(jiān)控產(chǎn)品,如Promethues,遇到有日志分析的需求,還必須使用Elasticsearch,這對(duì)于技術(shù)棧來(lái)說(shuō),又?jǐn)U增了,相應(yīng)的掌控能力會(huì)下降,個(gè)人精力有限,無(wú)法同時(shí)掌握很多種數(shù)據(jù)產(chǎn)品,如此選擇一個(gè)更加通用的產(chǎn)品才符合現(xiàn)實(shí)。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示 :Elastic性能對(duì)比時(shí)序數(shù)據(jù)庫(kù)(來(lái)自騰訊云分享)


6)機(jī)器學(xué)習(xí)


機(jī)器學(xué)習(xí)最近幾年風(fēng)吹的很大,很多數(shù)據(jù)產(chǎn)品都集成了,Elasticsearch也必須有,而且做的更好,真正將機(jī)器學(xué)習(xí)落地成為一個(gè)產(chǎn)品 ,簡(jiǎn)化使用,所見(jiàn)所得;而不像其它數(shù)據(jù)產(chǎn)品,僅僅集成算法包,使用者還必須開(kāi)發(fā)很多應(yīng)用支持。


Elasticsearch機(jī)器學(xué)習(xí)提供了兩種方式,一種是異常檢測(cè)類(lèi)型,屬于無(wú)監(jiān)督學(xué)習(xí),采用聚類(lèi)模型,通常應(yīng)用在安全分析領(lǐng)域,檢測(cè)異常訪問(wèn)等;一種是數(shù)據(jù)幀分析,屬于分類(lèi)與回歸,屬于監(jiān)督學(xué)習(xí),可用于在業(yè)務(wù)模型領(lǐng)域,如電商行業(yè),價(jià)格模型分析。


Elasticsearch本身是數(shù)據(jù)平臺(tái),集成了部分機(jī)器學(xué)習(xí)算法,同時(shí)又集成了Kibana可視化操作,使得從數(shù)據(jù)采集、到模型訓(xùn)練、到模型預(yù)測(cè)應(yīng)用都可以一鍵式完成。


Elasticserach提供的機(jī)器學(xué)習(xí)套件,個(gè)人認(rèn)為最應(yīng)該應(yīng)用在數(shù)據(jù)質(zhì)量這個(gè)領(lǐng)域,幫助大數(shù)據(jù)平臺(tái)自動(dòng)檢測(cè)數(shù)據(jù)質(zhì)量,從而降低人力提供效率。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示 :機(jī)器學(xué)習(xí)應(yīng)用示意圖(截圖)


需求等級(jí)


Elasticsearch整個(gè)的技術(shù)棧非常復(fù)雜,涉及到的理論與技術(shù)點(diǎn)非常多,完全掌握并不現(xiàn)實(shí),作為一個(gè)IT從業(yè)者,首先是定位好自己的角色,依據(jù)角色需求去學(xué)習(xí)掌握必備的知識(shí)點(diǎn)。以下是筆者對(duì)于一個(gè)技術(shù)產(chǎn)品的劃分模型:


1、概念


Elasticsearch涉及到的概念很多,核心概念其實(shí)就那么幾個(gè),對(duì)于一個(gè)新手來(lái)說(shuō),掌握概念目的是為了建立起自己的知識(shí)思維模型,將之后學(xué)習(xí)到的知識(shí)點(diǎn)做一個(gè)很好的歸納劃分;對(duì)于一個(gè)其它數(shù)據(jù)產(chǎn)品的老手來(lái)說(shuō) ,掌握概念的目的是為了與其它數(shù)據(jù)產(chǎn)品劃分比較,深入的了解各自的優(yōu)劣,在之后工作中若有遇到新的業(yè)務(wù)場(chǎng)景,可以迅速做出抉擇。


IT從業(yè)者普遍都有個(gè)感受,IT技術(shù)發(fā)展太快了,各種技術(shù)框架產(chǎn)品層出不窮,學(xué)習(xí)掌握太難了,跟不上節(jié)奏。其實(shí)個(gè)人反倒覺(jué)得變化不大,基礎(chǔ)理論核心概念并沒(méi)有什么本質(zhì)的發(fā)展變化,無(wú)非是工程技術(shù)實(shí)操變了很多,但這些是需要深入實(shí)踐才需要的,對(duì)于概念上無(wú)需要。


作為一個(gè)技術(shù)總監(jiān),前端工程師工作1~2年的問(wèn)題都可以問(wèn)倒他,這是大家對(duì)于概念認(rèn)知需求不一樣。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:Elasticsearch核心概念


2、開(kāi)發(fā)


開(kāi)發(fā)工程師的職責(zé)是將需求變成可以落地運(yùn)行的代碼。Elasticsearch的應(yīng)用開(kāi)發(fā)工作總結(jié)起來(lái)就是增刪改查,掌握必備的ES REST API,熟練運(yùn)用足以。筆者之前任職某物流速運(yùn)公司,負(fù)責(zé)Elasticsearch相關(guān)的工作,公司Elasticsearch的需求很多,尤其是查詢方面,ES最厲害的查詢是DSL,這個(gè)查詢語(yǔ)法需要經(jīng)常練習(xí)使用,否則很容易忘記,當(dāng)每次有人詢問(wèn)時(shí),都安排一個(gè)工程師專(zhuān)門(mén)負(fù)責(zé)各種解答,他在編寫(xiě)DSL方面非常熟練,幫助了很多的工程師新手使用Elasticsearch,屏蔽了很多細(xì)節(jié),若有一些難搞定的問(wèn)題,會(huì)由我來(lái)解決,另外一方面作為負(fù)責(zé)人的我偶然還要請(qǐng)他幫忙編寫(xiě)DSL。


Elasticsearch后面提供了SQL查詢的功能,但比較局限,復(fù)雜的查詢聚合必須回到DSL。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:DSL語(yǔ)法復(fù)雜度較高


3、架構(gòu)


Elasticsearch集群架構(gòu)總體比較復(fù)雜,首先得深入了解Elasticseach背后實(shí)現(xiàn)的原理,包括集群原理、索引原理、數(shù)據(jù)寫(xiě)入過(guò)程、數(shù)據(jù)查詢過(guò)程等;其次要有很多案例實(shí)戰(zhàn)的機(jī)會(huì),遇到很多挑戰(zhàn)問(wèn)題 ,逐一排除解決,增加自己的經(jīng)驗(yàn)。


對(duì)于開(kāi)發(fā)工程師來(lái)說(shuō),滿足日常需求開(kāi)發(fā)無(wú)需掌握這些,但對(duì)于Elasticsearch技術(shù)負(fù)責(zé)人,就非常有必要了,面對(duì)各種應(yīng)用需求,要能從架構(gòu)思維去平衡,比如日志場(chǎng)景集群需求、大數(shù)據(jù)分析場(chǎng)景需求、應(yīng)用系統(tǒng)復(fù)雜查詢場(chǎng)景需求等,從實(shí)際情況設(shè)計(jì)集群架構(gòu)以及資源分配等。


4、運(yùn)維


Elasticsearch本質(zhì)是一個(gè)數(shù)據(jù)庫(kù),也需要有專(zhuān)門(mén)的DBA運(yùn)維,只是更偏重應(yīng)用層面,所以運(yùn)維職責(zé)相對(duì)傳統(tǒng)DBA沒(méi)有那么嚴(yán)苛。對(duì)于集群層面必須掌握集群搭建,集群擴(kuò)容、集群升級(jí)、集群安全、集群監(jiān)控告警等;另外對(duì)于數(shù)據(jù)層面運(yùn)維,必須掌握數(shù)據(jù)備份與還原、數(shù)據(jù)的生命周期管理,還有一些日常問(wèn)題診斷等。


5、源碼


Elasticsearch本身是開(kāi)源,閱讀源碼是個(gè)很好的學(xué)習(xí)手段,很多獨(dú)特的特性官方操作文檔并沒(méi)有寫(xiě)出來(lái),需要從源碼中提煉,如集群節(jié)點(diǎn)之間的連接數(shù)是多少,但對(duì)于多數(shù)Elasticsearch從業(yè)者來(lái)說(shuō),卻非必要。了解到國(guó)內(nèi)主要是頭部大廠需要深入源碼定制化改造,更多的是集中在應(yīng)用的便捷性改造,而非結(jié)構(gòu)性的改造,Elastic原廠公司有幾百人的團(tuán)隊(duì)做產(chǎn)品研發(fā),而國(guó)內(nèi)多數(shù)公司就極少的人,所以從產(chǎn)量上來(lái)說(shuō),根本不是一個(gè)等級(jí)的。


如果把Elasticsearch比喻為一件軍事武器,對(duì)于士兵來(lái)說(shuō) ,熟練運(yùn)用才是最重要的,至于改造應(yīng)該是武器制造商的職責(zé),一個(gè)士兵可以使用很多武器裝備,用最佳的組合才能打贏一場(chǎng)戰(zhàn)爭(zhēng),而不是去深入原理然后造輪子,容易本末倒置。


6、算法


算法應(yīng)該算是數(shù)據(jù)產(chǎn)品本質(zhì)的區(qū)別,關(guān)系型數(shù)據(jù)庫(kù)索引算法主要是基于B-Tree, Elasticserach索引算法主要是倒排索引,算法的本質(zhì)決定了它們的應(yīng)用邊界,擅長(zhǎng)的應(yīng)用領(lǐng)域。


通常掌握一個(gè)新的數(shù)據(jù)產(chǎn)品時(shí),個(gè)人的做法是看它的關(guān)鍵算法。早期做過(guò)一個(gè)地理位置搜索相關(guān)的項(xiàng)目,基于某個(gè)坐標(biāo)搜索周邊的坐標(biāo)信息,開(kāi)始的時(shí)候采用的是三角函數(shù)動(dòng)態(tài)計(jì)算的方式,數(shù)據(jù)量大一點(diǎn),掃描一張數(shù)據(jù)表要很久;后面接觸到Geohash算法,按照算法將坐標(biāo)編碼,存儲(chǔ)在數(shù)據(jù)庫(kù)中,基于前綴匹配查詢,性能高效幾個(gè)數(shù)量級(jí),感嘆算法的偉大;再后面發(fā)現(xiàn)有專(zhuān)門(mén)的數(shù)據(jù)庫(kù)產(chǎn)品集成了Geohash算法,使用起來(lái)就更簡(jiǎn)單了。


Elasticsearch集成很多算法,每種算法實(shí)現(xiàn)都有它的應(yīng)用場(chǎng)景。


擁抱ES的方法
1、官方文檔


Elasticsearch早期出過(guò)一本參考手冊(cè)《Elastic權(quán)威指南》,是一本很好的入門(mén)手冊(cè),從概念到實(shí)戰(zhàn)都有涉及,缺點(diǎn)是版本針對(duì)的2.0,過(guò)于陳舊,除去核心概念,其余的皆不適用,當(dāng)前最新版本已經(jīng)是7.7了,跨度太大,Elasticsearch在跨度大的版本之間升級(jí)稍微比較麻煩,索引數(shù)據(jù)幾乎是不兼容的,升級(jí)之后需要重建數(shù)據(jù)才可。


Elasticsearch當(dāng)前最好的參考資料是官方文檔,資料最全,同步發(fā)布版本,且同時(shí)可以參考多個(gè)版本。Elasticsearch官方參考文檔也是最亂的,什么資料都有,系統(tǒng)的看完之后感覺(jué)仍在此山中,有點(diǎn)類(lèi)似一本字典,看完了字典,依然寫(xiě)不好作文;而且資料還是英文的,至此就阻擋了國(guó)內(nèi)大部分程序進(jìn)入。


但想要學(xué)習(xí)Elasticsearch,官方文檔至少要看過(guò)幾遍,便于迅速查詢定位。


ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

圖示:官方文檔截圖說(shuō)明


2、系統(tǒng)學(xué)習(xí)


Elasticsearch成名很早,國(guó)內(nèi)也有很多視頻課程,多數(shù)比較碎片,或是紙上談兵,缺乏實(shí)戰(zhàn)經(jīng)驗(yàn)。Elasticsearch有一些專(zhuān)門(mén)的書(shū)籍,建議購(gòu)買(mǎi)閱讀,國(guó)內(nèi)深度一些的推薦《Elasticsearch源碼解析與優(yōu)化實(shí)戰(zhàn)》,國(guó)外推薦《Elasticsearch實(shí)戰(zhàn)》,而且看書(shū)還有助于培養(yǎng)系統(tǒng)思維。


Elasticsearch技術(shù)棧功能特性很多,系統(tǒng)學(xué)習(xí)要保持好的心態(tài),持之以恒,需要很長(zhǎng)時(shí)間,也需要參考很多資料。


3、背后原理


Elasticsearch是站在巨人肩膀上產(chǎn)品,背后借鑒了很多設(shè)計(jì)思想,集成了很多算法,官方的參考文檔在技術(shù)原理探討這塊并沒(méi)有深入,僅僅點(diǎn)到為止。想要深入了解,必須得另辟蹊徑。


Elastic官方的博客有很多優(yōu)質(zhì)的文章,很多人因?yàn)橛⑽牡木壒蕰?huì)忽視掉,里面有很多關(guān)鍵的實(shí)現(xiàn)原理,圖文并茂,寫(xiě)得非常不錯(cuò);另外國(guó)內(nèi)一些云廠商由于提供了Elasticsearch云產(chǎn)品,需要深度定制開(kāi)發(fā),也會(huì)有一些深入原理系列的文章,可以去閱讀參考,加深理解。對(duì)于已經(jīng)有比較好的編程思維的人,也可以直接去下載官方源碼,設(shè)置斷點(diǎn)調(diào)試閱讀。


4、項(xiàng)目實(shí)戰(zhàn)


項(xiàng)目實(shí)戰(zhàn)是非常有效的學(xué)習(xí)途徑,考過(guò)駕照的朋友都深有體會(huì),教練一上來(lái)就直接讓你操練車(chē),通過(guò)很多次的練習(xí)就掌握了。Elasticsearch擅長(zhǎng)的領(lǐng)域很多,總結(jié)一句話就是“非強(qiáng)事務(wù)ACID場(chǎng)景皆可適用”,所以可以做的事情也很多。


日志領(lǐng)域的需求會(huì)讓你對(duì)于數(shù)據(jù)寫(xiě)入量非常的關(guān)心,不斷的調(diào)整優(yōu)化策略,提高吞吐量,降低資源消耗;業(yè)務(wù)系統(tǒng)的需求會(huì)讓你對(duì)數(shù)據(jù)一致性與時(shí)效性特別關(guān)心,從其它數(shù)據(jù)庫(kù)同步到ES,關(guān)注數(shù)據(jù)同步的速度,關(guān)注數(shù)據(jù)的準(zhǔn)確性,不斷的調(diào)整你的技術(shù)方案與策略;大數(shù)據(jù)領(lǐng)域的需求會(huì)讓你對(duì)于查詢與聚合特別關(guān)注,海量的數(shù)據(jù)需要快速的檢索,也需要快速的聚合結(jié)果。


項(xiàng)目實(shí)戰(zhàn)的過(guò)程,就是一個(gè)挖坑填坑的過(guò)程,實(shí)戰(zhàn)場(chǎng)景多了,解決的問(wèn)題多了,自然就掌握得很好了。


之前筆者在前公司任職時(shí),所有涉及到的Elasticsearch疑難雜癥都會(huì)找我解決,有一些項(xiàng)目采用別的數(shù)據(jù)產(chǎn)品問(wèn)題比較多,也來(lái)找我評(píng)估更換ES是否合適,以及給出相關(guān)建議。筆者認(rèn)為最好的學(xué)習(xí)方式是找到組織,找到經(jīng)驗(yàn)豐富的大咖,持續(xù)交流學(xué)習(xí),成長(zhǎng)最快也最好。




特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒(méi)關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:

ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

長(zhǎng)按訂閱更多精彩▼

ES既是搜索引擎又是數(shù)據(jù)庫(kù)?真的有那么全能嗎?

如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉