《建立模型应该考虑的几个问题》由会员分享,可在线阅读,更多相关《建立模型应该考虑的几个问题(26页珍藏版)》请在金锄头文库上搜索。
1、建立模型应该考虑的几个问题数 据仓库建模质量直接影响数据仓库项目的质量,甚至成败。在进行建模之前,要对数据仓库的规模、组成及模型不同部分的功能定位有明确的定义。影响数据仓库建 模的因素众多,且根据不同项目的具体情况而变化口下面的几个问题是较为通用和常见的,远远不是建立模型应该考虑的全部问题。数据仓库的业务特点对建模的要求1 数据仓库的数据组织是面向主题的,而不是面向报表的数据仓库是面向业务分析的主要主题领域的,进行形成数据模型的定义。典型的主题领域主要包括: 顾客购买行为 产品销售情况 企业生产事务 原料采购 合作伙伴关系 会计科目余额要 对现有的报表需求进行细致的分类、分析和调整,不能为了实
2、现单个报表而进行大量的建模工作。要根据分析的不同内容和主题对报表进行分类,明确报表中每一个 数据的定义、统计口径及不同数据之间的关系,建立在整个数据仓库内统一的数据指标的定义,将数据指标按分析主题及分析维度进行归集,从而形成面向主题的数 据模型。例如:我们的利润表报表,当业务部门发我们一个利润表 的报表,作为需求时,我们应该进行细致的分析,最终我们确定我们面向的主题不是利润表,而是比利润表更大的一个层次的所有科目业务量的主题,这样我们在做 别的报表,例如资产负债表,现金流量表等报表时,就不用重复建模的工作了,做到了软件工程中的可重用规则。2. 数据仓库要实现对数据的集成与数据的同构性3. 数据
3、仓库数据的相对稳定与为实现应用而进行的实时读写操作往数据仓库里实时写数据就是不可避免的, SAP BI 也提供支持这种处理的数据对象,如实时信息立方体、汇总级别等,并提供相应的管理机制保证数据的一致性。在建模的时候要好好考虑只读的对象与可写入的对象之间的关系。4. 数据仓库反映历史变化与及时准确的数据处理能力数据仓库的数据库设计原则的要求1. 星形结构,实现简明的数据设计模式2. 数据参照完整性,保证数据的一致性3. 利用索引,提高查询的处理速度4. 先去索引、后加索引,提高数据装载效率5. 自动校验,保证数据的高质量SAP 商务智能项目实战过程和方法收集客户需求信息1. 组织结构2. 客户最
4、需要分析的数据指标3. 数据指标的数据来源4. 对数据指标的多维分析对象5. 数据指标的优先级6. 权限要求收集客户需求的方法1. 面谈2. 问卷调查3. 报表样例分析法分析客户需求,形成多维分析模型(逻辑建模) 实体-关系模型 KPI 与分析维度一 般情况下主题和属性之间的关系是一对多的关系,通过诸多属性的描述,可以得到客户等对象的最详细的信息。但是有些情况下,也有存在多对多的情况,如一个产 品有多个颜色等,这种情况下,我们设计时,要把他们作为独立的两个特征同时出现在维度表中,也是视实际的关系采用组合属性,时间相关的属性等方法。如例子 中的一个人在不同的时期属于不同的地区,这就是多对多的关系
5、,所以采用了时间相关的属性。将逻辑模型变成物理模型利用业务内容(bi content)加快建模进程。直接从系统中现有的模型来建模和扩展。多层逻辑模型与 BI 中的建模技巧对于大型的数据仓库系统,简单的数据获取、存储及展现的架构是远远不能满足需求的。大型数据仓库项目的建设,需要对将数据仓库中不同数据的功能与定位进行细分,根据其功能不同,分别采取各种建模方面和技术方面的性能优化措施。企业数据仓库与数据集市在企业级的数据创建建设方法上,存在着两种不同的建设思路。其实这两种建设思路并不是绝对对立的,利用 SAP 商务智能的配置功能,可以构建更为灵活的多层次的数据仓库结构。 1.两种建设数据仓库的不同思
6、路一 种是有 Inmon 提出的企业级数据仓库模型。主张采用第三范式(3NF),先建立企业级数据仓库,再在其上开发具体的应用。其优点是采用了第三范式,数据 存储冗余度低、数据组织结构型好;同时反映的业务主体能力强,具有较好的业务扩展性等。这种建设思路不足的地方时数据表是数据表之间的联系比较多,也比较 复杂,跨表操作多,查询效率较低。由于数据模式复杂,不容易理解,不利于维护。系统建设过程长,周期长,难度大,风险大,容易失败。另 一种思路是有 Kimball 提出的多维模型。他主张降低范式化,以分析主体为基本框架来组织数据。其优点是以多维模型开发分析主题,查询速度快,做报表也 快,同时可以实现快速
7、实施,迅速获得投资回报。再在各个分析主题的基础上循序渐进,逐步建成企业级数据仓库。这种主张融合了自下而上和自上而下两种设计方 法的思想,但是需要对数据进行大量的预处理,建模过程相对来说就比较慢。由于数据是按业务主体组织的,当业务问题发生变化,维的比搬动复杂、耗时,而且信 息不够全面、系统欠灵活、数据冗余多。这两种思路的区别是建设企业数据仓库与数据集市先后次序的区别。这种区别说明了数据仓库不同部分的构成是需要进行功能划分的,建立具有不同的分层的数据仓库系统是大势所趋。2.具有多层结构的数据仓库系统从 技术上来说,SAP BI 支持建立具有多个层次的数据仓库系统。在软件方面,它提供了技术性能各异的
8、多种数据对象,可以构建不同的逻辑层次;在硬件方面,支持应用服务器与数据 库服务器的动态扩展及根据性能需要进行不同的参数设置。SAP BI 支持建立多个逻辑数据层次,这有助于提高模型设计的灵活性、可以利用同一套数据实现和管理多个不同的需求。BI 的多层建模及在各个模型层次的一些建模技巧,如图。从数据的存储逻辑上看,图中包含 5 个逻辑层。数据抽取准备区这 是原始明细数据层,这是保存源系统明细数据的存储层,可以使用 BI 的 PSA 构建这个层次;每一个 PSA 表对应着源系统中抽取数据的一个数据源,PSA 的表 结构和数据源的结构一一对应,这一层次的数据通过 SAP 或非 SAP 的工具实现上传
9、,基本上是各个源系统的副本,没有过多的修改和筛选,为数据的抽取和进一 步的转换作准备。(2)运营数据存储这一层次的存在主要是为了满足从 BI 中出具运营层面的报表。运营报表查看的数据一般是比较明细的数据,对时效性的要求也比较高,所以这一层次的数据相对来说更新频繁,数据比较不稳定。可以使用 BI 的 DSO 来构建这一数据层。(3)企业数据仓库层 这 是面向主题的储存的明细数据层。这一层次的数据主要保存历史的、稳定的、明细的、整合的数据,可以使用 DSO 来构建这个层次;数据从 PSA 层向这一层次根 据不同的业务主题进行归集。每个 DSO 集成了来自不同的源系统的同一业务主题的相关数据。在这一
10、层次上,对不同来源的数据进行整合,对源系统间的数据进行 校验和统一,形成全系统内数据的一个统一的平台。(4)数据集市层这是一个面向应用的、具有多级汇总特性的多维分析层,他主要面向业务部门、数据时经过聚集和整合的,可以使用 BI 的信息立方体及多种虚拟对象来创建。这一层次的数据是根据应用的要求进行不同级别的汇总的。处于应用的需要,还需要在各种汇总级别上搭建跨主题的联合查询。(5)信息的发布和访问层这一层包括分析、报表、合并、计划等应用,是提供给各个业务部门使用的,通常使用数据集市或 DSO 对象来实现。总体而言,为了定义数据对象之间更明确的逻辑关系,数据的流向是从下至上,在多个层次间流动的。但在
11、技术上并没有限制,各个对象之间的数据流动是可以灵活定义的。SAP BI 为多层数据仓库模型的构建提供了相应技术以及构建这些数据层次的各种数据对象。3.各个逻辑层共享主数据正如前面提到的,信息对象是 SAP BI 中的基本单位,上述的所有数据层都是使用信息对象构建的。所以在整个系统建模中要通过信息对象共享性,保证不同数据存储模型的数据水平方向一致性,减少数据冗余。(1)使用业务内容应该尽量采用 SAP 预定义的业务内容来构架数据模型。急于 SAP BI 的业务内容提供的数据模型进行整体设计。SAP 预定义的业务内容涵盖了所有的 SAP 产品中的所有主数据、数据模型、抽取程序、报表等定义,可以加快
12、整个项目实施的进程。业务内容是基于 SAP 所有的产品 模块进行整体设计的,所以在整个设计中保证了设计的继承性和产品的延续性。业务内容不仅包括 SAP 的产品的,还囊括了一些非 SAP 得产品, 如:Oracle 的财务系统、Siebel 的 CRM 系统等。(2)统一主数据设计统一的主数据信息对象的设计,以保证所有 R3 系统和非 R3 系统数据的一致性。在 SAP 预定义的业务内容中,已经定义了丰富的信息对象,但是,在实际的实施中,还是会发现已有的 SAP 预定义的信息对象不一定能够覆盖整个企业的应用需 求。如果 SAP 预定义的信息对象的特征无法完整地描述用户所需要的信息,建议对信息对象
13、进行有效地扩充,以满足用户的分析需求。如果需要的信息对象不在 SAP 预定义的业务内容范围内,建议对非 SAP 得应用系统应该进行一个统一的,全局的规划和设计。(3)保证设计的灵活性主 数据整合是一个渐进的过程,在设计中应保证足够的灵活性。并不是所有的主数据都需要整合,而且主数据的整合过程也是一个渐进的过程,所以,应该在设计初始 阶段采用灵活的方法,以支持主数据整合渐进的过程。一种常见的方式就是先把主数据上传到 DSO,再将上传到信息对象进行整合。下面将就各个逻辑层次的建模特点及技巧做进一步的探讨。数据集市层的设计技巧与实例数据集市层往往是基于一定的范围或某个业务部门的应用需求,要求模型能支持
14、多维的分析,能够对历史数据进行有效分析,同时要保证数据的一致性、有效地控制数据冗余。这些多是设计数据集市时要考虑的关键点。使用虚拟信息提供者可以利用 BI 中的各种虚拟的信息提供者来把不同的数据对象,如 DSO 或信息立方体的数据融合在一个虚拟的信息提供者中。在信息立方体中存放基于关键指标的聚集数据,在数据存储对象中存放详细的业务数据。通过追溯的功能,可以浏览不同阶级的聚集或明细的数据,如图所示。这 样设计可以保证汇总数据与详细数据的一致性,提高了数据的访问的效率,降低了数据的冗余,在新的项目或创建洗新的应用时,对已有的成果进行回顾和评价分 析,以便在以前的项目成果上进行设计和构架(如通过多信
15、息提供者),以满足新的需求,而避免出现为了一个报表而设计一个信息立方体的情况。这样做在减少数 据的冗余,减少重复设计的冗余的同时,也降低了数据集市和报表的管理难度。大数据量时尽量对信息立方体的使用物理分区物理分区就是将数据库表分成几个小区存储,在逻辑上还是一个数据库表,对用户来说是透明的。适用数据库物理分区时给予数据库特性使用的,适用于如下数据库。范围分区:oracle Informix,IBM DB2哈希分区:IBMDB2启用分区BI 充分考虑并使用了数据库物理的特征,用于提高存储性能。在 BI 中物理分区有一部分是有系统自动优化的,也有一部分需要有模型设计着进行手动配置。自动分区。以范围分
16、区为例,系统在下列情况下自动对物理表进行分区:信息立方基本事实表:系统自动按照请求,即对上传的数据包进行分区。PSA 表:同上。DSO 的更新记录:同上。用户自定义分区:用户也可以自定义分区。比如对于信息立方体的聚集事实表,用户可以指定分区方法。点击跳到:在这个窗口中可以按照时间特征进行分区。使用物理分区可以明显地提高数据存储与访问的性能,有利于系统实现并行处理分区,每次查询只读取较小的数据集,在进行数据删除时可以快速删除分区。大数据量时尽量通过多信息提供者,实现逻辑分区。逻辑分区实现示例通 过多信息提供者把大数据分割成小的数据分区,可以按照不同的年份,计划/实际,区域,业务区域等进行数据分区。如图所示为一个常见的例子,可以按照不同的 地区将数据存储在3 个结构相同的信息立方体中。如果需要进行全局的查询,再使用多信息提供者将 3 个分信息立方体联合起来。逻辑分区的优缺点这样设计的思路和物理分区有异曲同工之处,如果逻辑分区得当,可以