基於FLINK搭建實時數倉技術調研

2021-10-21 17:38:33 字數 1395 閱讀 6728

____資料倉儲(data warehouse),是做大資料基本都會去涉及的專案。簡單來說,數倉是資料結構化儲存和查詢,並利用分布式計算引擎進行計算得到業務需要的指標,以支援企業商業智慧型,通過充分挖掘資料價值,形成資料資產。

____傳統的資料倉儲偏離線處理,通過定時排程實現資料的etl,指標的更新依賴於排程的頻率,常見於t+1場景。對於時效性要求較高的指標,則依賴於olap系統實現資料實時加工和查詢,市面上常用的olap資料庫有:kylin、druid.io、clickhouse、greenpulm、dorisdb、es等,目前公司採用的olap技術方案為:kafka+flink+druid.io

____但是隨著業務的發展,olap系統裡的資料表越來越多,統計sql和指標數量成**式增長,以前很清晰的建表方式也越來越模糊。為系統化的對實時指標進行管理,個人調研了數倉的方式,針對olap中的表進行ods、dwd、dws、ads維度建模。同時個人採用了oltp資料庫,通過oltp和olap的結合,實現指標分鐘級、秒級更新,同時保留較強的實時分析能力。具體方式如下:

個人對oltp資料庫的技術選型考慮點如下:

支援sql,能滿足數倉建模需要滿足acid特性,資料要麼寫失敗要麼寫成功,成功後立即可查具有cdc機制,以實現資料增量訂閱並觸發實時計算讀寫效能滿足大資料量場景

經篩選,目前newsql資料庫比較符合需要,例如tidb和cockroachdb等。tidb很強大,支援htap,直接搞定oltp和olap,但是由於目前公司已實現olap流程,故考慮採用cockroachdb這樣的oltp資料庫就行。

按照維度建模理論,架構如下:

說明: 資料處理和管道使用flink,沒啥說的。儲存ods層支援oltp資料庫、olap資料庫、kafka,具體咋存按使用需要。dws層的維表、大寬表通過管道同步至olap資料庫,然後可以在olap上用統計sql查詢需要的指標,這充分利用了olap資料庫的分析能力,同時部分指標儲存在ads層以支援秒級更新。
利用oltp資料庫cdc機制,etl流程也比較簡單:

說明: 乙個完整etl任務最多需要執行4個flink job,每個flink job只需要關心從kafka上讀,並寫入oltp資料庫就行,比較簡單。這裡的source需要實現dynamictablesource, sink需要實現jdbcupserttablesink.
經過1個月的技術調研和測試環境執行測試,目前實時數倉已正式上線使用,在滿足指標實時更新的同時,也保留傳統數倉建模的方式。剩下的就是原統計sql和指標的環境遷移了^^!

基於 Flink 的實時數倉生產實踐

資料倉儲的建設是 資料智慧型 必不可少的一環,也是大規模資料應用中必然面臨的挑戰。在智慧型商業中,資料的結果代表了使用者反饋 獲取資料的及時性尤為重要。快速獲取資料反饋能夠幫助公司更快地做出決策,更好地進行產品迭代,實時數倉在這一過程中起到了不可替代的作用。如何更好的建設實時數倉 有哪些優秀的生產實...

基於 Flink 的實時數倉生產實踐

基 tel13460277366id nnbtw988於 flink 的實時數倉生產實踐簡介 資料倉儲的建設是 資料智慧型 必不可少的一環,也是大規模資料應用中必然面臨的挑戰。在智慧型商業中,資料的結果代表了使用者反饋 獲取資料的及時性尤為重要。快速獲取資料反饋能夠幫助公司更快地做出決策,更好地進行...

實時數倉1

介紹 丟擲問題有脫機數倉了,做實時數倉,是否能兼顧到以前的指標體系,是不是可以直接替代?類似於畫像體系是否可以在此基礎上進行構建?實時數倉是否可以是實時平台的基礎?架構有沒有明確的定義?框架變化 儲存框架 框架優勢 劣勢mysql 事務查詢 儲存的效能瓶頸 elasticsearch 吞吐量大,快速...