持續定義 Saas 模式雲資料倉儲+實時搜尋
一、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物件,可以統一顯示直播資料。
本文為阿里雲原創內容,未經允許不得轉載。
相關文章
- SaaS 模式雲資料倉儲 MaxCompute 資料安全最佳實踐模式
- SaaS模式雲資料倉儲MaxCompute企業級安全能力升級模式
- 實時數倉-持續更新
- 構建實時資料倉儲首選,雲原生資料倉儲AnalyticDB for MySQL技術解密MySql解密
- 離線實時一體化數倉與湖倉一體—雲原生大資料平臺的持續演進大資料
- 到底什麼是實時資料倉儲?
- Oracle資料倉儲的實時資料採集XSOracle
- 雲端資料倉儲的模式選型與建設模式
- 【Elasticsearch學習】DSL搜尋大全(持續更新中)Elasticsearch
- abp(net core)+easyui+efcore倉儲系統——定義倉儲並實現 (四)UI
- 《Greenplum構建實時資料倉儲實踐》簡介
- 海量資料搜尋---搜尋引擎
- 百度搜尋大資料:海外疫情持續擴散 “回國”相關內容搜尋熱度飆升100%大資料
- .NET Core MongoDB資料倉儲和工作單元模式實操MongoDB模式
- 資料倉儲上雲那些事兒
- 基於 Kafka 的實時數倉在搜尋的實踐應用Kafka
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- 演算法之搜尋(Java版)-持續更新補充演算法Java
- 雲資料建模:為資料倉儲設計資料庫資料庫
- 直播開發app,實時搜尋、搜尋引擎框APP
- 用Rust 實現的現代化實時開源資料倉儲Rust
- 華為雲企業級資料倉儲DWS
- 聽HashData CEO暢談雲原生資料倉儲
- 一個簡化、落地的實時資料倉儲解決方案
- 海量資料搜尋---demo展示百度、谷歌搜尋引擎的實現谷歌
- SaaS行業持續升溫,這裡有你想了解的SaaS雲服務優勢行業
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- tiktok商品搜尋資料
- layui資料表格搜尋UI
- Reddit採集API reddit文章評論和搜尋 實時資料介面API
- 億級搜尋系統的基石,如何保障實時資料質量?
- 前端實時搜尋框模擬前端
- 資料倉儲 - ER模型模型
- [數倉]資料倉儲設計方案
- 大資料時代,資料倉儲究竟是幹嘛的?大資料
- EF Core 倉儲模式模式
- 推薦免費 CDN 、雲端儲存和搜尋
- GitHub 倉庫專案搜尋技巧Github