基于维度建模的KimBall架构,将数据仓库划分为4个不同的部分。分别是操作型源系统、ETL系统、数据展现和商业智能应用,如下图。
操作型源系统,指的就是面向用户的各类系统,如app、网站、ERP、CRM等系统。这一块就是我们数据仓库的数据来源,并且这类数据往往有各自的格式和内容,我们同步过来之后,需要对数据进行清洗和规范化。
ETL系统,指的就是获取、转换、加载的(Extract Transformation and Load)过程以及在etl过程中使用到的数据和数据结构这样的一个过程的集合。也就是包含etl脚本,以及etl中的数据,以及对应的结构。
ETL过程中的获取,指的是数据的同步,转换指的是对数据进行转换操作,因为数据同步过来之后,数据的格式可能不是我们想要的,数据可能有一些缺漏,数据格式可能不一致等,所以这一步,我们需要对数据进行消除拼写错误、解决领域冲突、处理错误的数据、解析为标准的格式等。加载,指的就是经过转换的数据,我们加载到我们的目标路径或者目标表之中。一般有维度建模和范式建模的表中,kimball架构使用的是维度建模。
数据展现,指的就是用户组织、存储数据,支持开发者对数据进行查询,制作报表等。数据展现中的数据,必须是维度化的、原子的,以业务过程为中心的。坚持使用总线结构的企业数据仓库,数据不应该按照个别部门需要的数据来构建。
商业智能应用,指的是开发这基于数据展现,开发出报表或者自主查询,为商业用户提供数据支持,数据分析等。商业智能应用与数据展现的区别,就是一个是针对开发者的,往往是数据库级别的展现,而商业智能应用往往是界面化的是针对普通用户的。