本課程講師 : 沐澤 — 阿里巴巴 Elasticsearch 產品經理
如果你想收看完整視頻,請點擊《飛天大數據產品價值解讀 — 全文檢索引擎 Elasticsearch》
一、關於 Elasticsearch
Elasticsearch是一個開源的信息檢索、分析引擎,它能夠支持全文檢索,結構化搜索和數據分析。Elasticsearch在業內是非常主流和熱門的一個搜索引擎,在整個DB-Engine熱門指數排行上面是全球熱度第七的數據庫,在檢索方面更是全球熱度第一的檢索引擎。它應用的場景,如下圖所示,包括各類信息查詢,比如訂單查詢,以及地理位置查詢,以及日誌數據的檢索和分析,數據分析和可視化。
整個Elastic Stack開源產品生態矩陣包括Beats、Logstash、Elasticsearch和Kibana這幾部分,也是大家通常所知道的ELK,各個部分的能力概括如下圖所示。整個這樣的一套開源技術產品在開源領域,已經有很多開發者都會在自己的業務中使用。而這些都在阿里雲上提供開箱即用的全託管的雲服務。
阿里雲Elasticsearch提供全託管Elastic Stack服務,100%兼容開源,免費提供XPack商業插件,即開即用,按需付費。同時深入功能與內核性能優化,提供更豐富的分析檢索能力,更安全、高可用服務。
整體優勢體現在兩個方面。
第一,低成本。阿里雲Elasticsearch不僅免費提供每個節點價值6000美元的X-Pack商業插件。還通過智能運維、高級監控告警、容災部署等,為用戶降低大規模集群的運維成本。同時,針對性場景調優,提高資源利用效率。
第二,具備更強勁的功能與性能。阿里雲Elasticsearch基於開源內核引擎研發了日誌增強版內核,帶來日誌場景的100%成本降低,以及100%性能提升。同時也通過向量檢索插件、阿里雲SQL插件,不斷完善整體在文本、視頻、音頻、圖像,各方面的信息檢索能力。
另外,與開源相比,阿里雲Elasticsearch通過各種企業級數據安全能力,全面對齊等保2.0要求,也提供開放的二次開發能力,支持各種業務場景的封裝。通過這些構成了阿里雲Elasticsearch端到端分析檢索架構,包含數據採集層,數據加工層,數據引擎層,應用層。目前,阿里雲Elasticsearch已經為教育、零售、金融、遊戲等然30多個行業的幾千家客戶提供雲上穩定、高性能服務。在區域部署上面,阿里雲Elasticsearch服務已經覆蓋阿里雲全球20個數據中心,同時也能夠支持本地化的專有云以及混合雲的交付模式。
二、電商零售分析檢索能力與解決方案
下面我們會基於一些場景上的實際的案例,包括一些架構,對Elasticsearch在實際的功能和能力上做更詳細的講解。
電商零售——電商業務搜索。
電商場景存在海量的商品數據、訂單數據,在售前和售後階段,均 對數據的精準搜索有需求,在售前階段幫 助用戶快速找到意向商品和相關服務;在 售後階段幫助用戶找到歷史訂單信息,例如幫助賣家根據手寫退換單中的模糊信息快速 找到並處理售後訂單。
綜合數據分析
交易及零售行業在線上線 下均有大量的數據產生,例如業務系統日誌、交易數據、POS機數據、用戶信息、 用戶在門店或線上的行為數據、智能設備 數據等,需要對數據做多渠道收集、存儲並分析。
場景痛點有三點;
1、流量波動,集群缺彈性:電商零售行業周 期性的流量波峰波谷(週末、大促),集群 需要適應性的伸縮,直面供應鏈成本冗餘 或者不足的問題,以及頻繁變更集群的運 維成本問題高;
2、搜索質量要求:搜索作為電商零售場景核 心流量入口,搜索準確率直接影響用戶體 驗和成交轉化,基礎開源分詞器無法滿足 高質量搜索需求;
3、高穩定性要求,成本高:電商零售行業在流量高峰時,需要同時承載大量的查詢和 寫入壓力,對系統的可用性、穩定性保障 要求極高。
與之對應的,Elasticsearch提供了適用於此類檢索場景的各種產品能力。
1、體系化產品能力:雲上數據及服務高 可用、集群一鍵升降配、數據存儲加 密和安全管控、MS級的數據時效性。
2、多雲災備:多雲災備解決方案。
3、成本優化:通過場景調優、產品組合和價格策略,TCO下降50%以上。
4、專家級服務:提供專家級支撐能力, 輸出基於客戶場景的解決方案、架構優化、疑難問題解決。
5、全鏈路支持:雲上ELK全產品支持,提供從數據採集、傳輸、處理、可視化的一站式服務。
下面我們從電商零售行業的訂單檢索出發,來看下檢索方面客戶的技術和業務有什麼問題。
在電商、零售行業,交易訂單作為整個系統的“紐帶”貫穿了整個系統的關鍵流程,承載著所有購買信息與支付信息。
隨著電商新零售業務規模日益擴大,對各電商/服務商的系統帶來了新的挑戰。以雙11大促為例,主要會面臨以下幾個問題。
1、日訂單數據800w+,高流量、高併發系統壓力大。關係型數據庫面對超大數據量具有天然的性能瓶頸,如果底層數據庫直接承載業務端查詢壓力,可能發生影響業務穩定性的問題。
2、30+訂單字段,高維度聚合/條件/模糊查詢效率低。傳統DB不滿足靈活的字段組合查詢,Like性能差。業務的查詢情況多樣、查詢條件複雜,對實時性要求高。
3、業務波動大,系統不能靈活擴縮,運維難度高。大促帶來的峰谷波動,面臨供應鏈資源不足或冗餘。頻繁變更底層系統的人力運維成本高,缺乏支撐和保障。
在查詢檢索的性能提升這一塊,可以看到,傳統關係型數據庫有很大的侷限性,Elasticsearch 是如何與 DB 能力互補呢?
Elasticsearch 基於 Lucene 核心庫構建,以倒排索引算法為基礎,默認為所有字段創建索引。數據模型採用 Free Scheme 模式, JSON 主體,字段靈活添加,字段層級位置靈活設置。可以應付超大的數據量查詢,在單索引數據量十億級也可以在亞秒內響應查詢。任意索引字段可組合使用,且查詢效率相當高。多表關聯查詢可通過反範式的關聯能力,將多個業務表數據合併到一個索引中。天然分佈式設計,副本與分片機制使得集群具備彈性擴展能力。總的來說,關係型數據庫比較全能,其分庫分表的機制可以很好的保障數據不丟失、不覆蓋,但是面對大規模的複雜查詢檢索,會有一定的侷限性。Elasticsearch 更為專注於提供靈活高效的查詢能力,將Elasticsearch 作為數據庫二級索引組合使用,可以很好的應對數據幾何倍數增長、查詢條件動態變化的檢索業務場景,實現數據庫查詢加速。
下面來看一個電商訂單檢索案例,是如何使用阿里雲Elasticsearch實現訂單檢索,搭建日誌分析平臺。
案例—愛用科技
愛用科技立足於電子商務行業,是基於淘寶服務平臺的最早一批應用軟件與信息技術服務提供商之一。 專注為淘寶電商商家提供包含訂單處理、商品管理、分銷供應、數據分析、營銷打折等功能的軟件產品。 現已服務於400萬淘寶商家,使用阿里雲Elasticsearch搭建訂單檢索服務和日誌分析平臺。
在訂單檢索場景,愛用不僅為超過 40W 商家用戶提供穩定安全的訂單管理服務,並承諾 1~5 秒內可實 現所有訂單查詢和處理。同時,這樣的一套訂單系統可以支持賣家用戶從接單、訂單管理、打印發貨、物流跟蹤、到評價管理, 實現全流程管理覆蓋,幫助賣家用戶高效、實時管理訂單動態。另外,在實際的檢索能力上,可以支持通過訂單號、買家暱稱、關鍵詞、收件人姓名、手機號、收貨地 址、交易時間、賣家備註、賣家留言等 20+ 訂單信息字段,進行各類高級查詢、篩選和排序。總的來說,實現了超快的訂單加載速度,篩單秒出結果。
業務痛點
1、峰值併發查詢壓力大,延遲高體驗不好,嚴重影響穩定性,無法達到為用戶承諾的查詢時效性。
2、訂單字段複雜,商家用戶的查詢維度多,和模糊搜索意圖強,原先的Postgresql數據庫方案無法實現滿意的查詢效果和性能。
3、雙十一、618等購物節業務壓力暴漲,難以快速擴容。第作為服務商,將所有客戶的數據集中存儲索引管理,
4、數據可用性、安全、權限粒度更要求高,數據敏感影響巨大面對這些問題。
Elasticsearch 能力
1、PB級數據準實時搜索引擎,查詢結果毫秒級返阿里雲Elasticsearch研發了回;索引限流插用以件,保障系 統高穩定性。
2、支持多種數據結構的複雜查詢,及字段的全文匹配和模糊匹配,同時集成 阿里達摩院NLP分詞器等多種分詞插件,性能效果雙保障。
3、集群一鍵平滑擴縮容,變更對業務0影響,靈活應對流量峰谷。
4、數據自動備份、多種安全認證、字段級別權限管最終這塊,愛用科技基於MySQL+Elasticsearch組合方案了整體實現訂單查詢。 不僅提升了近一倍的IOPS性能,也同時降低了50%的資源成本。
阿里雲 Elasticisearch 在其他的場景應用也有很多案例能力的沉澱。
阿里雲 Elasticsearch 向量檢索能力,被廣泛應用在以圖搜圖,智能客服這些場景。
隨著AI技術的不斷普及,電商場景中針對向量檢索的需求量在逐步提升。從以圖搜圖、人臉識別、音視頻識別到商品智能推薦等場景,技術上都離不開向量檢索的能力支撐。
阿里雲Elasticsearch向量檢索插件,基於達摩院 Proxima 向量引擎庫,對向量檢索 的一些基礎能力,如聚類、距離計算、高併發、Cache 等做了深層次的優化。
Elasticsearch 整套 ELK 分析可視化方案,被廣泛應用於智慧門店場景下的業務分析場景。
對於很多新零售商家諸如海底撈,線下門店分佈廣,業務體量大,迫切的需要”智慧門店”解決方案,實現會員、訂單、商品等多渠道業務數據的集中管理和實時搜索,用於移動端綜合搜索和內部管理、運營系統的業務指標分析。基於阿里雲 Elastic Stack 端到端的產品能力,可以很好的實現門店數據、用戶數據、交易數據、客流數據等全渠道收集,並進行數據聚合與實時數據分析,結合 Kibana、 QuickBI 和 DataV 打造業務數據可視化監控看板, 搭建數據應用分析、可視化和搜索服務,並支持報表聯動權限管控,從而一站式的搭建出整套智慧門店解決方案。
電商零售業務分析應用的架構,分為四個部分,分別是數據源 & 採集,數據傳輸、流式數據存儲,數據ETL,數據存儲 & 分析。
三、在線教育全觀測運維監控能力與解決方案
接下來,我們會從在線教育這個行業進行介紹。總體來說,先來看三大應用場景。
1、1對1、1對多、1對N的在線直播團隊:學 員或老師在直播的過程中,會產生很多行 為動作,如進入直播間,退出直播間,舉手、上講臺、塗鴉、加載課件等,如果動 作無響應,對於用戶體驗就很差,需要基 於日誌的數據可視化,來幫助測試或研發 監控、復現和定位問題;
2、全鏈路應用性能監控團隊:終端用戶(學 生&老師)、客戶(獨立培訓機構 或者 內部 課程部門)、平臺方(平臺運維部分),涉及 的問題層層傳遞,需要保證性能監控的時 效性;
3、試題、教案教義搜索團隊:試題的標籤個 數在錄入時是不確定的,需要底層的搜索 /檢索系統可以支持靈活的標籤錄入機制。
在這些場景下,往往有著共同的痛點問題。
1、流量波動,集群缺彈性:教育行業週期性 的流量波峰波谷(週末、寒暑假),集群需 要適應性的伸縮,直面供應鏈成本冗餘或 者不足的問題,以及頻繁變更集群的運維 成本問題高;
2、鏈路冗長,問題難定位:數據鏈路端到端 流程太長,一旦異常定位問題成本很高;
3、高穩定性要求,成本高:教育行業不僅僅 向客戶暴露業務系統,日誌系統也會面向 用戶使用(如監課),全鏈路的穩定保障 要求極高;
4、搜索高要求:不僅僅是全文檢索,基於標 籤的本文、甚至是非文本檢索需求導致搜索複雜。
阿里雲Elasticsearch產品在這樣的場景和痛點下,具備以下能力。
1、體系化產品能力:雲上數據及服務高可用、 數據存儲加密和安全管控、MS級的數據 時效性、全鏈路數據加快S級反饋;
2、數據時效性:MS級的數據時效性,全鏈路數據監控S級反饋;
3、多雲災備:多雲災備解決方案;
4、TCO成本優化:通過場景調優、產品組合 和價格策略,可以讓客戶TCO下降50%以 上;
5、專家級服務:提供專家級支撐能力,輸出基於客戶場景的解決方案、架構優化、疑難問題解決。
下面我們從在線教育的一些典型客戶使用方面來做一些深入的分析。
案例—好未來
好未來(前身“學而思”)是一個以智慧教育和開放平臺為主體,以素質教育和課外輔導為載體,在全球範圍內服務公辦教育,助力民 辦教育,探索未來教育新模式的科技教育公司。
好未來旗下直播雲平臺,為各類教育培訓機構輸出包括在線教室和雙師課堂在內的全場 景教育直播產品及服務體系。好未來直播雲支撐線上百萬人線上課堂, 並承諾不卡頓,支持師生互動;提供從視頻的採集、轉碼、發送、SDRTN、接受、解碼、播放/渲染全鏈路的服 務,系統需要提供99.9%傳輸成功率;提供500ms 低延遲、高清畫質,全球範圍 直播授課及同步監管能力,7*24小時線上 支持保障;自建ES的全鏈路質量監控,QoE、QoS等 質量實時監控。
面對這樣高性能、穩定性要求的直播系統,好未來的直播鏈路面臨著巨大的挑戰。
1、監控指標來源多,實時性保障困難。而阿里雲Elasticsearch具備豐富異構數據源採集能力,能夠覆蓋主流DB和日誌系統並支持模版化的日誌解析處理能力。
2、數據權限粒度要求高。為保障終端用戶的使用體驗,直播平臺方需要賦能客戶數據監控和分析能力,需要提供讀數據權限;無法滿足每個客戶一個集群的需求,需要對一個大池子中的數據進行細粒度的數據權限分割。面對這樣高要求的數據權限問題,阿里雲Elasticsearch本身可以提供精確到字段級別的數據權限分割能力,並基於RBAC模型支持用戶靈活自定義權限體系;支持與企業自有權限體系對接打通關。
3、在線教育的流量波動大,自建集群投入成本高。教育行業寒暑假業務流量激增,學期內流量平穩,機器資源閒置浪費;峰值流量集群壓力大,集群容災和穩定性差。雲上Elasticsearch託管很好的提供了集群平滑的伸縮能力,同時集群熱變更,對服務0影響。
在此之中,集群平滑擴縮容作為在線教育核心訴求。阿里雲Elasticsearch通過性能優化不僅達到了毫秒級別的數據時效性,並且支撐數百個企業級客戶權限分配管理。當遇到流量激增,整體監控及日誌平臺可以平滑擴容,而峰/谷集群也可以通過彈性伸縮功能靈活配置,節約100%成本。和客戶自建服務效果對比,體現了降本增效的核心優勢。直播場景下,好未來整體日誌及監控平臺數據流程示意圖如下圖所示。
在這個方案背後,依託的就是 ELK 的全觀測能力實現監控運維分析。
運維繫統的成熟度主要根據,所收集數據的豐富度、數據處理的結構化能力、以及數據分析層的複雜程度所決定。而 Elastic Stack 能夠充分利用分散在系統各層的數據,更好的發揮數據價值。
全觀測能力,不僅關注的是基礎的日誌和指標數據,更能收集到用戶行為金控、交易性能監控、分佈式追蹤等 APM 數據,通過對採集後的數據進行匯聚處理,進行數據存儲搜索,以及可視化監控告警。而隨著告警能力的完善,數據的分析也不僅僅依託於簡單的規則和指標異常告警,Elasticsearch 本身能夠提供高級的機器學習和關聯分析,實現對問題全鏈路的追蹤。
從而最終實現了日誌、指標、APM 數據在一個平臺統一分析。如下圖所示,不僅建立了統一的可視化視圖、對齊時間、過濾條件;除了統一的基於規則的監控和告警;還有統一的機器學習的智能監控和告警。
當業務發生一些故障,Elasticsearch 會有一個機器學習的模塊,通過你的歷史的情況去智能的推測,比如說,這個時候的指標大概會在什麼樣的範圍內。當你的指標沒有在之後,就會判斷這是一個異常的情況。在機器學習頁面,就會給你這樣一個告警詳情。然後你就能夠跳轉到相應的,包括 API 那些頁面,儀表盤,指標去進行後續的診斷故障。
機器學習頁面詳細分析告警,包括各種機器學習任務告警對齊;機器學習根據API響應時間的歷史情況自動建模,當監控值超過動態閾值就觸發告警, 並且可以指出是哪個 API 性能下降;可以從故障點處跳轉到 APM、儀表板、指標、Uptime 等其他應用來診斷這個故障。
APM 性能分析,包括總體性能統計概覽,中央時間點對應故障時間點;根據各個API性能影響的情況排序,影響最大的排最前面。
APM查看分佈式調用有如下幾塊。第一,服務響應時間分佈情況。第二,彙總分佈式環境下的多種服務。第三,查看分佈式環境下服務間的調用關係和單個應用內部的調用情況。
儀表板綜合分析包括:服務總體響應時間分析,分服務的響應時間對比,把服務分為各個實例性能熱點分析。
查看指標分析這一塊,包括可觀察主機、K8s、docker 的指標數據,時間對齊告警發生時刻。它可以按照每一個 Pod 查看性能消耗,可以查看每個 Pod 的日誌、指標、APM、Uptime 數據。並且,打通指標和指標、APM。
分析日誌定位原因如下圖所示,包括時間對齊告警發生時刻,自動定位到單個 Pod 可以自由輸入條件過濾日誌流,可以看到8點這個時刻 MySQL 有大表 連接,大量的行掃描。
總體概括來說,阿里雲 Elasticsearch 在各個業務場景下,從整體成本,集群管控、檢索能力、安全性和可用性等各個方面,對比自建集群均帶來了全方位的能力與性能優化,如下圖所示。
【阿里雲Elastic Stack】100%兼容開源ES,獨有9大能力,提供免費X-pack服務(單節點價值$6000)
相關活動
更多折扣活動,請訪問阿里雲 Elasticsearch 官網
阿里雲 Elasticsearch 商業通用版,1核2G ,SSD 20G首月免費
阿里雲 Logstash 2核4G首月免費