接 数据仓库和商业智能(一)
DW/BI展现区用于组织、存储数据,支持用户、报表制作者以及其他分析型商业智能(BI)应用的查询。获取数据实际上是包含维度模型的展现区的主要职责。
数据应该以维度模型来展现,要么采用星型模型,要么采用OLAP多维数据库。维度模型是为DW/BI用户发布数据的最可行技术。展现区中一定要包含最细粒度的数据,以便用户能够获得最准确的查询结果。
展现区的数据可以围绕业务过程度量事件来构建。采用这一方法可以自然地裁剪操作型源数据获取系统。维度模型应该对应物理数据获取事件。不应该将它们设计为仅为完成每天的报表工作。
利用总线结构建立分布DW/BI系统是成功的法宝。将总线结构作为基本框架,可采用敏捷的,分散的,范围合适的、迭代的方式建立企业数据仓库。
注:处于DW/BI系统的可查询展现区中的数据必须是维度化的,原子(辅以增强性能的聚集)的以业务过程为中心的。坚持使用总线结构的企业数据仓库,数据不应该按照某个部门需要的数据来构建.
Kimball DW/BI架构的最后一个主要的部件是商业智能(Business Intelligence,BI)应用部件。“BI应用”这一术语泛指为商业用户提供利用展现区制定分析决策的能力。所有的BI应用查询针对的是DW/BI展现区。查询是使用数据提高决策能力的关键。多数业务用户可能通过预先构建参数驱动的应用和模板访问数据,不需要用户直接构建查询。
以餐厅为例描述Kimball架构将整个DW/BI环境划分不同的组成部分。
ETL系统与餐馆后厨ETL系统类似餐馆后厨。厨房设计包含几个设计目标。首先布置高效。从餐厅厨房中得到同样质量的东西是另一个重要的目标。如果菜品无法满足客户需求餐厅注定倒闭。为获得一致性,厨师将餐厅自制调味酱在厨房做好。最后厨房输出,即端出给餐桌的菜品,应该具有很高的完整性。保证菜品质量,厨房设计要具体整体考虑,调拌沙拉的工作台面一定不能与处理鸡的工作台面在同一地方。
正如在厨房设计时,质量、一致性和完整性是主要的设计考虑因素一样,这些原则也是餐厅日常管理需要关注的要点。考虑到环境危险性,后厨通常与餐厅顾客隔离。
数据仓库的ETL系统与餐馆的厨房类似。在此,数据被魔法般地转换为有意义的、可展现的信息。ETL系统以能够承载从数据源获得的大量数据。与厨房的设计一样,ETL系统被设计为能够具有足够的吞吐量。能够有效地、尽量减少移动地将原始源数据转换为目标模型。
ETL系统需要高度关注数据质量、完整性、一致性。
注:设计适当的DW/BI环境将平衡前端BI应用以支撑后端ETL系统。前端的工作需要由商业用户多次反复实现,而后端工作有ETL人员一次实现。
ETL系统应该与业务用户和BI应用开发者保持一定的距离。发生在ETL系统中的活动不应该展示给DW/BI用户。当数据准备工作就绪,质量检查完成后,数据将进入DW/BI展现区。DW/BI系统提供“菜单”,通过元数据、发布报表、参数化分析应用等告诉用户什么数据可用。DW/BI用户希望获得一致的、良好的数据质量。展现区的数据应该根据要求准备停当并保证安全。
展现区的“装饰风格”应该让用户感觉舒服。应该按照BI使用者的口味而不是开发者的喜好进行设计。对DW/BI系统来说,服务也是至关重要的因素。发布的数据一定要满足需求,快速提供给业务用户或BI应用开发人员。
最后开销也是DW/BI系统必须考虑的问题。如果价格不能为用户接受,则餐厅只能关门。
DW/BI 管理者应该积极主动地开展对满意度的监控工作。不能被动地等待听客户抱怨。DW/BI顾客将选择更适合他们需要的或更符合他们喜好的“餐厅”,让您设计构建、人员投入大量资金建立的DW/BI系统成为废品。
独立数据集市架构
采用独立数据集市架构,分析型数据以部门为基础来部署,不需要考虑企业级别的信息共享和集成。由单一部门确定其针对操作型源数据的数据需求。利用信息技术人员或外部顾问构建数据库用于满足部门自己的需要,主要考虑本部门的业务规则和标识。独立地开展工作,部门数据集市主要用于解决部门内的信息需求。由于需要数据的某一部门不能访问由其他部门构建的数据集市,它将按照自己的情况处理类似问题,数据可能会有差别。当然这两个部门的用户基于各自的数据集市产生的报表讨论组织的指标时,存在不同业务规则和标识,数值相同的内容很少。
独立数据集市架构的优缺点:它有利于以较低成本实现快速开发。当然,从长远来看,采用不同方式从相同的操作型数据源获取数据,会出现分析数据的冗余存储造成浪费和低效。
辐射状企业信息工厂Inmon架构
辐射状企业信息工厂(Corporate Information Factory,CIF)方法由Bill Inmon及业界人士倡导。
在CIF环境下,数据从操作型数据源中获取,在ETL系统中进行处理,有时将这一过程称为数据获取。从这一过程中获得的原子数据保存在满足3NF的数据库中,这种规范化的、原子数据的仓库被称为CIF架构下的企业数据仓库(Enterprise Data Warehouse,EDW),规范化的EDW是CIF中的强制性的构件。与Kimball方法类似,CIF提倡企业数据协调和集成。但CIF认为要利用规范化的EDW承担这一角色,而Kimball架构强调具有一致性维度的企业总线的重要作用。
注:规范化过程并未能够从技术上支持集成。规范化仅建立能够实现多对一关系的物理模型。另一方面,集成需要解决由于多源所造成的不一致性。不兼容数据库源可以完全被规范化,但并未解决集成问题。基于一致性维度的Kimball架构,关注解决数据不一致性,但并未明确提出需要规范化。
采用CIF方法的企业通常允许业务用户根据数据细节程度和数据可用性要求访问EDW仓库。
注:纯CIF架构最极端的形式是不能实现数据仓库的功能。
混合辐射状架构与Kimball架构
该架构利用了CIF中处于中心地位的EDW,但EDW完全与分析和报表用户隔离。它仅作为Kimball风格的展现区的数据来源,其中的数据是维度的、原子的、以过程为中心的,与企业数据仓库总线结构保持一致。
该方法是两种面向企业的方法合并,可以利用构建集成仓库中已经开展的工作。如果已经为建立满足3NF的EDW进行了投资,但尚不能按照用户的期望更灵活地实现报表和分析,这种混合方法很适合。如果什么都没有,不建议使用此种方法。
维度模型仅包含汇总数据
汇总数据只是针对公共查询是能够比粒度数据提供更好的性能,但它不能取代细节数据。仅在维度结构中存储有限的历史数据。维度模型并不反对存储大量的历史数据。维度模型中可用的历史数据的数量,必须有业务需求驱动。
维度模型是部门级的而不是企业级的
维度模型是不可扩展的
维度模型非常易于扩展。事实表通常包含海量的数据行,据报道存在包含2万行的事实表。
规范化数据库和维度模型包含同样的信息和数据关系。
维度模型仅用于预测
不应该维度模型设计仅仅关注预定义的报表或分析。设计应该以度量过程为中心。关键是将注意力放在组织的度量事件上,因为与不断变化的分析比较,它们通常比较稳定。维度模型中正确的做法是以最详细的粒度表达数据,这样可以获得最好的灵活性和可扩展性。
维度模型不能被集成
数据集成依赖于标准标识,值和定义。
展现区数据库如果不坚持采用具有共享一致性维度的总线结构,将会产生烟筒式的解决方案。
考虑使用维度模型的理由
当开始考虑DW/BI需求时,需要倾听并综合所发现的业务过程。小组关注一系列需要的报表和控制面板的度量。不断问自己产生这些报表和控制面板度量的业务过程度量是什么?当确定项目范围后,重点关注每个项目的单一业务过程,不要在一个迭代中将多个业务过程覆盖。
尽管DW/BI小组将注意力放在业务过程是至关重要的,但同等重要的事情是同时开展IT和业务管理。在确定优先级别和开发DW/BI路标时,业务过程是最基本工作单元。小组还需要考虑不一致问题。与企业领导层的合作者仪器开展工作,按照业务价值和可行性排序业务过程,然后优先处理具有最大影响和可行性最高的业务过程。
矩阵也可以作为一种有用的工具,其潜在的好处是灵活且更加严谨的主数据管理平台。
敏捷性考虑
多数敏捷方法的核心原则与Kimball最佳实践契合,包括:
1.关注发布业务值。
2.开发小组与业务相关方之间的值合作。类似敏捷小组,应该与业务够成紧密合作关系。
3.强调与业务相关方开展面对面的沟通、反馈、优化。
4.快速适应不可避免的需求变化。
5.以迭代、增量方式处理开发过程。
敏捷开发缺乏集合和结构,伴随持续的管理挑战。