《数据湖超车道: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:/