1、1,在线教务辅导网:http:/,教材其余课件及动画素材请查阅在线教务辅导网,QQ:349134187 或者直接输入下面地址:,http:/,2,第十三章 企业数据仓库系统构建,3,第十三章 目录,13.1 系统介绍 13.2 系统分析与设计 13.3 系统实现 13.4 数据(报表)展示和接口探讨 13.5 本章小结,4,伴随信息技术的迅速发展和企业管理决策支持的需要,数据仓库技术在近年来有了飞速的发展。已经从纯理论研究转化为决策支持领域中的一种实用性极强的技术。在企业中,随着信息管理的完善,积累了丰富的产、销、存及财务等一系列的管理数据,急待构建公司(集团)级数据仓库以用于支持分析、决策。
2、本章主要结合某企业构建基于SAP NetWeaver平台的先进的企业商业智能系统项目,展现一个EDW(企业数据仓库)构架的企业数据仓库的建设。,5,13.1 系统介绍,13.1.1 系统建设的背景13.1.2 系统定位和总体结构,6,13.1.1 系统建设的背景,随着近几年信息技术的日益成熟和ERP(Enterprise Resource Planning,企业资源计划)软件供应商对市场的大力培育,ERP系统已逐渐被企业界广泛接受,并成为不少成功企业提高经营管理效益的关键事务处理系统。ERP系统是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策及事务处理的管理平台。它是从
3、MRP(物料需求计划)发展而来的新一代集成化管理信息系统,它扩展了MRP的功能,其核心思想是供应链管理。它跳出了传统企业边界,从供应链范围去优化企业的资源。ERP系统集信息技术与先进的管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石。它对于改善企业业务流程、提高企业核心竞争力的作用是显而易见的。,7,ERP的成功实施和应用,在使企业流程规范化的同时,也使得企业管理系统能处理的数据量呈指数性增长。对企业管理者来说,相当程度上,企业管理就是“信息的管理”,大量准确、及时的数据信息库无疑就像一座高品位的金矿一样,会让其
4、兴奋不已。如何开采和利用这些“金矿”无疑就成为了急待解决的问题。,13.1.1 系统建设的背景,8,13.1 系统介绍,13.1.1 系统建设的背景13.1.2 系统定位和总体结构,9,13.1.2 系统定位和总体结构,考虑到集团型企业数据仓库的实际使用和日后的维护,系统将采用EDW(企业数据仓库)建模思想为该企业构建数据仓库。在系统实现中,鉴于该企业实施ERP使用的是SAP公司的R/3系统,其系统内部表结构极其复杂,使用其它工具来实施数据仓库项目将面临非常大的开发量和风险。为保证数据仓库项目的顺利实施和与现行系统的无缝连接,将采用基于SAP NetWeaver的SAP BI(Business
5、 Intelligence)对现已在线运行的SAP R/3系统的数据进行抽取, 根据EDW的建模思想构建企业数据仓库,并使用SAP Enterprise Portal(企业门户)对报表进行展示和与其他业务系统连接。,10,如图13.1所示,系统总体结构以目前企业中运行的SAP R/3系统和其他业务系统为基础,将SAP R/3系统和其他业务系统作为数据仓库的数据源提取数据,数据在数据仓库中根据规则层层上载并根据需要加工、处理、合并,最终将数据存放在Cube中,基于Cube设计报表,在企业门户中进行展示和分析。,13.1.2 系统定位和总体结构,11,图13.1 系统总体结构,13.1.2 系统定
6、位和总体结构,12,1. EDW建模特点,13.1.2 系统定位和总体结构,1. 数据不直接进数据分析区,先进操作数据存储区(ODS,Operational Data Store);,2. 不同业务含义的数据、不同数据源的数据、不同明细级别的数据分别存储在不同的ODS中;,3. 从源系统抽取的数据不做任何清洗和转换等处理,直接将原始数据存储在最底层的ODS中;,4. 根据子公司(部门)以及集团(总部)的需求,创建数据转换和清洗后的ODS,数据来源于底层的ODS;,5. 汇总数据进数据分析区,根据报表及分析需求,创建多级方体MultiCube),报表基于相应的多级方体创建;,6. 统一考虑面向主
7、题的分析维度,集团(总部)和子公司(部门)基于分析需求创建不同主题的分析维度,以满足各自需要。,13,图13.2 SAP BI标准EDW模型,2. SAP BI标准EDW模型,13.1.2 系统定位和总体结构,14,如图13.2所示,EDW的建模思想将数据仓库区分为三个层次:(1)Extract Layer(数据提取层)SAP BW将数据仓库的数据源分为两种:SAP数据源和Non-SAP数据源。SAP BW和的组件完全集成,将各组件的数据源由预定义的提取机构及程序传输到BW的数据提取层。对于Non-SAP的数据源,BW有开放的构架,通过BAPI接口传输数据。提取层的数据保留了来自源系统的原始数
8、据,存储在二维的表中,以便于下一步的数据清洗、转换和整合。其优点是:一次抽取到BW后,如果需求有所变动,不需要重复去源系统中提取相关数据,而直接在BW中处理,提高数据仓库的提取效率,降低对源系统的资源占用。(2)Integration Layer(数据合并层) 将提取层的原始数据进行清洗和整合,其实质就是建立数据源之间的关联,把有用的相关数据统一放在二维表中,例如:把FI和CO的数据源整合到一个表中,以便于下一层建模的使用。数据合并层能够将提取层的原始数据自由组合,满足多变的业务需求。,13.1.2 系统定位和总体结构,15,(3)DataMart Layer(数据集市层) 最终的报表将在这层
9、模型上建立,所以,该层将使用星形数据模型(SAP BW中称之为InfoCube)创建不同的分析维度,提高查询的效率。 数据上载的流程从源系统到数据提取层,由数据合并层清洗、整合后传输到数据集市层建立多维模型。EDW建模思想的优势在于:将未来企业可能发生的业务变化,用三个层面的模型灵活处理。例如:当企业组织构架变化,即主数据发生变化后,BW可以在数据合并层应对主数据的变化。,13.1.2 系统定位和总体结构,16,优点:,3. EDW模型优缺点分析,13.1.2 系统定位和总体结构,1. 从模型体系结构上反应出公司的总体组织构架,标明子公司(部门)各自的业务特点;,2. 保留了业务系统(ERP和
10、其他业务系统)的原始数据,便于数据核实;,3. 能够满足集团(总部)、分公司(部门)各自的分析需求;,4. 能够灵活调整模型结构,满足新增需求,而不需要重新抽取数据,增加业务系统负荷,影响企业业务正常运转;,5. 在不需要改变数据源的前提下,新增模型和报表将相对容易,减少了实施和维护工作量;,17,缺点:,13.1.2 系统定位和总体结构,1. 由于存在多层的ODS,将增加系统的数据存储量;,2. 复杂的模型体系构架,需要维护人员更深地了解系统和业务知识;,3. 对数据上载的监控工作量大。,18,第十二章 企业数据仓库系统构建,13.1 系统介绍13.2 系统分析与设计13.3 系统实现13.
11、4 数据(报表)展示和接口探讨13.5 本章小结,19,13.2 系统分析与设计,数据仓库构建时通常采用“自顶向下、逐步求精”的方法,因此系统分析和设计过程采取逐层深入的策略,分为系统需求分析、模型设计和ETL设计。,20,13.2 系统分析与设计,13.2.1 系统需求分析13.2.2 系统模型设计,21,13.2.1 系统需求分析,这一阶段的主要工作是确定数据仓库的主要主题及相互关系,即对需求范围内的业务及其间关系进行高度概括性的描述,把密切相关的业务对象进行归类,即划分主题域,并对每个主题域进行较为明确的描述。1. 概要分析抽调ERP各业务模块人员组成BW项目组,根据与业务部门的相关人员
12、进行交流和调研,对每个模块(主题)的需求从关键指标、分析维度、分析方法进行了分析,最终形成概要分析报告。并对今后的工作列出详细的时间计划。,22,以生产模块(主题)为例,通过调研、交流和分析得到:关键分析指标: 1)量(产量、计划产量、交库数、入库数量、出库数量、库存数量); 2)率(计划完成率、成材率等)。 主要分析维度: 1)组织维度:公司 、工厂 、库存地、车间; 2)物料维度:大类、中类、小类、细分类、产品组、牌 号、物料组、生产调度员; 3)时间维度:年月、年月日、年、季、周。 主要分析方法: 1)比较分析(同比、环比); 2)趋势分析;,13.2.1 系统需求分析,23,3)比例分
13、析。最终将企业生产模块的主题分为两大类:一类是经营决策类,另一类是日常管理。列出需要在本期项目组组织开发的主题清单。在需求调研过程中,发现有部分报表的数据不能直接从目前的ERP系统中取得,需要从外部手工导入,或者需要在ERP系统规范业务操作、完善业务流程处理后才能获得,还有部分数据获取比较困难,例如钢材成材率,需要从已知的成品反查钢坯重量并计算才能得出,但在系统中反查钢坯信息非常困难,会导致系统性能大幅下降。,13.2.1 系统需求分析,24,2. 详细分析在概要分析的基础上,初步确定数据仓库最终的主题及报表展现格式。并分解各主题(报表)指标,梳理数据逻辑关系,包括确定与SAP R/3系统相应
14、字段的关联。例如表13.1中“生产调度员”字段,因为业务不同,在SAP R/3中很多数据库表都包含了该字段,而且字段名称和描述可能不一致,需要将该字段与SAP R/3数据库表MARC中的FEVOR字段对应。,13.2.1 系统需求分析,25,13.2.1 系统需求分析,26,梳理完成所有的主题和指标,以及确定了主题(报表)数据的来源,最终提交详细分析报告,经过业务部门相关人员和领导、内部顾问、外部顾问签字确认后,进入实际建模阶段。在详细分析时要充分考虑数据仓库逻辑设计中要解决的一个重要问题:决定数据仓库的粒度划分层次,粒度层次划分适当与否直接影响到数据仓库中的数据量和所适合的查询类型。粒度是对
15、数据仓库综合程度高低的一个衡量。粒度越小,用的存储空间越多,细节程度越高,综合程度越低,回答查询的种类越多;反之粒度越大,用的存储空间越少,细节程度越低,综合程度越高,回答查询的种类越少。在实际应用中,粒度往往决定了指标的详细程度。例如一个炼钢作业区一个月生产了1000个批次的钢坯,对应每个批次产生的信息就是最低级别的粒度。但对分析统计人员来说,只需要了解这个作业区在本月内每天各生产什么品种的钢坯以及产量,而对于更高级别的统计员来说,只关心该作业区本月生产钢坯的大类及产量。由此可以看出,不同层次的分析统计人员,对数据粒度的要求是不同的。详细分析时就需要充分考虑这些用户的需求,使最终的模型能够满
16、足各种用户的需求。,13.2.1 系统需求分析,27,13.2 系统分析与设计,13.2.1 系统需求分析13.2.2 系统模型设计,28,根据EDW建模思想和考虑到数据仓库日后实际维护工作的开展,根据数据用途不同将数据仓库分成了不同的业务模块(分析主题)。如图13.3所示,“企业数据仓库平台”下面包含工程、销售、采购与库存、生产、质量、设备、人力资源、公共对象、财务和成本等分析主题。单个分析主题下按EDW的建模思想又包含:主数据、原始数据层、数据仓库层、数据分析层(如图13.3中“成本”之下的层次)。,13.2.2 系统模型设计,29,图13.3 系统业务模块(分析主题)及数据层次,13.2
17、.2 系统模型设计,30,主数据:包含该主题(模块)建立数据仓库时需要的信息对象(系统中已存在大部分信息对象,但不能全部满足用户需求,可以用户自定义新建信息对象)。 原始数据层:保存从SAP R/3或外部文件获取的数据于ODS中,不加以任何修改计算。另外,数据源、信息源、通讯结构、传输规则等也包含于原始数据层中。 数据仓库层:该层将原始数据层中存储的原始数据进行加工后保存于ODS。加工过程实际就是通过更新规则对数据进行计算、更改。 数据分析层:数据分析层以CUBE(数据立方体)形式存储数据仓库层加工后的数据。CUBE只存在于数据分析层中,所有的查询或报表均从CUBE中取得数据。,13.2.2
18、系统模型设计,31,数据仓库系统的构建除了在分析和设计上与OLTP系统的构建存在差别以外,构建一个数据仓库还涉及到一个非常关键的、构建OLTP系统所不涉及的任务,即从不同的数据源中抽取、传输、转换和加载数据(ETL)到一个数据仓库中。ETL的设计与对SAP R/3、SAP BW系统和业务的熟悉程度非常相关,缺乏任何一部分知识支撑将无法建立合理适用的ETL过程。设计合理、高效的ETL过程是数据准确无误上载的保证。ETL是一个复杂的、需要花费大量时间的任务。任何错误都有可能危害到数据的质量,而数据质量直接影响到企业决策的制定。基于这个原因,对绝大多数数据仓库项目来说,ETL能在计划的时间和既定的预
19、算内完成有很大的难度。任何数据仓库的ETL都依赖于源系统的数据,SAP BW也不例外。在SAP BW中抽取数据的过程有不同的方式,以支持不同的数据源。,13.2.2 系统模型设计,32,从源系统(比如SAP R/3)抽取数据时,关键在于识别合适的数据。要完成这一任务,必须很好地理解源系统,基于源系统整理好源系统与目标系统之间的字段对应关系。在数据传输时,按规则将源系统中的大量数据上载到数据仓库。这需要规划一个符合实际的数据传输计划,并且拥有可靠的快速网络。在数据转换时,对数据进行格式化处理,以在数据仓库中保持一致。比如:可能需要将某个记录的多个名称(比如AT&T、ATT或者Bell)转换成为一
20、个单独的名称(比如AT&T);原始数据可能位于不同的数据库中,也可能使用了不同的数据类型,或者在不同的文件系统中具有不同的文件格式。在数据加载时,为了将数据正确、快速地加载到数据仓库中,需要开发一个稳定性比较好的错误处理程序。,13.2.2 系统模型设计,33,图13.4 系统的ETL流程图,13.2.2 系统模型设计,34,SAP将ETL也作为BW的组成部分,系统ETL流程如图13.4所示。最原始的数据可以来自文件、SAP R/3系统,也可能来自其他数据库;数据源(DataSource)中的传送结构(Tansfer Structure)复制到信息源(InfoSource),这些结构通过映射和
21、转换规则(Mapping & Tansfer Rules)转换为通讯结构(Communication Structure),再通过更新规则(Update Rules)到达CUBE、数据对象(Info Object)及其它的数据目标(Data Targets)。,13.2.2 系统模型设计,35,第十二章 企业数据仓库系统构建,13.1 系统介绍13.2 系统分析与设计13.3 系统实现13.4 数据(报表)展示和接口探讨13.5 本章小结,36,13.3 系统实现,13.3.1 数据上载13.3.2 立方体聚集和多立方体 13.3.3 处理链 13.3.4 系统的配置和管理,37,13.3.1
22、 数据上载,1. 标准数据源的数据上载图13.5是系统进入“生产产量”数据立方体需要经过的主要步骤,从最底层的数据源开始介绍如何构建该立方体和该立方体的数据流。,图13.5 “生产产量”系统的ETL流程图,38,(1)在SAP R/3系统中创建、激活数据源系统标准数据源,即SAP为常用业务创建的数据源。标准数据源无须再创建,在SAP R/3系统中将其激活即可使用,用户可根据需求选择合适的标准数据源。例如系统的标准数据源2LIS_03_BF的创建和激活界面如图13.6所示。,图13.6 系统标准数据源2LIS_03_BF,13.3.1 数据上载,39,使用标准数据源一般不需要更改系统的增量参考字
23、段,SAP R/3系统会自动记录未更新到SAP BW的数据,将该部分数据存储为增量队列,SAP BW提取数据时,只需要到队列中提取,提取后将队列数据删除,即不会造成数据重复上载,同样也不需要判断数据是否上载。第一次上载数据时需要手工将历史数据置于队列中,此操作对SAP R/3系统性能影响非常大,因为普遍数据量都在1亿条以上,非常复杂的关联关系造成系统运算量巨大,该工作只能定义作业在SAP R/3系统空闲时运行,物料凭证数据在正常情况下5小时左右才能收集完成。当激活了该数据源后在SAP R/3系统中即可查看相关信息。,13.3.1 数据上载,40,1)查看数据源的描述和所属模块如图13.7所示,
24、可以看到该数据源的名称、所属的应用组件名称、数据源的文本表述。因为生产产量是物料移动中的一个子集,物料移动又属于MM(物料管理)模块,故该数据源的“应用程序组件”是“MM”。,图13.7 标准数据源2LIS_03_BF的描述和所属模块,13.3.1 数据上载,41,2)查看数据源中的字段如图13.8所示,可以看到数据源中包含的字段,也可看出用于数据提取的选择字段、隐藏字段、通过程序控制的转换字段。系统为这些字段自动生成了一个提取结构用于提取数据。,13.3.1 数据上载,42,图13.8 标准数据源2LIS_03_BF的字段,13.3.1 数据上载,43,3)查看提取结构从提取结构中可以看出数
25、据源中字段与SAP R/3系统字段的对应关系和字段的相关信息(如图13.9所示)。提取结构代表着每个字段将从SAP R/3系统中的哪个数据库表中提取哪个字段。,13.3.1 数据上载,44,图13.9 标准数据源2LIS_03_BF的字段,13.3.1 数据上载,45,(2)SAP BW中的传输结构/传输规则有了SAP R/3的数据源,还需要将数据源中的字段与SAP BW系统中的信息对象对应起来,传输规则即代表着数据源与信息源(是信息对象逻辑组合在一起而形成的一种结构)字段之间的关联关系。在此关系中不进行任何的处理,数据按最原始的状态进入SAP BW系统中,这是为了数据出错时容易确定错误原因,
26、或在修改上层模型后,不需要重新抽取数据造成SAP R/3的系统压力。如图13.10是标准数据源2LIS_03_BF的传输结构/传输规则示例。,13.3.1 数据上载,46,图13.10 SAP BW 传输结构/传输规则示例,13.3.1 数据上载,47,(3)SAP BW中数据上载、加工在定义的传输规则下,数据进入了原始数据层的ODS,该部分数据未进行任何加工,与SAP R/3系统中数据完全一致。而数据的上载、加工,则是开始对SAP BW系统原始数据层的ODS数据进行转换和人工干预。每次上载或加工数据后,系统会在数据库表的 “0RECORDMODE”字段(该字段由系统自动生成)里打上标记,下次
27、数据上载时,将不再提取标记过的数据,以减轻系统的工作量。若上层将数据删除,则标记自动取消,再次上载数据时,会把所有数据重新上载。,13.3.1 数据上载,48,手工干预数据的方式有多种多样,例如:通过借贷方标识判断金额的正负,通过移动类型判断库存的进出,通过特性值从其他的ODS中读出相关信息等。但始终要遵循着“不改变原始数据值”的原则进行手工干预。例13.1 手工干预数据上载示例。生产版本号只存在于生产订单的信息中,在物料凭证中并不包含该信息,但最终的报表却需要该信息。在原始层数据上载至数据仓库层时,根据生产订单编号来读取生产版本号。如图13.11,首先选择已知的源字段“订单编号”,再选择目标
28、字段“生产版本”,之后通过“例程”对目标字段进行操作。,13.3.1 数据上载,49,图13.11 手工干预数据上载示例,13.3.1 数据上载,50,通过“例程”对目标字段进行操作是使用ABAP 语言进行例程代码的编写,如图13.12所示,当物料凭证的生产订单号不为空时,从/BIC/AZEPP_O0100表(该表存储生产订单的基本信息)中查询出生产版本号赋予RESULT字段返回。,图13.12 例程代码的编写示例,13.3.1 数据上载,51,不难看出,若需要这样的操作,生产订单的原始数据上载必须早于物料凭证的数据上载时间,否则程序无法读出对应的信息。这就需要对数据上载的先后顺序进行合理的规
29、划。例13.2 清理不需要的数据例程编码示例。生产产量只是物料移动的一个子集,需要清理“生产产量”立方体不需要的数据,避免立方体中存在大量冗余数据而导致系统性能下降。在ABAP中可以使用简单的SQL语句对表进行操作,具体程序如图13.13所示。,13.3.1 数据上载,52,图13.13 清理“生产产量”立方体不需要的数据,经过上述各层的数据上载和转换后,最终数据保存到数据分析层的CUBE中, 原始数据、中间数据分别存放在原始数据层和数据仓库层的ODS中。,13.3.1 数据上载,53,(4)数据上载方式和监控数据的上载更新方式有:完全更新和Delta更新。完全更新是指BW将加载Select
30、data(选择数据)标签页下的选择规则中指定的所有数据。Delta更新是BW将只加载那些上次更新以后累积下来的数据,在执行Delta更新以前,Delta过程必须初始化。在SAP BW中,数据上载的情况可以通过信息对象的监控器来查看。如图13.14所示,可以查看数据上载的明细情况、任务的开始时间和耗用时间等,从而大体判断数据上载和系统工作是否正常。,13.3.1 数据上载,54,图13.14 数据传输处理监控器示例,13.3.1 数据上载,55,2. 非标准数据源的数据上载非标准数据源就是指在SAP标准数据源不能满足用户需求的情况下手工在SAP R/3系统中建立的数据源,这些数据源可以是SAP
31、R/3数据库表、自定义数据库表、视图等。下面以一个质量管理(QM)模块自定义视图作为数据源简述非标准数据源的数据上载。 (1)在SAP R/3系统中创建视图如图13.15所示是SAP R/3系统的视图创建界面,填写需要的字段及表名等信息。非标准数据源的数据上载要求开发人员对业务流程清晰,并能准确地在SAP数据库中寻找到需要的相应的字段。,13.3.1 数据上载,56,图13.15 SAP R/3系统的视图创建界面,13.3.1 数据上载,57,(2)在SAP R/3系统中定义数据源如图13.16所示,数据源分别为三类:业务数据、主数据和文本。后续操作与SAP标准数据源相同。由于可以自定义数据源
32、,一些用户需要的特殊数据可手工上载。,图13.16 数据源类型定义界面,13.3.1 数据上载,58,13.3 系统实现,13.3.1 数据上载13.3.2 立方体聚集和多立方体 13.3.3 处理链 13.3.4 系统的配置和管理,59,13.3.2 立方体聚集和多立方体,实际应用中,用户有时只访问数据立方体中的部分信息。在这种情况下,可以创建一个新的数据立方体(原始数据立方体的一个子集),它只包含用户需要的数据。这个新的立方体可以是物理存在的(例如“生产产量”立方体),也可以是虚拟的。因为新的立方体更小了,在查询过程中它所需的数据交换量也会变小,因此,用户的查询性能将有所提高。SAP BW
33、中创建一个子数据立方体的过程称为聚集(Aggregate)。一个数据立方体上可以具有多个聚集,聚集对于用户是透明的,BW OLAP处理器负责选择合适的聚集,如果不存在合适的聚集,BW OLAP处理器将从原始数据立方体中检索数据。也就是说,用户是在数据立方体上创建查询,而不是在聚集上创建。,60,与聚集(数据立方体的子集)不同的是,通常还需要将来自多个数据立方体的数据结合起来,进行交叉主题分析,比如同时进行销售和运输的数据分析等。查询只可以在单独一个数据立方体上创建。要克服这一局限性,必须创建一个更大的、同时包含销售和运输数据的立方体。但是同时包含销售和运输数据的立方体将会变得非常大,从而导致查
34、询性能降低。不妨设想一下,如果需要在采购、库存、销售、运输到账单支付的交叉主题上分析,采用这种方法将会发生什么样的情况。 为了解决这个问题,BW提供了一种称为多立方体(Multi-Cube)的技术。相应地,前面所讨论的数据立方体称为基础立方体(Basic Cube)。在多立方体中并不包含实际的数据,它只是将基础立方体连接起来。例如:生产订单(ZAPP_M01)这个多立方体包含了4个基础立方体(如图13.17所示)。可以按照在基础立方体上创建查询的方法,在多立方体上创建查询。,13.3.2 立方体聚集和多立方体,61,图13.17 生产订单(ZAPP_M01)多立方体包含了4个基础立方体,13.
35、3.2 立方体聚集和多立方体,62,13.3 系统实现,13.3.1 数据上载13.3.2 立方体聚集和多立方体 13.3.3 处理链 13.3.4 系统的配置和管理,63,13.3.3 处理链,完成了系统的开发和测试后,可以将定期执行的数据包、DTP等放入处理链中,由系统根据定义自动定时完成数据的抽取和上载,如同oracle中的SUBMIT。处理链的定义包括:,1. 标识一个工作;,2. 何时运行这个工作;,3. 何时重复执行这个工作;,4. 监控增量数据抽取。,64,图13.18 一个处理链示例,13.3.3 处理链,65,可以通过处理链查看数据上载情况。如图13.19所示,绿色(浅色)代
36、表数据正确上载,红色(深色)代表数据上载错误,需要维护人员找出错误原因并处理。,图13.19 处理链错误示例,13.3.3 处理链,66,双击错误的处理链,得到如图13.20所示的信息,可以分析数据上载错误的原因 .,图13.20 处理链错误原因分析,13.3.3 处理链,67,13.3 系统实现,13.3.1 数据上载13.3.2 立方体聚集和多立方体 13.3.3 处理链 13.3.4 系统的配置和管理,68,13.3.4 系统的配置和管理,为了保证正式系统的安全和稳定,不允许直接在正式系统中进行任何的数据修改。所有修改须在测试系统中完成并通过测试后,通过传输请求将更改传输至正式系统。在S
37、AP R/3中,新建视图、修改配置均会自动产生请求号;在SAP BW中,在新建模型和规则时不产生请求号,需要手工对新建的模型和请求进行收集打包,只有在修改情况下产生请求号,这样的机制保证模型和规则在未经测试前不上传到正式系统。如图13.21所示,请求号BWDK901083中的数据不能上传到正式系统,那么在测试系统中将不释放该请求;请求号BWDK901228中的数据需要上传,则释放该请求,请求释放后,由BASIS(专门负责系统运行的人员)将请求中的内容传输到正式系统。,69,图13.21 请求管理示例,13.3.4 系统的配置和管理,70,第十二章 企业数据仓库系统构建,13.1 系统介绍13.
38、2 系统分析与设计13.3 系统实现13.4 数据(报表)展示和接口探讨13.5 本章小结,71,13.4 数据(报表)展示和接口探讨,数据仓库建模完成后,并不代表数据仓库开发完成,数据存在于立方体中,需要报表制作工具将数据进行展示。如果数据仓库中的数据还将被别的系统所使用,必然需要在数据仓库系统中开发接口程序将数据传输至另外的系统。本节将介绍如何将SAP BW数据仓库的数据进行展示,并探讨SAP BW数据仓库接口程序的开发和实现。,72,13.4.1 数据(报表)的展示13.4.2 SAP BW数据仓库接口程序的开发和实现,13.4 数据(报表)展示和接口探讨,73,13.4.1 数据(报表
39、)的展示1. 报表制作数据仓库建立完成并成功上载数据后,使用SAP Query Designer设计报表(查询),该工具是专门针对SAP BW数据仓库报表的开发而设计的。在建立一个新报表前,需要选择一个数据立方体或多立方体,系统将该立方体或多立方体的维度和度量指标等提供给用户设计报表。如图13.22是SAP Query Designer界面,该界面分为五个部分,左边为立方体的结构,包括维度、度量指标、导航属性等;右上部分为过滤器,可以将维度、导航属性、立方体(多立方体)过滤,此处的过滤条件是全局性的;中间部分为自由特性,将报表分析时的各维度层次信息放于其中,它们在报表运行时不显示,仅作为分析的
40、维度;右中和下中分别为报表的列和行,当报表第一次运行时,将按行列的格式进行展现;右下是报表格式的预览窗口,不可以在其中进行任何操作。,74,图13.22 SAP Query Designer界面,13.4.1 数据(报表)的展示,75,可以对报表(查询)的每个度量指标进行限制(如图13.23)或定义度量指标间的运算关系(如图13.24),图13.23 描述“产量”度量指标,图13.24 处理度量指标的运算示例,13.4.1 数据(报表)的展示,76,2. 报表(查询)展现报表的展现方式有: WEB页面的展示(如图13.25); 企业门户(EP)的展示(如图13.26和13.27); EXCEL
41、展示(如图13.28)。,图13.25 WEB页面的报表展现示例,13.4.1 数据(报表)的展示,77,图13.26 企业门户(EP)报表展示示例1,13.4.1 数据(报表)的展示,78,图13.27 企业门户(EP)报表展示示例2,13.4.1 数据(报表)的展示,79,图13.28 EXCEL报表展示示例,13.4.1 数据(报表)的展示,80,3. OLAP功能SAP BW的数据(报表)均可使用OLAP功能,进行更改分析维度、追溯(钻取)、切片、行列互换等OLAP操作。以生产数据信息(生产产量兑现率报表)为例,讨论这些OLAP功能和特点。图13.29是生产产量兑现率报表的初始状态。,
42、图13.29 报表初始状态,13.4.1 数据(报表)的展示,81,(1)更改分析维度原来报表是按工厂作业区进行展现,通过更改分析维度,可以按工厂物料大类进行展现(如图13.30);也可按工厂库存地展现(如图13.31)。,图13.30 生产产量兑现率按工厂物料大类展现,13.4.1 数据(报表)的展示,82,图13.31 生产产量兑现率按工厂库存地来展现,13.4.1 数据(报表)的展示,83,(2)追溯(钻取)从物料大类(成品、半成品)开始向下追溯(如图13.31),一直可以追溯至立方体中最小的粒度。,图13.32 对物料大类(成品、半成品)的追溯(钻取)操作,13.4.1 数据(报表)的
43、展示,84,(3)切片切片是在某一维上选定一个取值,而观察其它维上数据的变化情况的操作。例如选定维“作业区”的值是“炼钢厂第二作业区”(如图13.33),可以分析“炼钢厂第二作业区”的生产情况。,图13.33 OLAP切片操作示例,13.4.1 数据(报表)的展示,85,(4)行列互换行列互换在OLAP中又称为数据旋转,该功能可以适应不同用户的分析习惯和不同的分析方法。图13.34是对图13.33进行行和列互换操作后的结果。,图13.34 对图13.33进行行和列互换操作后的结果,13.4.1 数据(报表)的展示,86,13.4.1 数据(报表)的展示13.4.2 SAP BW数据仓库接口程序
44、的开发和实现,13.4 数据(报表)展示和接口探讨,87,13.4.2 SAP BW数据仓库接口程序的开发和实现,从上述不难看出SAP BW的报表较为规范,OLAP功能强大,但一般的企业往往存在一些个性化、综合类的报表,甚至同张报表中数据间无直接联系,或者报表中含有分析性的语言等。SAP BW难以提供此类报表,解决的方法是:把SAP BW中加工好的数据取出后,再利用其他软件设计、开发出适合企业的个性化、综合类的报表。,88,1. 设计思路针对企业内个性化、综合类的报表,开发一套专门的软件(称为统计系统),以SAP BW数据为基础,手工补充录入SAP系统中没有而报表需要的数据,最终形成个性化的、
45、综合性的报表用于查看和外报。具体思想:首先在SAP BW中开发一些功能函数,之后由统计系统开发人员使用RFC(Remote Funciton Call)调用SAP BW功能函数。SAP BW将报表的变量、行列指标、表内数据以数据流的形式发送至统计系统,统计系统通过解析数据后,将需要的数据填入报表相应位置,再补充手工录入部分,最终形成完整的报表然后进行展现。,13.4.2 SAP BW数据仓库接口程序的开发和实现,89,2. SAP BW功能函数根据报表名称读取报表的基本指标,并只保留需要传送至统计系统的指标。由于BW的报表是多维度、可追溯的报表,而统计系统只需要固定格式的一串数据流,所以需要把
46、统计系统不需要的指标去除。以图13.35为例介绍系统已开发的几个功能函数及获取BW报表信息的过程。其操作步骤如下:1)通过功能函数ZBW_BEX_MDL110查看报表的变量和条件。它根据输入的报表编号,将相应报表的所有变量列出来。如图13.36是图13.35报表的部分相关变量和条件。它的变量名称是由方括号括起的,所以之后的变量输入也必须遵循这种固定格式。,13.4.2 SAP BW数据仓库接口程序的开发和实现,90,图13.35 一个BW报表示例,13.4.2 SAP BW数据仓库接口程序的开发和实现,91,图13.36 图13.35报表的部分相关变量和条件,2)调用功能函数ZBW_TJXT_
47、MEMBE得到报表的名称、统计指标项名称等 信息(即报表的列信息),在此可以将统计系统不需要的字段删除。 如图13.37所示。,13.4.2 SAP BW数据仓库接口程序的开发和实现,92,图13.35中报表的列信息,图13.37 调用功能函数ZBW_TJXT_MEMBE后的结果,13.4.2 SAP BW数据仓库接口程序的开发和实现,93,3)调用功能函数ZBW_TJXT_LEFT读出报表的维度(即报表的行信息)。如图13.38。4)上述步骤后,图13.35报表的变量、行、列信息已输出到了目标系统。剩下的工作就是填入数据。调用功能函数ZBW_TJXT_DATA,以如图13.39形式填入变量条
48、件(公司代码和报表年月),运行后即可将SAP BW中的报表数据读出。如图13.40为报表数据头,而图13.41是所读出的形成流数据的数据信息。,图13.38 调用ZBW_TJXT_LEFT读出报表的行信息,13.4.2 SAP BW数据仓库接口程序的开发和实现,94,图13.39 功能函数ZBW_TJXT_DATA填写变量条件示例,图13.40 调用功能函数ZBW_TJXT_DATA后得到的报表数据头,13.4.2 SAP BW数据仓库接口程序的开发和实现,95,图13.41 调用功能函数ZBW_TJXT_DATA后得到的报表数据,13.4.2 SAP BW数据仓库接口程序的开发和实现,96,
49、可以看出,“RINDX”指的是报表的单元格编号(列编号),依次将数据填入步骤2)和步骤3)所建立的行列交叉的单元格中,即完成了SAP BW报表数据的输出。统计系统得到这些数据后,再根据用户的需求,将数据按用户要求的格式进行展示。,13.4.2 SAP BW数据仓库接口程序的开发和实现,97,第十二章 企业数据仓库系统构建,13.1 系统介绍13.2 系统分析与设计13.3 系统实现13.4 数据(报表)展示和接口探讨13.5 本章小结,98,13.5 本章小结,本章详细介绍了一个企业数据仓库系统。首先,对系统做了概述,包括系统建设的背景、系统定位和系统总体结构等。其次,讨论了系统需求分析和模型设计。随后,对系统的ETL设计做了阐述。接着,讨论了系统实现,包括标准、非标准数据上载、立方体聚集、多立方体等数据仓库技术。最后是数据(报表)展示和接口探讨。信息化建设只有起点没有终点。而且SAP BW进入中国才短短几年,成功经验和可以借鉴的做法相对较少,还处于逐步摸索的阶段,这也为今后的研究和开发留下广阔的空间。,99,End of Chapter 13,