《基于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