持續定義 Saas 模式雲資料倉儲+實時搜尋

阿里雲技術發表於2020-10-30

一、Why:概述與價值

(一)MaxCompute

我們把MaxCompute定義為SaaS模式的企業級雲資料倉儲。在之前,我們可能會認為MaxCompute是一個離線資料處理引擎,也就是一個傳統的數倉,但是MaxCompute所能做的事情要比傳統數倉多的多。因此,我們更傾向於把MaxCompute看成一個資料處理的平臺,在它上面我們可以做離線資料的處理,包括資料庫的應用,傳統資料倉儲的應用,以及近實時的資料採集和近實時的資料查詢,現在將其與MC-Holegres元件結合,我們還能做到實時數倉的應用場景。

MaxCompute是阿里雲的一個託管服務,它依託於阿里雲強大的基礎設施,為使用者提供優質、便捷的服務,其架構如下圖所示。

MaxCompute有著廣泛的應用場景,傳統數倉所能做的,MaxCompute都能做,主要包括:

1.廣告場景:使用者標籤計算、分析等;
2.業務運營場景:互動式業務指標計算、查詢等;
3.各行業搭建資料倉儲,比如流批一體、湖倉一體等;
4.雲上彈性擴充套件大資料計算和儲存。

得益於可靠的架構和強大的技術實力,MaxCompute有著非常優秀的產品技術特性,主要包括:

(1)全託管的Serverless的線上服務

1.對外以API方式訪問的線上服務,開箱即用;
2.預鋪設的大規模叢集資源,近乎無限資源,按需使用和付費;
3.無需平臺運維,最小化運維投入。

(2)彈效能力與擴充套件性

1.儲存和計算獨立擴充套件,支援TB到EB級別資料規模的擴充套件能力,可以讓企業將全部資料資產儲存在一個平臺上進行聯動分析,消除資料孤島;
2.Serverless資源按需分配,實時根據業務峰谷變化帶來的需求變化分配資源,自動擴充套件;
3.單作業可根據需要秒級獲得成千上萬Core。

(3)資料湖探索分析

1.預設整合對資料湖(如OSS服務)的訪問分析,處理非結構化或開放格式資料;
2.支援外表對映、Spark直接訪問方式開展資料湖分析;
3.對使用者友好:在同一套資料倉儲服務和使用者介面下,實現資料湖分析和資料倉儲的關聯分析。

(4)整合AI能力

1.與阿里雲機器學習平臺PAI無縫整合,提供強大的機器學習處理能力;
2.可使用使用者熟悉的Spark-ML開展智慧分析;
3.提供SQLML可以直接使用標準SQL訓練機器學習模型,並對資料進行預測分析;
4.Mars:使用Python機器學習第三方庫。

(5)支援流式採集和近實時分析

1.支援流式資料的實時寫入(Tunnel),並在資料倉儲中開展分析;
2.與雲上主要流式服務深度整合,輕鬆接入各種來源流式3.高效能秒級彈性併發查詢,滿足近實時分析場景。

(6)深度整合Spark引擎

1.內建Apache Spark引擎,提供完整的Spark功能;
2.與MaxCompute計算資源、資料和許可權體系深度整合。

(7)統一而豐富的運算能力

1.離線計算(MR,DAG,SQL,ML,Graph);
2.實時計算(流式,記憶體計算,選代計算);
3.涵蓋通用關係型大資料,機器學習,非結構化資料處理,圖計算。

(8)提供統一的企業資料檢視

1.提供租戶級別的統一後設資料,讓企業能夠輕鬆獲得完整的企業資料目錄;
2.對於更廣泛的資料來源,通過外表建立資料倉儲與外部資料來源的連線,Connect not Collect。

(9)企業級服務

1.SLA保證:99.9%服務可用性保障;
2.自助運維與自動化運維;
3.完善的故障容錯(軟體,硬體,網路,人為)機制。

一般來講我們的大資料專案是需要很多個元件才能完成的,包括離線元件和實時元件。下圖一個常用的場景,它是集實時、離線、分析、服務於一體的一套方案,適用於資料化運營,如智慧推薦、日誌採集分析、使用者畫像、資料治理、業務大屏、搜尋等場景。這套方案是阿里巴巴最佳實踐的大資料平臺,具有技術領先性,降本提效,高附加值業務收益等優勢。當然,整個方案涉及到的產品也非常多,包括日誌服務SLS、資料傳輸DTS、DataHub、實時計算Flink等等,具體如下圖所示。

下圖是MaxCompute和Hologres兩個元件融合之後的實時分析簡單架構,即雲原生HASP系統,通過該架構我們可以實現實時寫入和實時查詢。與其他的OLAP應用不同的是這種架構下Hologres和MaxCompute是一體的,可以共享儲存,也就是說Hologres可以直接讀取MaxCompute的資料,大大降低了儲存成本。通過這兩個元件,我們還可以解決離線加速、聯邦分析、互動式分析等問題。

(二)Elasticsearch

Elasticsearch是一個開源的分散式、RESTful 風格的搜尋和資料分析引擎,它的底層是開源庫Apache Lucene。Elasticsearch解決了Lucene使用時的繁複性,功能強大,使用簡單,能夠提供實時搜尋服務。Elasticsearch應用場景廣泛,比如叫車的場景中(例如滴滴叫車),使用查詢附近的車輛等功能時候,後臺就是Elasticsearch在為搜尋做支撐,又比如在Github中,Elasticsearch可以幫助我們利用關鍵字等在站內進行檢索。當然,不只是網站應用,包括手機APP,只要用到站內搜尋服務,都能夠用到Elasticsearch或者其他的搜尋服務應用。

我們為什麼需要搜尋引擎呢?實時搜尋為什麼現在這麼火呢?之前我們在做資料分析的時候,可以通過寫程式的方式,但是寫程式對於一些資料分析師來說是一個高門檻的任務,需要一定的學習成本,包括使用SQL也有一定的學習成本。但是有了搜尋引擎之後,我們只需要按照一定的條件進行篩選就可以得到我們想要的資訊,大大降低了學習成本。

當前,主流的搜尋引擎有兩個:Solr和Elasticsearch,兩者都基於Lucene發展而來。Lucene是當今最先進,最高效的全功能開源搜尋引擎框架,但是Lucene只是一個框架,且比較複雜,要充分利用它的功能,需要在其基礎上進行擴充套件開發,因此有了Solr和Elasticsearch。

下圖是Google Trend中兩個搜尋應用的趨勢分析,可以看出在實時搜尋領域,近幾年Elasticsearch的熱度已經超過了Solr,因為在實時搜尋領域Elasticsearch的效果要好於Solr,但是不得不提的是Solr在現有資料的基礎上進行查詢搜尋的速度會更快一些。

目前,Elastic 已經宣佈與阿里雲建立長期合作和戰略伙伴關係。未來阿里雲Elasticsearch將會相容開源 Elasticsearch 的功能,以及Security、Machine Learning、Graph、APM 等商業功能,致力於資料分析、資料搜尋等場景服務,與Elastic合作,共同為客戶提供企業級許可權管控、安全監控告警、自動報表生成等場景服務。

(三)為什麼需要 MaxCompute+實時搜尋

二、What:應用場景

當前,實時搜尋的主要應用場景有三個:

1.日誌和指標分析(Log/Indicator Analysis);
2.安全(Security);
3.站內檢索(WebHosting)。

其場景的應用邏輯如下面三張圖所示:

三、How:最佳實踐

最佳實踐主要包括資料整合和資料監控兩部分,其中資料整合指的是MaxCompute和Elasticsearch兩個元件之間怎麼做資料互動。

(一)資料整合

下圖是一個線上教育的案例,該案例大的背景是要監控企業內部包括使用者的C端產生的日誌,還有內部的服務端產生的日誌,它由MaxCompute做資料的預分析,然後交由Elasticsearch做資料監控,其痛點主要有如下三點:

1.監控資料實時性要求高;
2.流量波動大,自建叢集投入成本高;
3.資料許可權粒度要求高。

對於以上痛點,一般通用的解決方案如上圖所示,包括資料採集和集中、資料ETL、資料分析和展現三部分,最後會得到如下圖所示的DashBoard。

MaxCompute和Elasticsearch之間的資料互動是非常重要的一部分,將MaxCompute的資料匯入Elasticsearch主要分為如下五步:

1.準備工作

建立DataWorks工作空間並開通MaxCompute服務,準備MaxCompute資料來源、建立阿里雲Elasticsearch例項。

2.步驟一:購買並建立獨享資源組

購買並建立一個資料整合獨享資源組,併為該資源組繫結專有網路和工作空間,獨享資源組可以保障資料快速、穩定地傳輸。

3.步驟二:新增資料來源

將MaxCompute和Elasticsearch資料來源接入DataWorks的資料整合服務中。

4.步驟三:配置並執行資料同步任務

配置一個資料同步的指令碼,將資料整合系統同步成功的資料儲存到Elasticsearch中,然後將獨享資源組作為一個可以執行任務的資源,註冊到DataWorks的資料整合服務中,這個資源組將獲取資料來源的資料,並執行將資料寫入Elasticsearch中的任務(該任務將有資料整合系統統一下發)。

5.步驟四:驗證資料同步結果
在Kibana控制檯中,檢視同步成功的資料,並按條件查詢資料。

(二)資料監控

經過上面的步驟,資料已經匯入了Elasticsearch,我們做資料監控主要有如下兩步:

1.使用Kibana的discover,view,dashboard和其他物件來檢視這些資料。

2.通過匯入預先準備好的Kibana物件,可以統一顯示直播資料。

 

原文連結

本文為阿里雲原創內容,未經允許不得轉載。

相關文章