从基本需求和数据需求两方面介绍对数据仓库系统的整体要求。
一. 基本需求
1. 安全性
数据仓库中含有机密和敏感的数据。为了能够使用这些数据,必须有适当的授权机制。这意味着只有被授权的用户才能访问数据,这些用户在享有特权的同时,也有责任保证数据的安全。
增加安全特性会影响到数据仓库的性能,因此必须提早考虑数据仓库的安全需求。当数据仓库已经建立完成并开始使用后,此时再应用安全特性会比较困难。
在数据仓库的设计阶段,我们就应该进行如下的安全性考虑:
- 数据仓库中的数据对于最终用户是只读的,任何人都不能修改其中的数据,这是由数据的非易失性所决定的。
- 划分数据的安全等级,如公开的、机密、秘密、绝密等。
- 制定访问控制方案,决定哪些用户可以访问哪些数据。
- 设计授予、回收、变更用户访问权限的方法。
- 添加对数据访问的审计功能。
2. 可访问性
用户能够有效地查找、理解和使用数据。数据应该是随时可访问的。这里数据可访问性指的是用户访问和检索数据的能力。
数据仓库的最终用户通常是业务人员、管理人员或者数据分析师。他们对组织内的相关业务非常熟悉,对数据的理解也很透彻,但是他们大都不是IT技术专家。
这就要求我们在设计数据仓库的时候,将用户接口设计得尽量友好和简单,使得没有技术背景的用户同样可以轻易查询到他们需要的数据。
3. 自动化
这里的自动化有狭义和广义两个层面的理解。
- 狭义的自动化指的是数据仓库相关作业的自动执行。比如ETL过程、报表生成、数据传输等处理,都可以周期性定时自动完成。
- 广义的数据仓库自动化指的是在保证数据质量和数据一致性的前提下,加速数据仓库系统开发周期的过程。整个数据仓库生命周期的自动化,从对源系统分析到ETL,再到数据仓库的建立、测试和文档化,可以帮助加快产品化进程,降低开发和管理成本,提高数据质量。
三. 数据需求
通过数据仓库,既可以周期性地回答已知的问题(如报表等),也可以进行即席查询(ad-hoc queries)。
- 报表最基本的需求就是对预定义好的一系列查询条件、查询内容,排序条件等进行组合,查询数据,把结果用表格或图形的形式展现出来。
- 所谓的即席查询不是预定义好的,而是在执行时才确定的。
数据库管理员使用命令行或客户端软件,连接数据库系统执行各种各样的查询语句,是最为常见的一种即席查询方式。而理想的数据仓库系统,允许业务或分析人员也可以通过系统执行这样的自定义查询。为了满足需求,数据仓库中的数据需要确保准确性、时效性和历史可追溯性。
1. 准确性
想要数据仓库实施成功,业务用户必须信任其中的数据。这就意味着他们应该能知道数据从哪来,何时抽取,怎么转换的。更重要的是,他们需要访问原始数据来确定如何解决数据差异问题。
实际上ETL过程应该总是在数据仓库的某个地方(如ODS)保留一份原始数据的复制。
2.时效性
用户的时效性要求差异很大。有些用户需要数据精确到毫秒级,而有些用户只需要几分钟、几小时甚至几天前的数据就可以了。
数据仓库是分析型系统,用于决策支持,所以实践中一般不需要很强的实时性,以一天作为时间粒度是比较常见的。
3.历史可追溯性
数据仓库更多的价值体现在它能够辅助随时间变化的趋势分析,并帮助理解业务事件(如特殊节日促销等)与经营绩效之间的关系。
参考:《Hadoop构建数据仓库实战》