亞馬遜云科技實時數倉相關產品的特點和優勢
近年來,各級政府和企業響應數字化轉型的號召,都已開始或者即將開始數字化轉型。各類企業通過前期的業務線上化、信息化,積累了大量數據,而數字化轉型就是要聚合這些數據,進行深入挖掘分析,用數據來驅動業務,用數據來支撐決策、用數據來推動業務和商業模式創新、推動業務流程優化,進而實現降本增效。
要實現數據價值,建設數據倉庫是在數字化轉型過程中不得不面對的一項任務。數據倉庫匯聚各個業務部門數據,避免數據孤島,使數據真正成為整個企業的數據,而不是某個部門的數據。
數據倉庫的技術架構包括離線數倉和實時數倉或準實時數倉。離線數倉已發展多年,當前已無法完全滿足企業在競爭中脫穎而出的發展需求,實時數倉越來越多成為企業建設數據倉庫的首選。然而由于實時數倉對實時性的嚴格要求,實現實時數倉的技術難度遠遠大于離線數倉,一些現有的實時數倉架構,只能實現準實時,而且無法解決削峰平谷、無感擴展等問題。
本文為大家提供一種高效的實時數倉架構:基于亞馬遜云科技 Serverless 架構的實時數倉架構。
實時數倉常見場景與亞馬遜云科技的做法賞析
我們先來賞析一下常見的實時數倉場景,以及亞馬遜云科技Serverless架構的實時數倉成功落地的案例:
1、APP 埋點數據實時采集與分析(比如:實時智能推薦、實時欺詐檢測)
在此,我們以智能推薦場景為例:根據用戶歷史的購買或瀏覽行為,通過推薦算法預測用戶興趣與需要,并從海量推薦資產(可能是短視頻、廣告、動圖)中挑選最合適的進行推送。推薦系統在飛速發展,對時延的要求也越來越苛刻和實時化。往往業務方希望客戶在使用App(或瀏覽網頁)時,就能基于當前行為和歷史數據進行動態推薦。
數據來源一般為App埋點采集和歷史瀏覽數據、消費數據、和廣告資產等。
常見做法:流式ETL與數據同步與傳輸可能會用到Flume、Kafka等工具,計算有可能會采用ClickHouse、Flink、Spark等大數據計算工具。數據源端和數據消費端就五花八門一些,在此不作展開。(同樣的技術架構也出現在實時欺詐檢測等場景中)
我們來看一下亞馬遜云科技的案例:使用 Amazon Kinesis Data Streams (流式數據接入產品,AmazonKDS)實時接入 APP 埋點數據到 AmazonRedshift(云原生數據倉庫) 中,用于指標分析和 BI 展現。支持高達30萬/秒的數據攝入速率,延遲小于10秒;在數據實時攝入數倉的同時,支持高并發實時查詢,支持大寬表多表關聯,復雜聚合等各種 SQL 查詢,查詢結果秒級響應。
圖1 實時數倉架構--APP 埋點數據實時采集與分析
2、RDBMS CDC+KDS+Amazon Redshift Serverless(實時BI報表、復雜事件處理)
在這個案例中,主要采集源頭日志數據和 RDS 結構化數據的變更數據動態捕獲(Change Data Capture,CDC)。這是一個數據倉庫非常常見的需求,外部數據庫系統(賬戶、存款、制造、人力資源等)作為數據源時,業務團隊需求需要CDC日志數據動態接入數據倉庫,實現實時的分析需求,比如實時BI報表、復雜事件處理(應急響應)。
CDC日志數據通過Amazon Kinesis 實時發送到 Amazon KDS,經過流處理后,結果寫入 RDS,并提供 API 的方式供第三方查詢。同時,Amazon Redshift可以直接消費 Kinesis 數據,用于查詢分析,整體延遲小于30秒。
CDC日志采集方式支持多種,包括 Amazon DMS、Debezium、Flink CDC、Canal 等,采集數據寫入Kinesis后,接著使用 Amazon Redshift StreamingIngestion 功能將CDC數據實時寫入 AmazonRedshift。?
圖2 實時數倉--RDBMSCDC+KDS+Amazon Redshift Serverless
經典解決方案—借助Amazon Redshift打造云原生數倉
在繼續開展下文前,需要介紹一個無法繞過的產品——Amazon Redshift ,一種快速、可擴展、安全且完全托管的云數據倉庫,可以幫助用戶通過標準 SQL 語言簡單、經濟地分析各類數據。
無論是構建傳統數據倉庫架構還是實時數倉架構,借助Amazon Redshift用戶都可以一站式的進行部署。相比其他云數據倉庫,Amazon Redshift 可實現高達三倍的性能價格比。數萬家客戶正在借助Amazon Redshift 每天處理 EB 級別的數據,借此為高性能商業智能(BI)報表、儀表板應用、數據探索、實時分析和等分析工作負載以及機器學習、數據挖掘提供強大動力。Amazon Redshift支持ACID事務特性、ANSI SQL標準、JDBC/ODBC 連接協議的 MPP 架構列式存儲數據倉庫。Amazon Redshift 不僅可以基于自身內部表進行數據分析,還可以查詢 Amazon S3 中的數據,S3 是一項具備極致彈性的對象存儲,它已經成為了云上數據湖事實上的標準,既可以存儲結構化數據,也可以是半結構化數據、非結構化數據。Redshift與S3 可以無縫結合,實現智能湖倉架構。?
圖3 Amazon Redshift Serverless 架構
實時數倉架構要解決的問題
良好的實時數倉架構,可以解決以下四方面的問題:數據實時接入、數據實時分析、數據實時輸出。
- 數據實時接入:數據倉庫主要用來存儲來自各個業務系統的數據。實時數倉的第一步,就是要解決數據如何實時進入數據倉庫的問題。
- 數據實時分析:實時接入的數據,要能夠立即可用,滿足即席查詢、報表分析和挖掘預測的需求,數據準,延遲低。
- 數據實時輸出:數據實時分析的結果,要能夠及時進行 BI 報表展現、及時以數據服務的形式提供給第三方。
- 實時數倉智能化:數據分析解決的是過去發生了什么,數倉智能化要解決的是未來要發生什么。讓實時數倉具備機器學習、智能預測能力,是實現智能湖倉的必備功能。
Serverless 架構不僅彌補了傳統離線數倉的不足,而且完美解決了上述四方面的問題,先看下整體實時數倉架構圖:
圖4 亞馬遜云科技 Serverless實時數倉架構圖
Serverless 實時數倉架構采用 Amazon KDS(Amazon Kinesis Data Streams) + Amazon RedshiftServerless+Redshift ML+S3 技術產品組合,KDS 負責數據的實時接入,Redshift Serverless+Redshift ML+S3 負責"智能湖倉"的落地,實現數據實時分析、實時輸出、實時預測。同時,RedshiftServerless 架構,運維簡單,按需計費,降本增效,將客戶從紛繁復雜的架構搭建、監控、運維中解放出來,專注于數據查詢分析,數據價值挖掘,實現數據驅動決策。
- 數據實時接入:接入的數據,可以分為三大類:結構化數據(數據庫數據)、半結構化數據(Json、CSV數據)和非結構化數據(圖片視頻數據)。對于源自數據庫的結構化數據,通用的實時接入方式是使用 CDC 技術增量接入。在亞馬遜云科技實時數倉架構中,采用Amazon DMS產品接入CDC數據到Amazon KDS。Amazon DMS支持同構遷移、不同數據庫平臺之間的異構遷移和CDC數據接入,可以從任何支持的源中將數據低延遲、持續地復制到任何支持的目標。此外,利用 Amazon Redshift 流式攝取功能可以將 Kinesis 中的數據以極低延遲攝取到 Amazon Redshift 中。
圖5 Amazon Database Migration Service (AmazonDMS) 遷移數據到智能湖倉
對于非結構化數據,傳統實時接入方式是掃描指定目錄,將新增文件寫入文件系統(HDFS、Amazon S3 等),然后開發程序解析文件,寫入數據庫表中。然而,采用亞馬遜云科技提供的 DMS+S3+Redshift 方式,無需開發數據解析程序,只需通過簡單的配置,即可實現數據入寫 S3,Redshift 可與 S3 完美集成,即數據進入 S3,即可在 Redshift 中查詢分析。
- 數據實時分析:數據的實時分析,由 Amazon Redshift Serverless 提供,智能湖倉的各個分層都創建在 Redshift 數據庫中,使用 SQL 語句做數倉指標計算,采用 ETL 工具調度指標計算任務,兼容開源 ETL 工具,也可以使用亞馬遜的 ETL 工具。
- 數據實時輸出:AmazonRedshift 支持 JDBC 協議,可以作為各類 BI 報表產品的數據源,實現數據的實時輸出;Amazon Redshift Data API 可以將數據以 API 的方式提供給第三方,Amazon Redshift Data API 不需要與集群的持久連接。提供了安全 HTTP 終端節點以及與亞馬遜云科技開發工具包的集成。使用終端節點運行SQL 語句,無需管理連接。對 Data API 的調用是異步的。
圖6 Amazon Redshift Data API?
- AmazonRedshift 實時數倉+ML:為實時數倉增加機器學習和人工智能的能力,是大多數企業在建設實時數倉過程中面臨的一個難題,主要問題在于:1、機器學習的門檻高;2、機器學習開發人員招聘困難。Amazon Redshift實時數倉架構利用 Amazon RedshiftML 產品解決了上述難點,大大降低了建設智能湖倉的難度。Amazon Redshift ML 使 SQL 用戶可以輕松地使用熟悉的 SQL 命令創建、訓練和部署機器學習模型。通過使用 Amazon Redshift ML,可以使用 Redshift 集群中的數據來通過 Amazon SageMaker 訓練模型。隨后,模型將會本地化,并可在Amazon Redshift 數據庫中進行預測。借助 Amazon Redshift ML,無需移動數據或學習新技能,即可利用 Amazon SageMaker 這種完全托管的機器學習服務。借助Amazon SageMaker 提供支持的Amazon Redshift ML,使用 SQL 語句從 Amazon Redshift 中的數據創建和訓練機器學習模型,然后將這些模型用于多種使用案例場景,例如直接在查詢和 BI 報表中進行流失預測和欺詐風險評分。用寫 SQL 語句的方式,開發機器學習功能,底層各種機器學習算法的復雜性,交由 Amazon Redshift ML 解決,客戶可以將更多的精力專注在業務上面。
圖7 Amazon Redshift 實時數倉+ML
Serverless 實時數倉架構的優勢
成熟的技術架構,可以大大降低企業的人力和財力成本。傳統的實時數倉架構(采用托管服務器的方式),無法實現削峰平谷。以電商行業為例,實時數倉架構的服務器資源,必須能夠應對數據高峰(各類大型活動、促銷與其他不可預測的工作負載)帶來的壓力,所以硬件采購往往是按資源峰值采購的,結果是大部分資源在大部分時間都是閑置的,無形提高了企業成本;傳統實時數倉架構,無法實現無感擴展,即服務器集群節點的增加和減少,會增加運維人員工作量,可能會帶來業務的暫停。總的來說,Serverless 實時數倉架構的優勢包括如下幾點:
1. Serverless 實時數倉架構讓數據倉庫優雅的具備實時數據分析能力(實時 OLAP 看板,實時業務監測);
2. Serverless 實時數倉架構讓實時智能分析成為可能(基于實時數據與歷史數據的實時風控/實時推薦/實時機器學習);
3. 亞馬遜云科技提供了云上實時數倉搭建最全面的功能組件,讓用戶可以敏捷,高效,低成本的構建自己的實時數倉;
4. 使用 Serverless 實時數倉云平臺,自動擁有削峰平谷、無感擴展、運維簡單、易于使用等優勢。
10月亞馬遜云科技中國峰會《智能湖倉 統一分析》 分論壇上,將首次揭秘智能湖倉2.0, 講述如何打破數據孤島,跨數據庫、數據湖、數據分析和機器學習,釋放數據價值,助力企業更好做出決策。
感興趣的朋友可以點擊下方鏈接或掃描海報上二維碼報名參會!