引言:DW,即Data Warehouse,数据仓库;BI,即Business Intelligence,商业智能。数据仓库存在的目的即为商业智能服务,二者相伴相生,故在此讨论DW/BI系统架构。
Kimball的DW/BI架构
基于Kimball架构的DW/BI环境一般由业务系统(数据源系统)、ETL系统、数据展现、和商业智能应用四部分组成,如下图:
1. 业务系统(数据源系统)
它们是操作型系统,用于处理企业的各种事务,如办公OA、采购管理系统、财务系统等。它们一般处于数据仓库之外,且存储的数据的格式和内容各不相同。
这些业务系统的查询通常是浅显的,以一次一条或有限几条记录的查询方式构成常见的事务流,因而不能实现类似DW/BI系统那样广泛的、无法预料的查询功能。
多数情况下,业务系统是一种独立的、针对特定业务的应用,它并不会与其他业务系统共享自身的业务数据和公共数据,业务系统之间是割裂的存在。
2. 获取-转换-加载(ETL)系统
ETL,即Extract Transformation and Load,获取-转换-加载。
“获取”(采集)是将源数据从业务系统导入数据仓库的第一步,一般情况下,出于性能的考虑,获取的过程中不会对源数据进行任何处理,而是保持数据原样。此步骤即数据仓库分层模型中的ODS(贴源层)。
获取到数据后,需要进行多种“转换”操作,例如数据清洗、合并不同数据源的数据等。在数据仓库的分层模型中,此步骤大致可对应DWD(数据清洗)和DWS(数据轻度汇总)的操作。
在常见的大数据平台架构中(如Lambda/Kappa架构),鉴于运行效率的差别,获取和转换两个步骤之间一般通过MQ进行解耦,以提高