yb真人注册-才略保证需求变更对数据仓库莫得影响
你的位置:yb真人注册 > yb真人注册 > 才略保证需求变更对数据仓库莫得影响
才略保证需求变更对数据仓库莫得影响
发布日期:2022-02-16 13:51    点击次数:207

才略保证需求变更对数据仓库莫得影响

本文转载自微信公众号「数仓宝贝库」,作家范钢 孙玄 。转载本文请计划数仓宝贝库公众号。

前边部分是对数据的麇集,然后经过ETL过程,最终存入数据仓库。这部分是通过一切时代汇集数据,然则它的建筑与数据利用需求无关。因为数据仓库存储的是往日数年的数据,而数据利用需求老是在变。淌若数据利用需求一变化,就需要修改数据仓库的表结构,那么这数年的数据都必须要重新盘算,系统就会永恒处于一种尽头不褂讪的状况,珍视资本极高。是以,只消数据仓库的建筑与数据利用需求无关,才略保证需求变更对数据仓库莫得影响,才略让系统褂讪运转。

后头部分是说明不同的数据分析需求,从数据仓库中得到数据,完成各自的数据分析,将最终的分析效果写入数据集市。数据集市的建筑是与各自的数据分析的需求息息关连的,每次需求变更时,变更的是各自的数据集市,而不是数据仓库。

01多维数据建模

经过前边一系列的ETL过程(什么是ETL?一文附近ETL假想过程),咱们最终将数据装载到数据仓库中。数据仓库是按照多维数据模子的思绪进行建筑的。在多维数据模子中,动态数据就改动为了事实表,静态数据就改动为了维度表。进项发票事实表、销项发票事实表都是事实表,但从其中关联出来了日历维度表、征税人维度表、税务机关维度表、地域维度表与行业维度表。

多维数据模子的假想有两种思绪:雪花模子与星形模子,如下图所示。

yb真人注册平台客服QQ:865083652

雪花模子与星形模子

左图是雪花模子的假想,它最大的特色是在维度表上还要关联维度表,如在征税人维度表的基础上还要关联行业维度表。这么假想相比容易清醒,但会变成平常的join操作,在海量数据中缩小查询性能。比方,要对进项发票进行地域的统计,就需要将进项发票事实表与征税人维度表关连联,再关联税务机关维度表、地域维度表,才略完成,这极大影响了系统性能。因此,为了提高查询性能,基于空间换时候的思惟,咱们又提倡了星形模子。

右图是星形模子的假想,它最大的特色是不会再有维度与维度的关联,而是通盘维度表都只与事实表关联。比方对进项发票进行地域分析,只需要进项发票事实表关联地域维度表就不错了,在海量数据中的性能将得到极大的提高。

接着,在以上事实表的基础上,还不错从不同的维度与粒度对数据进行汇总,形成团聚表。比方,对进项发票事实表按照行业进行汇总,冒昧按照地域进行汇总,形成“进项发票行业团聚表”与“进项发票地域团聚表”,等等。

以上的分析都是在“开票主题域”中进行的,但是按照业务经由,还有“禀报主题域”“征收主题域”“查察主题域”等,如下图所示。这么,数据中台就按照业务模块差别为了多个主题域,然后在各个主题域进行多维建模,形成数据仓库。但各个主题域不错领有共同的维度表,如征税人维度表、税务机关维度表等。

主题域模子

02数据中台的分层

数据中台的建筑,除了按照主题域进行纵向差别,还要通过分层进行横向差别。数据中台通过分层,差别为原始数据层(STAGE)、细节数据层(ODS/DWD)、轻度抽象层(MID/DWS)与数据集市层(DM),如下图所示。每一层的数据都存储在Hive数据库中,然后通过Schema差别出不同的档次。

数据中台的系统分层

在这第一篇文章中,来研究一下 ConfigurationManager 类,讲一下为什么要新增这个类,并看一下它的的一些实现代码。

最底层是原始数据层(STAGE)。通盘的原始数据都在这里,通过Schema进行差别,来自哪个数据起头就存储在哪个Schema中,而且表名与原始库的表名一致。

接着是细节数据层(ODS/DWD),它是经过ETL过程以后导入数据仓库的事实表与维度表。ETL过程的中间临时表存入名为etl的Schema,数据仓库的事实表与维度表存入名为dw的Schema。同期,制订定名范例,事实表以dw_fact_xxx定名,如订单事实表dw_fact_order,维度表以dw_dim_xxx定名,如日历维度表dw_dim_date。

紧接着是轻度抽象层(MID/DWS),它是在事实表的基础上按照不同维度与粒度形成的团聚表。团聚表以dw_agg_xxx定名,如进项发票按征税人团聚表dw_agg_jxfp_nsr、进项发票按税务机关团聚表dw_agg_jxfp_swjg等。

临了,是在数据仓库之上的数据集市层(DM),它通过抽取前两层中的事实表与团聚表的数据,按照不同的用户需求进行数据分析,临了形成数据效果。数据集市既包括最终效果表,也包括中间效果表。数据集市以dw_dm_xxx定名,如“购车人未交纳车辆购置税预警”属于“天真车耗尽税”分析模块,它需要盘算出应免税数据dw_dm_jdcxfs_ms,然后盘算出未缴税数据dw_dm_jdcxfs_wjs。大大都惯例数据分析即是这么通过SparkSQL进行的。

 yb真人注册

本书摘编自《架构真意:企业级利用架构假想身手论与施行》,经出书方授权发布。