作为一个PM,通过向开发同学的咨询和自我学习,整理了一下报表平台的架构体系(偏开发方面)~如有不足,请各位大佬指正~~~
先来讲报表平台的发展过程,报表平台的发展历经多个阶段,这些不同的阶段是用户诉求不断得到满足的一个过程。初始是以excel 表格的形式进行业务的数据分析,但存在数据量的限制,当数据量达到10万以上时,excel 会出现卡顿、等待时间较长的问题。所以出现了传统的数据报表系统,数据量的问题得到解决,但依旧存在着报表系统只是作为数据的展现无法进一步分析,报表逻辑修改无法及时响应业务诉求的问题。随着大数据的出现及技术的迭代更新,比如依赖于大数据平台的OLAP分析技术 ,促使当前的报表发展已经进入了智能阶段,报表的开发可以不强依赖开发人员,分析维度也可以根据业务的诉求自由组合,时效上可达到实时分析。
智能报表平台智能的原因是可以根据用户诉求实现自主分析,自主分析保证了用户各个维度可进行组合分析,这些操作的过程依赖的是OLAP技术。
OLAP快速实现多维数据的查询分析,只有这个技术不足以完成整个报表系统的运转,接下来将从数据源、数据建模、数据分析3大块来介绍报表平台的架构体系。
1、数据源
报表的数据是由数仓提供的,数仓的数据来源是经由上游业务系统的业务数据经过ETL(ETL包含抽取、清洗、转换,其中抽取包含3种,SQL语句抽取、数据文件同步、增量抽取,增量抽取通过记录最后抽取的时间,选择比最后一次抽取时间大的时间进行抽取;清洗完成重复数据、空数据、错误数据的清洗;转换处理的是字段格式的不统一、根据业务诉求,将原始的明细数据加工处理生成业务数据的过程)处理后同步到数仓,数仓加工生成4层模型,分别是ODS、DWD、DWS、ADS ,ODS层同步原始数据,DWD层完成初加工ODS层转换过来数据,生成明细数据,DWS层完成数据的大宽表的加工,供后续的查询,由此完成报表的数据提供。
2、数据建模
有了数据之后,通过平台要进行分析,为了便于分析,需要进行建模的过程,提高分析、查询的效率。为分析进行的建模采用维度建模,涉及建模需要先讲一下维度和度量。
维度建模的过程就是为了便于分析,维度建模的模型包含有:星型模型、雪花模型、星座模型,在此只介绍常用的前2种模型。
星型模型:主要基于1张事实表和多张维表进行关联(名词解释,事实表:主要包含要分析的数值数据及实现和维表关联的ID;维度表:一般只有一个主键id和事实表关联,主要包含的是属性类的数据)。
雪花模型:基于星型模型的拓展,比星型多了维表与维表之间的关联。
3、数据分析
针对生成的多维数据模型(又可称作数据立方体),对数据进行分析操作实际是对数据立方体的操作。
数据立方体的操作:包含有上卷、下钻、切片、切块、旋转。下面将以具体的例子说明:
比如我们当前 计算1月份光大银行的放款金额,针对上卷、下钻、切片、切块、旋转怎么处理的呢?
上卷:计算1季度(1、2、3月份)的北区银行的放款金额,其中1季度的计算,就是上卷。
下钻:计算1月1号的的北区的放款金额,其中将1月份下钻分析到具体的1号,就是下钻。
切片:将区域切片,计算北区的1-5月份的申请件数、审批件数、放款件数,针对的是某一维度下分析。
切块:比切片的粒度更粗,比如计算1-2月份北区的申请、审批、放款件数,将时间维度切部分,区域切部分。
以上,便是对报表平台偏技术方面的体系架构的梳理,烦请各位指正~~