? ? ?根據(jù)線上實際業(yè)務(wù)情況,當(dāng)進(jìn)行兩個表關(guān)聯(lián)查詢時棚品,笛卡爾運(yùn)算超過100W靠欢,SQL不做一些調(diào)整的話,MYSQL的響應(yīng)就會變慢铜跑。當(dāng)然门怪,如果換成單表查詢,在目前這個數(shù)量集锅纺,那肯定也是沒有問題的掷空。但是在程序?qū)用妫黾拥倪壿嬀蜁容^多,比如數(shù)據(jù)的merge處理坦弟,排序處理都是要考慮的护锤。與其耗費(fèi)精力在這上面,還不如引入ES酿傍,將所有復(fù)雜條件全部入索引庫烙懦,在檢索數(shù)據(jù)之前,把條件檢索出來再與DB進(jìn)行交互拧粪。為了實現(xiàn)這一目標(biāo)修陡,需要先解釋一下安裝的名詞:
ES的版本:elasticsearch-7.10.2 索引數(shù)據(jù)存儲層
Kibana的版本:kibana-7.10.2-linux-x86_64 ES數(shù)據(jù)展現(xiàn)層,提供基本的界面查詢
OS:linux-64 整個運(yùn)行環(huán)境是LINUX64位
ES的SQL查詢支持:opendistro-1.12.0.0 這是AWS針對ES提供的SQL查詢支持插件可霎,你可以像寫SQL一樣針對ES的數(shù)據(jù)庫進(jìn)行查詢魄鸦,支持大部分的SQL語法。
首先安裝ES癣朗,首先去官網(wǎng)下載elasticsearch-7.10.2-linux-x86_64.tar.gz及kibana-7.10.2-linux-x86_64.tar.gz拾因,這兩個安裝包的版本一定要匹配,解壓之后旷余,主要是配置方面需要說明绢记。
ES的地址及端口
認(rèn)證配置及內(nèi)部通訊加密開啟,不然你的ES就是裸奔狀態(tài)
內(nèi)部通訊開啟:keystore.path及truststore.path的路徑是相對于是在es的config路徑下面正卧,現(xiàn)在講一下如何生成這個文件
首先需要制作一個CA證書:bin/elasticsearch-certutil ca
使用這個ca生成證書和私鑰:bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
在config下面新建certs目錄蠢熄,將生成的文件直接拷貝過去。
認(rèn)證登錄開啟:執(zhí)行bin/elasticsearch-setup-passwords interactive進(jìn)入賬號密碼設(shè)置炉旷,默認(rèn)就是elastic签孔,密碼建議使用字母,數(shù)字窘行,特殊字符混合組成饥追,一直回車輸入就行了。里面依次創(chuàng)建ES的內(nèi)部管理賬號罐盔,其中包含Kibana的登錄密碼但绕。
然后安裝SQL解析的插件,地址為https://opendistro.github.io/for-elasticsearch-docs/docs/install/plugins/#install-plugins惶看,里面有插件包plugin
下載之后捏顺,參照ES插件安裝命令就可以了,重啟纬黎。
最后配置Kibana登錄ES,主要就是把 剛才在ES配置的賬號弄好草丧,
重啟Kibana, 使用賬號登錄