天天看點

Hologres 資料導入/導出實踐|學習筆記

開發者學堂課程【《實時數倉入門課程》:Hologres 資料導入/導出實踐】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/807/detail/13891

Hologres 資料導入/導出實踐

内容簡介:

一、Hologres 生态

二、Hologres 實時讀寫接口介紹

三、Hologres 實時讀寫場景介紹

四、Demo 示範

五、常見問題和未來展望

Hologres 資料導入/導出實踐|學習筆記

Dataworks 資料內建支援輸入

l Mysql Binlog

l SQLServer CDC

l Oracle CDC

l PolarDB

l Kafka

l Datahub

(1)Hologres 實時讀寫實作原理

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

Hologres 資料導入/導出實踐|學習筆記

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 場景

Hologres 資料導入/導出實踐|學習筆記

(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 讀寫

相關連結

https://github.com/aliyun/alibabacloud-hologres-connectors https://github.com/hologres/holo-client