1、流批一体的实时多维分析流批一体的实时多维分析郑德来 百度资深研发工程师0101大数据架构演进大数据架构演进0202流批一体方案流批一体方案0303关键问题突破关键问题突破0404总结和规划总结和规划目录目录 CONTENT大数据架构演进01经典离线数仓架构介绍ODSDWDDWSADS操作数据层(Operational Data Store),存储基础数据,做简单数据清洗明细数据层(Data Warehouse Detail),构建最细粒度的明细层事实表汇总数据层(Data Warehouse Summary),按照主题,对明细数据进行汇总应用数据层(Application Data Store
2、),存放业务个性化统计指标,面向最终展示数据源经典离线数仓架构优缺点分析架构简单,开发成本低资源成本低数据易管理,diff少数据时效性差缺少实时数据优点优点缺点缺点表数量太多Lambda架构介绍保保证证数数据据准准确确性性保保证证数数据据时时效效性性数据源ODSDWDDWSADSBatch Layer消息队列ADSDWSDWDODSSpeed Layer替换Serving LayerLambda架构优缺点分析引入实时数据兼顾准确性和时效性兼容经典离线数仓体系优点优点缺点缺点一个需求两套代码资源占用多实时数据和离线数据diffKappa架构介绍数据源消息队列流式计算ODSDWSADSReal-t
3、imeLayerServing LayerDWDKappa架构优缺点分析一套数据流,开发成本低省掉离线数据流计算资源实时离线数据逻辑统一优点优点缺点缺点数据回溯成本高复杂关联场景开发维护成本高历史包袱的迁移成本高流批一体方案02流批一体背景-旧架构日志打点离线采集binlog采集离线数据清洗数据查询引擎多维分析离线数据仓库ODSDWDDWSADS文件系统消息队列策略信号实时报表实时应用流式计算离线导出数据源数据采集数据存储数据清洗数据仓库数据应用数据报表实时采集业务DB流批一体背景-旧架构问题表太多数仓分层建设,表数量太多,使用成本高查询慢表关联场景众多,查询时效慢实时分析弱实时报表太定制化,
4、缺少多维分析能力流批一体整体方案数据查询引擎多维分析+自助报表(一脉)文件系统消息队列策略信号实时报表实时应用数据离线清洗天级别更新字段实时更新字段流式计算流批一体分钟级merge实时数据仓库(分钟级宽表)数据存储数据清洗数据仓库数据应用日志打点离线采集binlog采集离线导出数据源数据采集实时采集业务DB关键问题突破031、DB数据更新问题-背景LOG日志采集消息队列流式计算文件系统查询引擎日志数据不会变化,日志打印时刻便固定分布式文件系统不支持记录个别字段的update计算窗口越大,吞吐能力和可维护能力都变差日志场景实时数仓的典型方案日志场景实时数仓的典型方案DB场景关键问题:数据会更新场
5、景关键问题:数据会更新CopyOnWrite机制,机制,5分钟滚动合并分钟滚动合并1、DB数据更新问题-解决方案DBBinlog消息队列流式计算分钟级分钟级delta文件文件初次dumpbaseV1baseV2baseVndelta.delta.delta.delta2、多表关联问题-背景文件系统查询引擎多份10亿行数据关联,触发shuffle join,性能很差离线场景多表离线场景多表关联解决方案关联解决方案DB主表DB关联表ADB关联表BDB关联表.Spark三次关联,均有小数据集三次关联,均有小数据集2、多表关联问题-解决方案流式计算初次dumptmpDeltaDB主表basedelta
6、流式计算初次dumpDB关联表A流式计算初次dumpDB关联表.deltaAbaseAdelta.base.tmpBaseBaseV1BaseVn3、DB和日志关联问题-背景文件系统查询引擎对缓存的读写和容量都有比较高的要求,缓存的成本非常高DB表流式计算LOG日志吞吐高日志吞吐高存量记录多存量记录多高性能缓存DB和日志关联场和日志关联场景典型解决方案景典型解决方案3、DB和日志关联问题-解决方案日志采集消息队列流式计算分钟级分钟级delta文件文件delta.delta.d