《數據湖超車道:StarRocks 如何借助物化視圖加速數據分析.pdf》由會員分享,可在線閱讀,更多相關《數據湖超車道:StarRocks 如何借助物化視圖加速數據分析.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、DataFunSummit#2023StarRocks 物化視圖:助數據湖分析王歡明-StarRocks-程師01StarRocks 數據湖分析02StarRocks 物化視圖03MV for LakeHouse04總結展望錄 CONTENTDataFunSummit#202301StarRocks 數據湖分析StarRocks 3.0 OverviewRealtime IngestionBatch Ingestion Dashboards BI Reports Ad-hoc Queries Data Apps Realtime LakehouseDataLake AnalyticsStarR
2、ocks+Data warehouseData lake=數據質量(Data quality)查詢性能(Performance)實時分析(Realtime)數據治理(Governance)開放態(Open)靈活統(Single source of truth)可擴展性(Scalability)性價(Cost efficiency)云原彈性擴展湖倉融合體化LakeHouseStarRocks LakeHouseCREATE EXTERNAL CATALOG PROPERTIES(type=“iceberg”,MetastoreParams,StorageCredentialParams,Meta
3、dataUpdateParams)持 Hive/Iceberg/Hudi/DeltaLake,直接分析湖上數據跨數據源(Catalog)聯邦分析內外表數據訪問統管理StarRocks LakeHouse-CatalogStarRocks ASTStarRocks Logic PlanParsePlanSQL Dialect持 Trino SQL 的關鍵字、語法、函數轉義等Trino SQL 轉換為 StarRocks AST,并成執計劃set sql_dialect=“trino”啟StarRocks LakeHouse-Trino 兼容極速數據湖分析挑戰 不同件格式、不同存儲系統 IO 特征
4、不同 數據組織,件、Row group 設置不合理 IO 延遲,法利 Page cache 加速StarRocks LakeHouse-極速查詢性能極速數據湖分析挑戰 不同件格式、不同存儲系統 IO 特征不同 數據組織,件、Row group 設置不合理 IO 延遲,法利 Page cache 加速 關鍵技術 Local Block Cache:Disk+Memory IO 合并,減少 IO 次數;Column 讀取合并-Row group 合并-整個件合并讀取 延遲物化,根據帶查詢條件的部分列過濾結果,讀取其他需要訪問的列,減少 IO 總量Iceberg、TPC-H 測試集、4x16c128
5、g 計算節點StarRocks 直接查詢數據湖 Trino 快35倍StarRocks LakeHouse-極速查詢性能StarRocks FESpark/Flink Compute engineCatalogTable formatFile formatStorageHMSIcebergParquetHDFSS3ORCHudiStarRocks FileGlue/DLFStarRocks TableStarRocks CN統開放的 Lakehouse 架構,分層解耦設計StarRocks 內表相數據湖提供更好的數據訪問優化、提供實時數據更新的能IndexBitmap/HLL TypeReal
6、time updatePartition/Bucketing/SortColocate StatisticsUnified catalogCBO Vector engineQuery cacheStarRocks LakeHouse-統開放DataFunSummit#202302StarRocks 物化視圖StarRocks Materialized View功能特性 Materialized:預計算 Partition:按時間分區,縮刷新粒度 Refresh:定時刷新/動刷新/動刷新 Resource Group:彈性調度,隔離作負載 Query:Aggregation/Join/Union
7、 Rewrite:優化器動查詢改寫 應場景 實時增量聚合:sum/distinct/hll/bitmap 數倉分層建模:Declarative Modeling 透明查詢加速 數據湖加速CREATE MATERIALIZED VIEW mv1PARTITION BY dtREFRESH EVERY(INTERVAL 1 HOUR)PROPERTIES(“resource_group”=“rg1”)AS SELECT c_city,count(*)FROM lineorder t1 JOIN customer t2 ON t1.lo_custkey=t2.c_custkey GROUP BY c
8、_cityODS(Hive/Hudi/Iceberg/Delta lake)DWDDWSADS固定報表OLAP 分析AD hoc助分析物化視圖分層建模物化視圖查詢加速外表物化視圖應場景ODS-DWD-DWS-ADS價值:動刷新,優化 ETL Pipeline關鍵技術多數據源持分區關系維護刷新任務調度資源隔離MV-數倉建模MV-數倉建模分區關聯:持內表、外表(Hive)動刷新事實表刷新:基表分區更新觸發對應 MV 分區更新維度表刷新:維度表刷新觸發整個 MV 刷新回刷歷史數據:通過 excluded_trigger_tables,auto_refresh_partitions_limit 控制回
9、刷為難點MV 刷新,如何與查詢負載隔離不同時效性的 MV,如何統調度解決案隔離技術:資源組軟性隔離;Warehouse 硬性隔離資源組default query:默認查詢資源組,優先級調度default mv:默認MV資源組,低優先級調度CPU 按時間調度,Memory Tracker+Disk Spill,IO 線程池隔離MV-彈性資源隔離應場景痛點:BI 報表不易修改 SQL,不易調優案:聲明物化視圖,優化器動改寫關鍵技術SPJG 改寫聚合上卷/表達式改寫Join 改寫MV-透明查詢加速改寫示例1:聚合上卷改寫 MV-透明查詢加速CREATE MATERIALIZED VIEW mv1 A
10、S SELECT lo_orderdate,c_city,count(*)FROM lineorder_flat GROUP BY lo_orderdate,c_city示例1:SELECT lo_orderdate,count(*)FROM lineorder_flatGROUP BY lo_orderdate示例2:SELECT c_city,count(*)FROM lineorder_flatGROUP BY c_city示例3:SELECT c_city,count(distinct c_region)FROM lineorder_flatGROUP BY c_city改寫示例2:寬
11、表 Join 改寫 MV-透明查詢加速CREATE MATERIALIZED VIEW mv1 AS SELECT lo_orderdate,c_city,count(*)FROM lineorder t1 LEFT JOIN customer t2 ON t1.lo_custkey=t2.c_custkey LEFT JOIN supplier t3 ON t1.lo_suppkey=t3.s_suppkey示例1:SELECT xxxxFROM lineorder t1LEFT JOIN customer t2ON t1.lo_custkey=t2.c_custkeyGROUP BY c_
12、city MV案例-實時精準去重挑戰實時看板,精確 count distinct個看板,維護量 Flink Job100 并發查詢、每天兩億新增數據案DWD 基于 bitmap 增量聚合 MVADS 基于 MV 做分鐘級刷新,向報表透明加速效果替換 Flink+Druid,幅降低資源成本、維護成本1分鐘數據新鮮度,模糊去重=精準去重Latency 3 秒=30 毫秒,100并發查詢ODS:明細數據DWD:增量聚合ADS:精準去重 MVMV 透明加速增量聚合MVDuplicate KeyDataFunSummit#202303MV for LakeHouse物化視圖構建MV for LakeHo
13、use物化視圖構建持復雜查詢嵌套物化視圖外表構建物化視圖物化視圖刷新分區級別細粒度刷新控制分區關聯關系動推導外表動刷新查詢動改寫聚合改寫Join 改寫外表查詢改寫Partition APartition BPartition CExternal Table APartition AExternal Table BPartition APartition BPartition CMV in StarRocksJOINAGGREGATION物化視圖構建MV for LakeHouse應案例:分層建模ODSPK:實時數據外表:明細歷史數據DWD外表物化視圖:清洗和預聚合刷新式:訂閱外表變更,動刷新D
14、WS物化視圖:分鐘級刷新,寬表加邏輯視圖:實時寬表ADS邏輯視圖:近實時業務報表業務價值:省去 ETL 任務;統開放存儲物化視圖構建MV for LakeHouse應案例:實時數據湖案Lake 實時聚合Iceberg 存儲明細數據StarRocks 實時增量聚合Lake 實時更新StarRocks PK 表做實時更新按 TTL 降冷到 Iceberg 存儲MV:寬表 Join+Aggregation業務價值:開放數據:SSOT 湖,其他引擎可查實時加:分攤資源使,優化資源利率實時查詢:StarRocks 查詢引擎+原存儲DataFunSummit#202304總結展望 SQL(數據應)StarRocks LakeHouseMVData lakeMessagequeueOLTP資源管理:利云原架構管理資源數據加:處理更多ETL負載實時鏈路:數據實時攝取、實時計算RealtimeRealtimeMV/ETL PipeLineOLAPETLStarRocks LakeHouse 展望End謝謝觀看THANKS FOR YOUR WATCHING公眾號:StarRocksStarRocks?StarRocksGitHub:https:/