关于数据仓库的概念、原理、建设方面,已经有很多内容和经典书籍可以参考。在本文中,我更想讨论企业数据仓库项目中的架构和组件工具问题。
数据仓库可以被简单地描述为通过数据集成工具连接原始数据和分析界面数据库的存储机制。它管理企业大量的数据集,提供转换、移动和展现给终端用户的功能。有许多方法可以扩展数据仓库的能力,但我们将重点讨论最基本的问题。在不考虑过多技术细节的情况下,整个架构可以被分为4个层次:
1. 原始数据层(数据源)
2. 数据仓库架构形态
3. 数据的采集、收集、清洗和转换
4. 应用分析层
单层架构(直连)
大多数情况下,数据仓库是一个关系型数据库,包含允许多维数据的模块,或者分为多个易于访问的多主题信息域。最简单的数据仓库只有一层架构。
单层架构意味着数据仓库与分析接口直接连接,终端用户可以直接查询。但是简单也意味着有其弊端和适用性:
传统上,数据仓库的存储从100GB起,直接连接可能导致查询速度慢,因为需要直接从数据仓库准确地查询数据,或者是准确地输入数据,这对数据库和前端BI工具的性能要求相当高,基本性能不会太高。
此外,在处理复杂维度分析时,性能也受到限制,由于其缓慢性和不可预测性,很少应用于大型数据平台。要执行高级数据查询,数据仓库应该在低级实例下被扩展以简化数据查询。
两层数据架构(数据集市层)
两层架构是在前端应用层和EDW层增加了数据集市层。数据集市是包含特定主题域信息的低级别存储库。简而言之,它是一个在特定主题(例如销售、运营、市场等)下延伸EDW的较小数据库。
这种方式解决了部门级数据查询和分析的问题,每个部门更容易访问所需的数据,因为每个集市仅包含给定域信息。此外,数据集市限制了终端用户对数据的访问范围,并设置了数据权限控制。但是创建数据集市层需要额外的硬件资源,并与数据平台的其他数据库集成。
三层架构(OLAP)
在数据集市层之上,我们通常会使用联机分析(OLAP)处理多维数据集(cube)。OLAP数据集是一类特定数据库,可以从多维度描述数据。关系型数据库只能表示二维数据,而OLAP允许在多维度下编译数据并在维度之间移动。
OLAP专门用于维度建模数据分析,并通过BI以图表方式展示OLAP的结果。
OLAP的业务价值在于允许对数据进行多维度分析,以提供对所有企业数据或特定数据集市的访问。现在,它已经成为主流的架构应用。
以下是最广泛使用的架构体系结构图,由顶层、中层和底层组成。
底层:数据仓库服务器的数据库是底层,通常是一个关系型数据库系统,使用后端工具清洁、转换和加载数据到该层。
中间层:数据仓库中的中间层是使用ROLAP或MOLAP模型实现的OLAP服务器。对用户来说,这个应用程序层显示数据库的抽象视图,同时也充当最终用户和数据库之间的中介。
顶层:顶层是前端应用层,连接数据仓库并从数据仓库获取数据或通过API获取数据。常见的应用包括数据查询、报表制作、BI数据分析、数据挖掘和其他应用开发。
根据功能应用和技术架构,下面是一张中大型企业的详细数据仓库架构图。
数据仓库的四个核心组件是:底层源数据库(数据存储方案)、ETL、前端应用和OLAP服务。
数据仓库数据库
底层的数据仓库服务器通常是一个关系数据库系统(各种表关联的SQL统计会更方便一些,非关系型数据库在这方面还有所区别)。常用的方案有Oracle、DB2、SQLServer以及Essbase、Greenplum、Teradata等专业数据仓库解决方案。
1. 采用传统关系型数据库或经过功能扩展的MPP数据库
- 传统的关系型数据库包括:Oracle、MySQL、DB2。
- 大规模并行处理数据库包括:Vertica、Teradata(商业)、Greenplum(开源)。
Teradata在银行业使用较多,但成本也比较高。我们目前在项目中主要使用Greenplum,它是业界最快且性价比最高的高端数据仓库解决方案。Greenplum基于PostgreSQL,在2015年开源。国内四大行中有3家在使用,5大物流公司中有4家在使用。很多公司正从Teradata迁移到Greenplum。
2. 大数据平台架构:Hadoop+Hive
这个方案非常通用,通常的组合是:TB级数据使用PostgreSQL,百TB级数据使用Greenplum,PB级以上的数据使用Hadoop。
下面是一个传统数据仓库架构、Greenplum和Hadoop大数据平台的对比图。
我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!