開發者學堂課程【《實時數倉入門課程》:Hologres 資料導入/導出實踐】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/807/detail/13891Hologres 資料導入/導出實踐
内容簡介:
一、Hologres 生态
二、Hologres 實時讀寫接口介紹
三、Hologres 實時讀寫場景介紹
四、Demo 示範
五、常見問題和未來展望
Dataworks 資料內建支援輸入
l Mysql Binlog
l SQLServer CDC
l Oracle CDC
l PolarDB
l Kafka
l Datahub
(1)Hologres 實時讀寫實作原理
(2)Fixed Plan
l Insert into table values ()
l Insert into table values ()on conflict do update
l Select * from table where pk = XXX
l Delete from table where pk = XXX
l Log Stuctured Merge Teel(LSM)
l Append Only
l 全異步架構,協程(Coroutine)
(3)Holo-client
基于Jdbc實作,對讀寫holo最佳實踐的封裝,可以減輕資料內建開發工作量
資料寫入
l 攢批,基于 jdbc reWriteBatchedlInserts 的 實作原理
l 資料合并,相同主鍵的 INSERT/DELETE 在一個批次中會合并減少請求量
l 自動送出,支援基于批行數、批位元組大小和最長送出間隔自動送出
資料點查
l 提供異步點查接口
l QPS 高時自動轉入攢批模式
資料 Copy
l 提供并發 Copyln 的簡易接口
異常處理
l 對 holo 傳回異常歸類,正确在 holo 更新、擴容等場景下重試等待執行個體恢複
(1)實時寫入場景
l 行存&列存都支援
l 支援根據主鍵去重 (Exactly once)
l 支援整行資料局部更新
l 導入即可見,毫秒級延遲
l 單 Core 2W+ RPS (TPCH PartSupp 表)
l 性能随資源線性擴充
(2)實時寬表 Merge 場景
(3)實時維表 Join 場景
l 建議使用行存表
l Flink
l 替換 HBase
(4)Hologres Binlog 場景
l 實時消費 Hologres 單表的 Change log
l 支援Flink 的 CDC Source,能實作表的實時鏡像同步
l Flink+Hologres,實作 ODS 到 DWD 表的實時 ETL
l Flink 實時讀寫 Hologres Demo
五、常見問題及未來展望
(1)Flink Hologres Connector 常見問題
Q:作業啟動失敗,無法連接配接 Hologres
A: Hologres 執行個體需要與 Flink 叢集在同- Region ,且使用 VPC Endpoint
Q:實時寫入結果表資料不符合預期
A:通常是由回撤引起,需要正确設定 ignoreDelete 參數
Q:實時寫入性能慢
A:目前高 QPS 場景的列存表局部更新開銷較大,建議換成整行更新或者行存寫入
Q:維表查詢性能較差,且 Hologres 執行個體 CPU 負載高
A:通常是由于使用了列存表作為維表,建議切換至行存表
Q:實時消費 Binlog 報錯
A:通常是由于表沒有開啟 Binlog 導緻,需要重建表
(2)未來展望
l Flink One -To- Many 維表 Join
l 基于JDBC實時消費 Hologres Binlog
l Dataworks 資料內建實時消費 Hologres Binlog
l 無連接配接限制的 SQL 讀寫
相關連結
l
https://github.com/aliyun/alibabacloud-hologres-connectors https://github.com/hologres/holo-client