1、基于宽表建模的自助分析平台马皓百度资深研发工程师目录CONTENTS 01业务背景02面临的问题03宽表建设04自助可视化平台01 业务背景日志数仓分层ADST+1查询报表DWSDWDODS主要基于维度建模查询性能大部分报表和查询使用上层小表,提升查询性能传统数据业务:采用经典数仓架构,重点支持BI分析生产成本逐级生产数仓表,建模难度低,代码易于理解维护成本运维工具成熟,自助化运维主要面向数据研发过程当前互联网业务发展趋势01 业务背景运营活动密集产品迭代频繁数据分析越来越复杂、深入数据驱动越来越重要主要面向产品人员目录CONTENTS 01业务背景02面临的问题03宽表建设04自助可视化平台
2、面临问题与一些思考02 面临问题adhoc查询数据杂且量大上千张表、数百PB存储查询慢SQL复杂,shuffle大自助率低给数据研发提需求,周期长、效率低表更少口径更统一自助化不用研发排期经典数仓架构及模型数据建模数据开发BI报表缺点:数仓层内:少许冗余、口径容易不一致 数仓层间:冗余严重 需求满足效率低目录CONTENTS 01业务背景02面临的问题03宽表建设04自助可视化平台一层大宽表维度模型数仓建设:一层大宽表技术方案03 宽表建设 方案调研字段1经典维度模型大宽表模型维度一维度二维度三维度四维度五维度六字段2字段3字段6字段4字段5字段n事实表维度表维度表日志数仓分层ADS查询报表D
3、WSDWDODSAdhoc报表c1c2c3cacbcmcncxcyline1公共属性业务属性业务指标line2line3日志数仓建设:宽表优缺点03 宽表建设 方案调研日志大宽表T+1查询报表一层大宽表模型宽表存在的挑战计算复杂行数更多回溯成本查询性能升级成本字段更多特性:经过ETL、维度关联等处理封装指标口径,支持超多字段宽表的优点口径统一使用简便减少冗余宽表优点:表数量大幅下降,口径更容易理解03 宽表建设 应用实践拼接后实际存储变化维度一维度二大宽表维度+事实表存储大小事实表大宽表存储大小宽表冗余维度表,列式存储压缩后,存储增加极少10%左右行为大表1明细表1明细表2聚合表3聚合表2OD
4、SDWDDWSads1ads2ADSads3单一业务主题传统建模数据表ads4大表2明细表3聚合表1聚合表4经过宽表建模,单一业务主题下数十张数仓表精简为一张c1c2c3cacbcmcncxcy业务属性业务指标1、划分主题2、精简粒度3、丰富维度&指标一张宽表宽表优点:一层大宽表 替换 多层数仓,存储下降 30%左右03 宽表建设 应用实践31%+28%+33%+主题一主题二主题三DWD 30PODS 60PDWS 5PADS 1PDWD 16PDWS 2PADS 0.2PDWD 13PDWS 0.5PADS 0.1PODS 17P主题宽表1主题宽表2主题宽表3存储存储存储ODS 60PODS
5、 30PODS 30P分主题各层存储大小分主题宽表存储大小同一主题多层数仓大量冗余宽表存在的挑战:如何解决查询性能问题?03 宽表建设 应用实践宽表跟数仓某些小表比性能会有些许下降020406080100120140存储相近-sum等简单查询场景存储相近-explode等复杂计算场景存储相差大-基准查询性能对比宽表建设前平均查询耗时宽表查询平均耗时单位:秒列式存储统计滤波业务指标下沉宽表复杂嵌套字段打平58181202530501、引擎提速2、建模提速3、存储系统宽表存在的挑战:开发成本&回溯成本增加03 宽表建设 应用实践宽表回溯成本业务发生打点异常、指标口径变更,宽表计算复杂、回溯成本高宽
6、表开发维护成本宽表进行了大量ETL和关联计算,字段更多、逻辑更加复杂(1)宽表对研发人员的业务理解要求更高;(2)宽表对研发工具的要求更高;(3)本质上是成本转移,在数据驱动的背景下:开发成本 业务成本潮汐算力(1)合理分区,按分区进行更新;(2)数据复用,仅重算部分字段;(3)利用潮汐资源,降低资源开销。目录CONTENTS 01业务背景02面临的问题03宽表建设04自助可视化平台04 自助可视化平台业务需求数据仓库数据研发进行加工数据分析数据报表传统BI架构:通过数据研发跑数及制作报表,依赖研发排期传统BI架构不灵活排期长迭代慢如何更高效的满足需求?