《基于RisingWave構建流式湖倉.pdf》由會員分享,可在線閱讀,更多相關《基于RisingWave構建流式湖倉.pdf(45頁珍藏版)》請在三個皮匠報告上搜索。
1、陳梓麟 RisngWave Labs基于RisingWave構建流式湖倉我介紹 陳梓麟(Dylan)RisingWave流數據庫內核研發(2022-now)阿云分布式數據庫PolarDB-X內核研發(2018-2022)主要作向:SQL查詢優化,分布式計算 RisingWave介紹和使場景 使RisingWave的基礎概念 RisingWave與流式湖倉 核技術內幕 未來與展望 Agenda什么是RisingWave Rust SQL first 分布式流數據庫 流處理增量計算 云原 存算分離什么是RisingWave什么是RisingWave-Ease-of-Use-Cost Efficie
2、ncyRisingWave架構RisingWave流數據庫同時提 供流處理能與Serving能使場景Streaming ETL 使場景Streaming Analytics Why RisingWave-易性強-PostgreSQL協議-需部署多套組件-可直接對接DBT,Dbeaver,Grafana等-低成本-存算分離-中間結果可查 RisingWave介紹和使場景 使RisingWave的基礎概念 RisingWave與流式湖倉 核技術內幕 未來與展望 AgendaRisingWave基礎概念RisingWave基礎概念Source-Source可以消費多種數據源數據-持多種Connect
3、or:Kafka,Pulsar,Kinesis-消息Encoding持AVRO,JSON,PROTOBUF,CSV,BYTES-可以便指定topic數據,及消費開始位置創建JSON格式的Kafka SourceRisingWave基礎概念Table 創建消費DEBEZIUM CDC數據的table-Table可以消費所有Source持的數據源-Table會物化數據到表中,例如CDC場景則需要使Table-Table可增刪改查-消息Encoding持:AVRO,JSON,PROTOBUF,CSV,BYTES-消息Format持:PLAIN,DEBEZIUM,CANAL,MAXWELL,UPSER
4、TRisingWave基礎概念Materialized View-Materialized View增量實時維護流處理結果-構建層級Streaming Pipeline-持豐富的SQL語法-如:Join,Agg,Filter,集合運算,窗函數,查詢,UDF,Grouping Sets,CTE,Lateral,Watermark-表達式:PG常表達式,Lambda表達式,半結構化數據處理函數使物化視圖實時增量計算告點擊率RisingWave基礎概念Sink-Sink可以發送數據到多種下游系統-持Connector:Iceberg,deltalake,Clickhose,Doris,Pulsar,
5、Kafka,JDBC,Redis,Cassandra,ElasticSearch-Sink的format持append-only,upsert,debezium-Sink的輸可以是Materialized View,或者是SQL創建Iceberg SinkRisingWave基礎概念Index-索引可以創建在表或者物化視圖上-加速Serving查詢能-持指定Include列,distributed列-持表達式索引-動索引選擇使索引加速物化視圖或表的查詢性能 RisingWave介紹和使場景 使RisingWave的基礎概念 RisingWave與流式湖倉 核技術內幕 未來與展望 Agenda什
6、么是LakeHouse-DataBricks 2021 ICDR-A data lakehouse is a data management system that combines the benefits of data lakes and data warehouses.什么是LakeHouse湖倉發展趨勢-云原-數據開放-數據實時-低成本-簡單易基于RisingWave構建流式湖倉-Realtime-Ease-of-Use-Cost Efficiency-Stream Processing-Open Format-High performance for analytics基于Risi
7、ngWave構建流式湖倉基于RisingWave構建流式湖倉-鏈路全實時-低成本-增量計算-ETL開發簡單-易運維現代的流處理開發體驗-DBT統管理pipeline-層級物化視圖-秒級實時-數據強致-實時查看Mv創建進度實時數據湖Iceberg寫Iceberg Sink-通過Create Sink語句即可將RisingWave數據流式寫Iceberg-持append only或upsert寫實時數據湖Iceberg寫-基于Iceberg V2提供的MOR模式寫-SinkWriter負責把數據流式寫Iceberg-當checkpoint barrier到達,flush出數據件-coordinat
8、or 將件commit寫iceberg metaIceberg Sink 歷史數據消費Iceberg讀Iceberg Source-通過Create Source語句映射Iceberg元信息到RisingWave-通過SQL進查詢或導數據RisingWave表中-通過Sink into table接實時數據源歷史數據消費Iceberg讀Iceberg Batch Read-Frontend獲取Iceberg表元信息-調度任務Compute-并讀取Iceberg數據件歷史數據消費Iceberg讀Pulsar Source with Iceberg-通過Create Source語句即可消費Pul
9、sar指定topic數據-同時可以通過Iceberg讀取Pulsar的歷史數據歷史數據消費Iceberg讀Pulsar Source with Iceberg RisingWave介紹和使場景 使RisingWave的基礎概念 RisingWave與流式湖倉 核技術內幕 未來與展望 Agenda核技術內幕SQL即流處理-簡單易(PG兼容)-查詢優化:-列裁剪,Filter下推-查詢解關聯-Join Ordering-Agg改寫-共享SubPlan-公共表達式提取-索引選擇-Streaming改寫-劃分Fragment-設置并度-調度執核技術內幕UDF-持Python,Java UDF Serv
10、er進定義流處邏輯-持Embedded Rust(WASM),Javascript,Python,SQL UDF核技術內幕執器-并發計算模型:Actor模型-Actor間傳遞消息通訊-Actor有獨狀態-Actor操作單線程完成,避免并發問題核技術內幕存算分離-分層Cache-Cost Efficiency-秒級故障恢復,彈性擴縮容-秒級Checkpoint-Serverless Compaction-向Streaming的存核技術內幕彈性擴縮容-每個Mv對應的Streaming Job,Fragment擁有獨并度-可以精確調整每個Fragment的并度-適應并度-秒級彈性擴縮,需狀態遷移核技
11、術內幕Queryable State-流處理內部狀態可查詢-可觀測性好,便問題定位排查及學習-Show Internal tables命令即可查看所有內部狀態-像查詢Table樣查詢狀態核技術內幕狀態復-Mv on Mv天然持狀態復-優化器動從Plan,View,CTE中識別可復狀態進復-特殊場景如Delta Join可利索引進狀態復核技術內幕Streaming JOIN-輕松應對多路Join-使對象存儲存放Join狀態-TB級別周期狀態管理-Join Ordering-持Temporal Join-持Interval Join利Watermark理清狀態核技術內幕Serving-Table,Materialized View均可查詢,索引加速查詢-持隔離Streaming與Serving的流量-強致讀核技術內幕數據訂正-持DML對Table進數據訂正-動根據依賴修復下游MV數據 RisingWave介紹和使場景 RisingWave與Pulsar的態關系 使RisingWave的基礎概念 核技術內幕 未來與展望 Agenda未來與展望-完善Iceberg數據治理feature-對接更多的數據湖格式態-流批體-列存索引Q&A