1、StarRocks湖倉融合的四種范式演講:趙恒StarRocksPMC 2023 CONTENTS錄為什么需要湖倉融合湖倉融合的難點StarRocks湖倉融合的四種范式StarRocks 3.0 預覽為什么需要湖倉融合01什么是數據湖什么是數據湖?云商:基于對象存儲S3/OSS/COS構建的統存儲互聯公司:持Upsert,Time travel等級特性的存儲(Iceberg/Hudi/Delta lake)傳統戶:能夠存儲所有結構化、半結構、結構數據為什么要數據湖?更低的存儲成本,更可靠性:從HDFS 到對象存儲更好的Table format:持ACID事務,持Schema evolution
2、更好的File format:持半結構化map、Struct、Json,持嵌套結構。統的Catalog:統元數據管理、權限管理、統計信息管理、湖管理為什么要在湖上建倉為什么湖上建倉(OLAP)?數倉加速:基于數據湖的遠程IO成本,早期的數據湖格式不成熟,索引不完善,查詢性能需要提升,數據湖的底座針對吞吐優化,關注低成本和可靠,不適應性能需求。實時分析:基于數據湖的存儲實時性不夠,法解決秒級實效性的問題并發查詢:對于并發查詢,我們需要降低數據的掃描量,種是聚合類查詢需要通過預計算的段來提并發,種是點查需要有細粒度的數據裁剪和索引優化來提升。引OLAP的問題?數據的導是個復雜問題,不僅僅是數據成本
3、的上升,也讓管理成本成倍增長如何維護數據和元數據致性OLAP對AI等需要開放的底層件格式的業務不夠友好為什么要湖倉融合?簡化技術架構,降低運維成本Single Source of Truth:只有份數據,基于相同的數據來計算有湖倉融合的數據底座才可能做統的上層數據治理Lakehouse 分層與StarRocksStarRocks From OLAP to Lakehouse湖倉融合的難點02湖和倉的差異 Catalog 和建表都有類似的Catalog層次結構 Catalog database table建表語句和數據分布上有差異StarRocksHiveIcebergHudiDelta lak
4、e分區式表達式分/隱式分區多級范圍分區表達式分區/隱式分區多級范圍分區分桶式hash排序式orderorderorder/zorderorderCluster by湖和倉的差異 Table formatTable Format 對 Copy on write/Merge on read Delete and insert(Merge on write)對Merge-on-read:避免sort merge的開銷,不存在頻繁寫下讀放的問題 對 Copy-on-write:避免過多的寫放 對 Delta store:能夠充分利級索引StarRocks 可以補充數據湖上秒級實時性的場景湖倉融合需要讓
5、數據湖有更好的實時性StarRocks IcebergHudiDelta lakeCopy on writeYYMerge on readYYYYDelete and insertYStarRocks as Lakehouse性能的差異本地IO和遠程IO:通過Local cache加速File Format:數據類型:Json/Struct/Map,持bitmap/Hll,Fast Decimal 索引:聚簇索引和級索引數據分布 持 colocated join,colocated aggregation hash 分布可以進步裁減提升點查性能查詢引擎 向量化引擎的MPP執框架 Query c
6、ache 統計信息 湖上統計信息還較基礎,SR提供ndv ngram等復雜統計信息湖倉融合讓戶不做數據導獲得和數倉樣的性能StarRocks湖倉融合的四種范式03湖倉融合1:數據湖查詢加速湖倉融合2:湖倉分層建模湖倉融合3:實時數倉與數據湖融合湖倉融合4:StarRocks 3.0 云原湖倉湖倉融合種模式的總結數據湖存儲格式 數倉存儲格式 讀寫流程適場景數據湖查詢加速Hive/Iceberg formatLocal cache for Hive/Iceberg數據直接湖 StarRocks加速查詢數據湖 Adhoc加速湖倉分層建模Hive/Iceberg formatMV using Star
7、Rocks format數據直接湖 StarRocks并發低延遲 報表實時數倉與數據湖融合Hive/Iceberg formatStarRocks format數據寫StarRocks 異步刷新到湖實時場景并且有數據湖基礎設施StarRocks 3.0 云原湖倉StarRocks formatStarRocks format數據寫StarRocks 站式的Lakehouse案StarRocks 3.0 存算分離04StarRocks 1.0-2.001向量化引擎發布1.0.0-rc1 2020.9.4CBO 發布向量化導開啟Hive外表1.162021.6.18Global runtime f
8、ilterPrimary keyStarRocks外表寫1.192021.10.25低基數全局字典復雜表達式下推新內存統計框架2.0.0-GA2022.1.4Lateral Join 持FastDecimal發布Tableau兼容性提升 源代碼開放1.182021.8.25Bitmap性能優化 1000列 10TB穩定導TopN優化1.172021.7.13StarRocks 2.0-3.001Iceberg外表發布Pipeline引擎發布單表性能進步提升(索引,次scan,cache)2.1.02022.2.24資源組管理Java UDFJSON類型主鍵模型部分列更新2.2.02022.5.
9、22Local cache for data lakeQuery cache for high concurrencyHudi&Iceberg MOR外表 Map/Struct 類型持Lambda表達式2.5.02023.01存算分離版本發布完整的RBAC持簡化分區創建語法持完整的Update語法持算落盤3.02023.03多表物化視圖統計信息完善,直圖等Compute node on k8s存算分離alpha2.4.02022.10JDBC外表 全新數據源 Connector 框架 持創建外部數據錄(Catalog)主鍵模型完善,持索引落盤2.3.02022.7.1StarRocks 3.0
10、 存算分離和StarOS云原架構降低存儲成本,增加計算彈性StarRocks 3.0 存算分離和StarOS為什么要存算分離?計算和存儲的增長并不匹配,隨著數據量變,不便擴展計算的變化彈性很,尤其對于Adhoc場景下計算集群彈性會很持多集群能,把不同的負載分配到不同的集群上需要適配云原的架構,充分利云上的池化資源能StarRocks的存算分離有什么特?StarRocks的存算分離基于StarOS,有良好的架構設計,StarOS定位個通的云原基礎架構,讓各種應能夠快速的獲得云原的能我們的存算分離既能持云上的基礎設施(對象存儲)也能持建的傳統基礎設施(HDFS),既可以在云上部署,也可以在本地部署
11、。StarRocks的存算分離可以解決之前云原數倉中實時問題解決不好的困難。讓實時的數據和可以在底層的湖上做統管理StarRocks 存算分離的價值:降低存儲成本StarRocks 存算分離的價值:資源隔離StarRocks 存算分離的價值:Multi-AZStarRocks 存算分離的價值:Multi-cluster和彈性StarRocks 3.0 存算分離和StarOS當前能優化向 StarRocks 存算分離,持PK表的所有功能表級別的TTL和單副本,故障動恢復,降低總體持有成本,適合解決志分析場景的降本 多集群持,增強彈性能 Local LogStore、FileStore,統架構 實現完整的Primary key存算分離 FE存算分離,提升橫向擴展能Cache 預熱后,與存算體查詢性能接近 AWS m5.2xlarge 8vCPU,32GB Bandwith 10Gbps.感謝您的觀看演講:趙恒StarRocksPMC THANKS