1、DataFunSummit#2023AnalyticDB PostgreSQL实时物化视图在飔合科技实时数仓的实践侯鹏-飔合科技-数据工程师01实时物化视图介绍02实时物化视图实践03总结目录CONTENTDataFunSummit#202301实时物化视图介绍背景 随着信息技术的发展,业务对数据分析的时效性要求越来越高,很多业务开始从传统的基于批处理的离线模式,转向基于流处理的实时模式。常见的一种实时数据解决方案是:流处理引擎+消息队列+大数据OLAP产品。以上方案有如下劣势:1)要布多套组件,机器成本高;2)离线和实时数仓两套架构,代码难以复用,开发和运维成本高;3)遇到问题,需要排查的组
2、件多,有时需要深度了解各组件才能找到根因,Debug成本高。技术方案 AnalyticDB PostgreSQL 版基于实时物化视图构建流批一体的一站式实时数仓解决方案,实现一套系统、一份数据、一次写入,即可在数仓内完成实时数据源头导入到实时分析全流程。实时数仓的构建链路通常包含实时数据写入、实时处理、实时分析(消费)三个步骤。在数据量比较小、业务较简单的情况下(如统计累计订单数)时这个流程会比较简单,单纯采用流处理引擎即可完成。但当数据规模较大、数据格式不规范、计算逻辑复杂,同时下游对中间表的表依赖大时,简单的实时分析链路无法满足业务需求,需要借鉴数据仓库分层架构设计即ODS、DWD、DWS
3、、ADS。AnalyticDB PostgreSQL 版基于实时物化视图可以完美地融合离线数仓的分层架构,让用户能够专注于业务设计和应用,数据实时流转链路由产品本身来保障。数据架构 AnalyticDB PostgreSQL 版实时数仓的架构如下:1)实时写入:高性能,低延迟,写入立即可见,完备的事务支持;2)实时处理:基于实时物化视图,流式增量的实时对数据进行ETL处理。相较于普通(非实时)物化视图,实时物化视图无需手动调用刷新命令,即可实现数据更新时自动同步刷新物化视图。当基表发生变化时,构建在基表上的实时物化视图将会自动更新。还可以在实时物化视图上再创建实时物化视图,当基表发生变化时,相
4、关级联的实时物化视图也会自动更新。基于此特性可以方便地构建分析数据的实时ETL处理链路;3)实时分析:基于SIMD指令集向量化执行引擎、CBO的查询优化器、列式的存储引擎,实现高性能实时分析。核心优势 架构领先、成本最优AnalyticDB PostgreSQL 版支持对接RDS业务数据库实时日志构建一站式实时数仓,相比采用流处理引擎+消息队列+大数据OLAP产品成本上更优,同时依赖的组件更小在稳定性和运维性上更优。一站式实时数仓的开发和数据流转都在仓内完成,无需多套系统间反复流转。整体来说:1)成本:仅一份数据存储,仅一套系统部署,仅一次写入开销,整体资源成本最优;2)性能:没有复杂的链路流
5、转,资源开销低,并且数据延迟低;3)开发:通常一套SQL开发即可,无需多系统适配联调等;4)运维:只需要维护一套系统,数据异常排查便利,数据订正容易。核心优势 支持批流一体AnalyticDB PostgreSQL 版除了支持RDS业务数据库日志外,还支持丰富的数据源写入方式,可以高效完成入仓之后进行融合处理和融合查询:1)通过DTS对接RDS Binlog日志,实现业务数据准时地同步到实时数仓中;2)支持实时数据源如消息队列Kafka、RocketMQ等;3)支持和实时流处理引擎对接,实现数据消费;4)支持通过数据同步或读外表的形式将数据写入到 AnalyticDB PostgreSQL 版
6、中。核心优势 支持复杂批处理任务实时数仓建设过程中的一大难点就是将原有的复杂批处理任务,转化为实时处理任务,通常来说批处理可以较为轻松地支持复杂的SQL语法,尤其是多重嵌套等复杂SQL,而流处理对SQL的语法的限制较多,AnalyticDB PostgreSQL版基于传统数仓对复杂SQL查询支持的优势,相比流计算引擎可以在复杂批处理任务转化为实时处理任务时有更小的改造成本。支持无限窗口数据库引擎,通常都是面向磁盘存储设计的,相比于基于内存设计的流计算引擎,可以更好的支持超大表的实时JOIN,尤其是多大表复杂的实时J