《幸福里基于 Flink&Paimon 的流式數倉實踐.pdf》由會員分享,可在線閱讀,更多相關《幸福里基于 Flink&Paimon 的流式數倉實踐.pdf(26頁珍藏版)》請在三個皮匠報告上搜索。
1、幸福里基于 Flink&Paimon 的流式數倉實踐李國君字節跳動基礎架構工程師Streaming lakehouse meetup背景0101CONTENT目錄 0202流式數倉實踐0303調優0404未來規劃01背景業務背景以工單系統工單系統為例:1.經紀人完成一次帶看,在系統提交工單2.門店經理審核工單3.以上兩條數據更新到業務庫,業務庫的 Binlog 數據進入實時數倉4.數倉結果產生數據報表,或用于考核系統實時數倉建模特點準確性要求準確性要求 100%100%與考核,獎勵掛鉤。要求數據不丟不重全量計算全量計算增量數據在 MQ 留存時間有限,需要拿到全量數據 view 進行計算業務實時
2、數倉 Pipeline準確性要求準確性要求 100%100%:狀態維護全量數據全量計算:全量計算:每一層消費MQ MQ 實時增量數據+Hive Hive 離線全量數據01 01 開發復雜度高開發復雜度高痛點分析-開發復雜度高select col1,col2,.FROM (select*,row_number()over(partition by someKey order by biz_time DESC,nanotime DESC)as rn from table AS t1)as t1where rn=1select col1,col2,nanoTime()as ts from table
3、代價代價需要額外額外處理數據重復重復引入非確定性計算非確定性計算原因原因存儲異構存儲異構,Base+Delta 數據難對齊代價代價數據排查排查&驗證驗證需要額外 dump hive數據訂正訂正難原因原因數據訂正產生結果回退結果回退暴露給用戶血緣關系血緣關系復雜且由人為維護02 02 運維成本高運維成本高痛點分析-運維成本高-代價代價存儲、計算資源開銷資源開銷大作業恢復慢恢復慢原因原因去重算子維護全量數據狀態全量數據狀態級聯 Join 狀態重復狀態重復03 03 狀態大狀態大痛點分析-狀態大貢獻 30%狀態量為什么選擇Paimon原始鏈路問題1.1.存儲異構,存儲異構,Base+Delta 數據
4、難對齊2.去重引入非確定性計算非確定性計算和大狀態大狀態3.3.血緣關系血緣關系復雜&數據訂正結果回退結果回退暴露給用戶Paimon1.1.流批一體存儲流批一體存儲2.2.不需要去重不需要去重,changelog producer 代替狀態算子3.3.血緣管理血緣管理&數據一致性管理數據一致性管理,支持無感知數據訂正02 流式數倉實踐架構設計流批一體存儲流批一體存儲統一的 Table 抽象支持高效的流/批訪問流批一體計算引擎流批一體計算引擎用 Flink 統一 Streaming/Batch/MPP 計算血緣信息管理血緣信息管理為數據質量管理提供基礎數據致性管理流批體 ETL 數據管理業務流式
5、數倉Pipeline流批一體存儲流批一體存儲流批一體計算流批一體計算中間結果可查中間結果可查收益簡化開發流程流批一體存儲解決實時離線存儲異構減少業務入侵移除去重算子解決非確定性計算減少狀態量Changelog 持久化減少 30%狀態量提升運維體驗中間數據可查血緣關系&多表一致性增強多表關聯調試能力數據訂正無感知數據可追溯問題45數據新鮮度差小文件問題端到端延遲:秒級-分鐘級影響讀寫性能4503 調優端到端延遲調優-數據可見性&Checkpoint結論:數據可見性與 Checkpoint 綁定Checkpoint 周期=Checkpoint interval+Checkpoint latency
6、Paimon 流寫 Pipeline1.Writer 生成數據文件,但不對外可見2.Checkpoint commit 階段:Commiter 生成 snapshot,數據對外可見解決非確定性計算解決非確定性計算端到端延遲調優-調小Checkpoint Interval過于頻繁的 Checkpoint 會影響寫入性能小文件Compaction 代價變高結論:Checkpoint interval 設置為 1-2min 比較合適4545端到端延遲調優-Checkpoint Latency 優化Log-Based 增量 Checkpoint減小狀態量Checkpoint 持續上傳搭建獨立 HDFS
7、 集群減少遇到慢節點概率持續上傳本地狀態文件持續上傳 Checkpoint 的增量 changelog減少上傳數據量結論:端到端延遲 1min+解決非確定性計算解決非確定性計算小文件問題小文件小文件明顯小于 HDFS 上 block 大小的文件文件數量多-更多 block-更多更多 IOIO影響影響穩定性變差降低查詢效率資源浪費解決非確定性計算解決非確定性計算小文件優化影響因素影響因素文件生成文件生成Checkpoint intervalWriteBuffer 大小文件劃分文件劃分數據量大小Key 的設置:熱 key 問題文件清理文件清理Compaction 觸發條件Snapshot 過期條件
8、-解決非確定性計算解決非確定性計算小文件優化影響因素影響因素參數屬性參數屬性參數參數推薦設置推薦設置Checkpoint intervalFlinkexecution.checkpointing.interval1-2minWriteBuffer 大小Paimonwrite-buffer-size使用默認值數據量Paimonbucket單個 Bucket 文件大小在 1G 左右比較合適熱 key 問題Paimonbucket-keypartition根據業務數據設置Compaction 管理Paimonnum-sorted-paction-triggernum-sorted-run.stop-
9、trigger使用默認值Snapshot 管理Paimonsnapshot.num-retained.maxsnapshot.num-retained.minsnapshot.time-retained使用默認值解決非確定性計算解決非確定性計算整體指標對比原有實時數倉鏈路原有實時數倉鏈路流式數倉鏈路流式數倉鏈路端到端延遲端到端延遲1 1-2min(2min(開開 minimini-batch)batch)1 1-2min2min數據排查時效性數據排查時效性小時級小時級分鐘級分鐘級狀態量狀態量節省約節省約 30%30%開發周期開發周期縮短約縮短約 50%50%04 未來規劃Embeded Log SystemEmbeded Log System數據可見性與數據可見性與 Checkpoint Checkpoint 解綁解綁秒級端到端延遲秒級端到端延遲血緣關系管理血緣關系管理數據訂正能力增強數據訂正能力增強Join Join 狀態復用狀態復用中間狀態可查中間狀態可查數據一致性管理數據一致性管理狀態復用狀態復用未來規劃建立監控建立監控體系體系指標可觀測指標可觀測監控運維監控運維ThanksStreaming lakehouse meetup