天天看點

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

一、Why:概述與價值

(一)MaxCompute

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

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

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

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等等,具體如下圖所示。

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

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

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

(二)Elasticsearch

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

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

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

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

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

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

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

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

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

二、What:應用場景

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

1.日志和名額分析(Log/Indicator Analysis);

2.安全(Security);

3.站内檢索(WebHosting)。

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

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

三、How:最佳實踐

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

(一)資料內建

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

1.監控資料實時性要求高;

2.流量波動大,自建叢集投入成本高;

3.資料權限粒度要求高。

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

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

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

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和其他對象來檢視這些資料。

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

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

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

繼續閱讀