一个典型的BI系统介绍
BI商业智能系统应具有的主要功能:
读取数据——可读取多种格式(如Excel、Access、以Tab分割的txt和固定长的txt等)的文件,同时可读取关系型数据库 (对应ODBC)中的数据。
分析功能——关联/限定
关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。关联分析的重点在于快速发现那些有实用价值的关联发生的事件。
数据输出功能——打印统计列表和图表画面等,可将统计分析好的数据输出给其他的应用程序使用,或者以HTML格式保存。
定型处理——所需要的输出被显示出来时,进行定型登录,可以自动生成定型处理按钮。以后,只需按此按钮,即使很复杂的操作,也都可以将所要的列表、视图和图表显示出来。
以国外的一个BI系统为例,我们来介绍一个BI系统的主要功能,这个系统主要包含数据仓库管理器(Warehouse Manager)、数据复制(Data
Propagator)、多维数据库(OLAP Server)、前台分析工具(Wired
for OLAP)以及数据挖掘(Intelligent Miner)、On
Demand。
数据仓库管理器(Warehouse
Manager)
它主要由以下几部分功能组成:数据访问,数据转换,数据分布,数据存储,靠描述性数据查找和理解数据,显示、分析和发掘数据,数据转换过程的自动化及其管理。它缩短了复杂的海量数据与有洞察力的商务决策之间的差距,有助于公司更进一步了解其业务、市场、竞争对手和客户。
数据复制 (Data Propagator)
Data Propagator提供的复制功能允许从一个数据源读取数据并把它送到另外一个地方,而且可以是双向的。当发生冲突时,可自动检测出来并进行补偿。此外,它还有以下特色:
1)Pull Architecture Through Staging Tables(分级表牵引式体系结构):二个组成部分---- Capture和Apply。Capture部分在源数据库服务器上运行,它捕获要被复制的数据,并把数据放入服务器分级表中;Apply部分在目标机上运行。在用户定义的时间间隔里或某个事件发生后,它连到源数据库中,并从分级表中抽取所需的数据。这种被动的“牵引式”体系结构减少了数据源的额外开销,能够支持数据源及目标机的独立运作性以及新一代流动计算机作为目标机的数据复制。这种体系结构还支持中介分级表,其中最初的源可以复制到区域目标中,然后再复制到各区域内的目标机上。
(2)支持更新和修正:既支持更新也支持修正复制。Apply可以完全替换目标数据或者仅仅修正上次复制以来所发生的改变。
(3)改变事务运行记录的Capture:捕获数据修改。它从数据库运行日志(LOG)中读出修改,从而抓取用于复制的数据修改,进而安排好这些数据。这就减少了对源的额外开销,不需要另外处理如触发器。甚至可以直接从内存中读运行记录,以减少I/O。
(4)加工数据:数据首先要从运行记录移到分级表,所以能在复制之前加工或处理它;由于分级表是数据库表,使用标准SQL就能定义加工处理功能。除了通过SQL来构造子集,汇总并连结表以外,分级表还能提供基于时间分析源数据改变的方法。这要考虑到整个新一类的应用包括检查跟踪,历史分析,"asof"查询等等。
( 5)GUI管理机构:通过图形用户界面可以定义和管理数据拷贝,定义代码和触发器没有专门语言。这样最终用户就有权定义和管理,而不仅仅是DBA和程序员的范围。
多维数据库服务器(OLAPServer)
该工具在商务智能中扮演着重要角色,可以深入最终用户的业务,对桌面上的数据进行实时操作,能够快速地分布传统监视和报告范围之外的应用程序数据。
数据挖掘工具(IntelligentMiner)
当用户的数据积累到一定数量时,这些数据的某些潜在联系、分类、推导结果和待发现价值隐藏在其中,该工具帮助客户发现这些有价值的数据。
Wired for OLAP
使用该功能可以提高信息技术组织的效率。信息技术人员可以让用户利用分析和报表的功能获得他们所需的信息,而不会失去对信息、数据完整性、系统性能和系统安全的控制。
(1)强大功能的报表
繁忙的信息技术部门可以在几分钟内创建用于在企业中分发的完善的报表。,决策人员可以从该Web页面上找到可用的一系列报表。
(2)图形化分析
远远超出对数据的静态图形化视图,提供强壮的图形化OLAP分析。决策人员可以根据需要排序、分组数据并改变“图表”(Chart)的类型(直方图、饼形图、线图、堆积图)。图表中的元素可以被“钻取”到其他的细节层次,并可以返回来恢复一个概要性的视图。
(3)多种图表视图:直方图、线图、组合图、饼形图、堆积图和离散点图
(4)可在任何地方“钻取”没有路径的预先定义
(5)完善的报表:复合报表通过用各种不同的形式(交叉表、图表、表格或以上几种形式的组合)来表现分析结果,对工作进行概括;优美格式的商用报表。
(6)交互式的、立即的“所见即所得”(WYSIWYG)显示
OnDemand
该工具提供给客户一套高性能的解决方案来进行在线捕获、存储和重取计算机输出的文档。它使得落后的纸张文件搜索和使用缩微胶片阅读器搜索称为历史。有了OnDemand,客户可以立刻发现特定的信息并且很容易地浏览它,而不用在庞大的数据和纸张中苦苦寻找;存储、重取和分发企业产生的信息比以前更加方便和易于接受。
泰康人寿 以BI实现战略转型
泰康人寿保险公司从建立之初,就意识到信息化建设对企业发展的重要性。为促进业务的开展,泰康人寿已经建立有多个业务信息系统,主要包含:财务系统、个险系统、团险和银行险系统,呼叫中心以及用于开展电子商务的泰康在线交易系统。这些系统从企业不同需求层面很好的支持了泰康人寿的业务运营。但由于各个系统都有自己的数据,如何将分散在不同系统的客户数据集中起来有效使用,为各部门提供数据分析能力,为决策提供依据,成为目前需要解决的问题。 为此,泰康人寿希望建立一套以CRM为核心的商务智能系统(BI),使公司管理人员能够对与客户(现有客户以及潜在客户)有关的各种要素(需要、方式、机遇、风险、代价等)和企业运营当中各项关键指标(KPI)做出分析与评估,以便于为本企业赢得最大的回报。
泰康人寿商务智能项目最终选择了Sybase寿险行业IWS解决方案,并以此为基础整合原有的五大业务系统,实施九项业务分析主题。
在实施方法上,泰康保险采用了增量式开发,也就是整体设计、分布实施的策略,这可以使泰康人寿能够边实施边见效,并且使用过程中的反馈信息将有助于下一步的开发工作,因此极大地提高了开发的效率。BI项目分成两个主要阶段:第一阶段,完成BI项目的一个或二个分析主题。第二阶段,以第一阶段建立的分析环境为原型,进行更进一步的需求调研,完善和明确BI项目的业务需求,全面地进行IWS的客户化工作。
商务职能系统能够使泰康人寿在成本、收入和战略方面获益。
成本方面:借助商务智能系统,泰康人寿可以得到完整的视图,来分析成本构成,改变成本管理现状,降低业务运作成本。通过CRM 系统提供的各项分析数据,泰康人寿能在商业活动中,以更低的风险,做出最明智的决策。
收入方面:通过对营销员和营销机构产能的分析、利润的分析,可以大大改进泰康人寿在营销过程中的效率,加速产品上市时间,获得更精确更全面的市场和客户信息,实现与合作伙伴之间更好的合作,提高团队效率,保证将重要客户信息提供给需要方而提升交叉销售业绩。
战略方面:借助商务智能平台,泰康能对不断变化的市场环境、客户需求做出更快的反应。从历史数据中选择不同的角度考察消费行为,评估客户价值,细分客户群;针对不同的客户群发掘消费特点,建立数据模型,对不同的客户群做出预测;估计对收益或利润的影响,对市场活动的效果进行预测,通过设置商业规则,进行复杂的市场划分;最终帮助泰康实现从以产品为中心的战略,转换到以客户为中心的战略。
Session1:医院智能分析业务与需求
Session2:解决方案技术框架与Demo效果;
Session3:关键技术和实现;
ETL-如何确定起始来源数据
How is the
system-of-record determined?
如何确定起始来源数据?
答:
这个问题的关键是理解什么是System-of-Record。System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。在Kimball的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。
起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。
ETL架构师面试题(中文)
ETL架构师面试题(中文)
本部分的题目来自Kimball的ETL Toolkit著作,原著未直接给出答案。这里的中文题目和答案是我参考其原著按自己的理解整理而来的,仅供参考。对于其中不确切的地方,欢迎大家一起沟通。有兴趣的朋友可以直接阅读原著。
-----答案持续更新中,点击题目可见答案。
分析
1.什么是逻辑数据映射?它对ETL项目组的作用是什么?
2.在数据仓库项目中,数据探索阶段的主要目的是什么?
3.如何确定起始来源数据?
架构
4.在ETL过程中四个基本的过程分别是什么?
5.在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?
6.简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?
抽取
7.简述异构数据源中的数据抽取技术。
8.从ERP源系统中抽取数据最好的方法是什么?
9.简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。
10.简述出三种变化数据捕获技术及其优缺点。
数据质量
11.数据质量检查的四大类是什么?为每类提供一种实现技术。
12.简述应该在ETL的哪个步骤来实现概况分析?
13.ETL项目中的数据质量部分核心的交付物有那些?
14.如何来量化数据仓库中的数据质量?
建立映射
15.什么是代理键?简述代理键替换管道如何工作。
16.为什么在ETL的过程中需要对日期进行特殊处理?
17.简述对一致性维度的三种基本的交付步骤。
18.简述三种基本事实表,并说明ETL的过程中如何处理它们。
19.简述桥接表是如何将维度表和事实表进行关联的?
20.迟到的数据对事实表和维度表有什么影响?怎样来处理这个问题?
元数据
21.举例说明各种ETL过程中的元数据。
22.简述获取操作型元数据的方法。
23.简述共享业务元数据和技术元数据的方法。
优化/操作
24.简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载。
25.简述ETL技术支持工作的四个级别的特点。
26.如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。
27.简述如何评估大型ETL数据加载时间。
实时ETL
28.简述在架构实时ETL时的可以选择的架构部件。
29.简述几种不同的实时ETL实现方法以及它们的适用范围。
30.简述实时ETL的一些难点及其实现方法。
ETL-逻辑数据映射
What is a
logical data mapping and what does it mean to the ETL team?
什么是逻辑数据映射?它对ETL项目组的作用是什么?
答:
逻辑数据映射(Logical
Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:
目标表名:
目标列名:
目标表类型:注明是事实表、维度表或支架维度表。
SCD类型:对于维度表而言。
源数据库名:源数据库的实例名,或者连接字符串。
源表名:
源列名:
转换方法:需要对源数据做的操作,如Sum(amount)等。
逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。
-----------------------------补充:
逻辑数据映射分为两种:
1 : 模型映射:
从源模型到DW目标模型之间的映射类型有:
一对一:一个源模型的数据实体只对应一个目标模型的数据实体。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。
一对多:一个源模型的数据实体只对应多个目标模型的数据实体。在同一个数据存储空间,常常出现会一个源实体拆分为多个目标实体的情况下。在不同的存储空间中,结果会对应到不同的存储空间的实体。
一对零:一个源模型的数据实体没有与目标模型的数据实体有对应,它不在我们处理的计划范围之内。
零对一:一个目标模型的数据实体没有与任何一个源数据实体对应起来。例如只是根据设计考虑,时间维表等。
多对一:多个源模型的数据实体只对应一个目标模型的数据实体。
多对多:多个源模型的数据实体对应多个目标模型的数据实体。
2: 属性映射
一对一:源实体的一个数据属性列只对应目标实体的一个数据属性列。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。
一对多:源实体的一个数据属性列只对应目标实体的多个数据属性列。在同一个实体中,常常出现会一个源属性列拆分为目标的多个属性列情况。在不同实体中,结果会对应到不同的实体的属列。
一对零:一个源实体的数据属性列没有与目标实体的数据属性列有对应,它不在我们处理的计划范围之内。
零对一:一个目标实体的数据属性列没有与任何一个源数据属性列对应起来。例如只是根据设计考虑,维表和事实表中的时间戳属性,代理健等。
多对一:源实体的多个数据属性列只对应目标实体的一个数据属性列。
多对多:源实体的多个数据属性列对应目标实体的多个数据属性列。
作用:
1 为开发者传送更为清晰的数据流信息。映射关系包括有关数据在存储到DW前所经历的各种变化的信息,对于开发过程中数据的追踪审查过程非常重要。
2 把ETL过程的信息归纳为元数据,将数据源结构,目标结构,数据转换规则,映射关系,数据的上下文等元数据保存在存储知识库中,为元数据消费者提供很好的参考信息,追踪数据来源与转换信息,有助于设计人员理解系统环境变化所造成的影响;
开发设计者可以轻松的回答以下的问题:
1、这些数据从那里来?
2、这样的结果通过什么样的计算和转化得来?
3、这些数据是如何组织的?
4、数据项之间有什么联系?
5、如果源发生变化,有那几个系统,目标受影响?
ETL-数据探索阶段的主要目的
What are
the primary goals of the data discovery phase of the data warehouse project?
在数据仓库项目中,数据探索阶段的主要目的是什么?
答:
在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data
Discovery Phase),另一个是异常数据检测阶段。
数据探索阶段包括以下内容:
1.收集所有的源系统的文档、数据字典等内容。
2.收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。
3.判断出数据的起始来源(System-of-Record)。
4.通过数据概况(Data Profiling)来对源系统的数据关系进行分析。
数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。
选择合适的ETL工具
ETL解决方案包括数据抽取(E)、数据传输、转换与清洗(T)、数据加载、调度(L),ETL系统将贯穿整个商业智能系统的全过程。
目前,商业智能系统有两种实施策略:
一种是将BI系统建造在目前已有的业务系统之上,以企业应用集成(EAI)系统为核心,将各个业务系统的独立数据统一成标准数据格式(如XML),然后,由BI系统进行整合、分析、展现。此类BI系统通常是与EAI系统捆绑在一起的,其架构读者可通过EAI系统的相关资料进行了解,此处将不做讨论。
另一种是将BI系统建立在企业级的数据仓库基础上,由数据仓库将企业的业务数据统一存储在企业逻辑数据模型架构中,然后,通过在数据仓库基础上建立逻辑或物理的数据集市、数据决策系统、数据在线分析系统等子系统,完成数据的整合、分析,然后由前端展现工具对已有的数据(原始数据、整合数据)进行汇总及展现。由于此类BI系统可以分步实施,用户可逐步建立其BI系统,所以成功率比较高。以目前已有的商业智能系统来看,此种架构将成为商业智能系统发展的主流。以下的讨论将以此种架构为基础。
在企业级的以数据仓库系统为中心的商业智能系统中,其组成架构包括以下几部分:
● 源数据系统
● 可操作数据存储系统(ODS)
● 数据决策系统(DDS)
● 在线分析系统(OLAP)
● 前端展现工具
● 元数据系统
商业智能系统运行的基础是互相独立、互不兼容的、复杂的源数据系统,各个源数据系统是企业在不同的历史时期建立的,面向不同业务需求的生产系统。因此,依照合理的方式整合源数据系统,将源数据统一存储在以企业逻辑模型构建的ODS系统中,DDS、OLAP、前端展现工具依照用户需求,对数据进行汇总、展示,并按照用户喜好的方式,将结果展现在用户面前是商业智能系统的基本任务。由于企业业务系统的复杂性,各个源数据系统的数据结构、格式、定义各不相同,为了能有效的整合企业数据系统,保持数据的一致性,并将数据统一地展现在客户面前,ETL解决方案是用户唯一的选择。
ETL解决方案包括数据抽取(E)、数据传输、转换与清洗(T)、数据加载、调度(L),毋庸置言,ETL系统将贯穿整个商业智能系统的全过程,如图所示,从源数据系统到前端展示系统的整个商业智能系统各个组件之间,都存在ETL过程。
ETL方案对整个商业智能系统的重要性可与血液与人体的作用相提并论,一个有效的ETL处理方案将是系统成功的首要因素。
ETL方案的选择应考虑以下方面:
● 数据操作效率;
● 数据操作时间周期;
● 定制的灵活性。
对ETL来说,数据操作的效率是最重要的考虑因素。对效率的考察,应包括以下几点:
1. 是否支持复杂的数据操作;
2. 是否支持多任务并行操作;
3. 是否符合系统对数据处理时间窗口的要求。
数据操作时间周期的支持包括:
1. 是否支持各种数据处理时间周期的混合操作;
2. 是否支持数据的小批量持续加载;
3. 是否支持数据的大批量定时加载。
定制灵活性包括:
1. 是否支持数据依赖的建立;
2. 是否支持数据流的建立;
3. 是否支持操作定时启动;
4. 是否可扩展;
5. 开发环境是什么,开发是否简单、灵活。
对于ETL流程的建立,通常有以下两种方式:
● 利用数据库系统、业务子系统工具自行开发
● 购买现成的ETL工具
通常情况下,ETL方案中,以上两种方式是同时存在的。一般情况下,利用各个子系统提供的工具进行自行开发,可充分利用子系统的优化操作,提高数据处理效率,但其灵活性和可扩展性欠佳;购买现成的ETL工具(如EAI、Informatic等厂商的ETL工具),可灵活定制数据处理流程,简化数据开发,缩短ETL方案实施周期,但其处理效率较低。因此,建议读者应结合以上的ETL建立方式,在保证ETL性能的前提下,购买合适的ETL工具。
利用UDF来调用操作系统命令和DB2的常用命令
由于DB2是不支持复合
SQL 语句内不支持调用操作系统命令,所以一些对应我们常用的一些语句如数据导入,导出是命令行而不是SQL语句,都不能在存储过程中调用,必须写一些 SHELL或者BAT文件,进行脚本编制来进行。但是在我们的这种BI应用中,ETL过程中的E过程,数据的导入是一件必不可少的过程,通过脚本的控制,比较麻烦和整个过程有点不是很完整。找寻是否有其他的解决方案。不过据说在新版本的DB2上是可以支持的。但是我们都是用V8.1
之前看了IBM网站的一篇文章,提到可以利用 UDF 来执行纯 SQL 中不可用的操作。因为UDF可以用外部语言(即,SQL 以外的其它语言,如JAVA,C)编写,并可以通过使用 CREATE 语句向数据库注册,这样我们就可以编写一个JAVA应用程序来调用操作系统命令和DB2的常用命令。 当这个外部函数注册后,
我们就可以在存储过程中可以使用该函数,进行数据的导入,导出。
参见资料“另一篇有关高级脚本编制的文章”和“如何注册Java
UDF ”
步骤:
1、编写一个JAVA程序(os_cmdUDF.java)
import java.io.*;
import COM.ibm.db2.app.UDF;
public class os_cmdUDF extends UDF{
public static int os_cmd(String cmd) {
Runtime rt =
Runtime.getRuntime();
Process p=null;
int success = 0;
try {
p =
rt.exec(cmd);
}
catch (IOException e) {
success
= -1;
}
return (success);
}
}
2、运行javac UDFLogs.java编译
javac os_cmdUDF.java
产生的结果是一个称为 os_cmdUDF.class 的文件,
随后需要将该 .class 文件复制到
sqllib\ 目录
3、运行jar打包UDFLogs.class为os_cmdUDF.jar
jar cf os_cmdUDF.jar os_cmdUDF.class
4、连上数据库,运行安装.jar文件到数据库
db2 connect to testsu user db2admin
db2 "CALL sqlj.install_jar('D:\IBM\SQLLIB\java\jdk\bin\os_cmdUDF.jar',
'os_cmdUDF')"
之后os_cmdUDF.jar安装到D:\IBM\SQLLIB\\jar\DB2ADMIN\的路径下。
5、运行create 建立函数
DROP os_cmd;
CREATE os_cmd( IN VARCHAR(1000))
RETURNS INTEGER
EXTERNAL NAME 'os_cmdUDF:os_cmdUDF!os_cmd'
LANGUAGE JAVA
PARAMETER STYLE JAVA
NOT DETERMINISTIC
NO SQL
EXTERNAL ACTION
;
6、测试os_cmd函数是否可用
db2 "values os_cmdUDF('db2cmd.exe')"
返回结果,
1
-----------
0
1 条记录已选择。
函数可以用。
7、建立调用os_cmd函数的存储过程。
CREATE PROCEDURE DB2ADMIN.sp_exec(
--输入参数
IN loadstr varchar(1024),
--输出参数
OUT o_err_msg varchar(1024)
)
--支持语言
LANGUAGE SQL
P1: BEGIN
--临时变量,出错变量
declare
SQLCODE integer
default 0;
declare
stmt
varchar(1024);
declare
state varchar(1024)
default 'AAA';--记录程序当前所作工作
DECLARE status INT DEFAULT 0;
--声明出错处理
DECLARE EXIT HANDLER FOR SQLEXCEPTION
begin
set o_err_msg='处理'||state||'出错
'||'错误代码SQLCODE:'||CHAR(SQLCODE);
end;
--程序开始
SET status = os_cmd(loadstr );
if (status <> 0) then
set o_err_msg = stmt;
end if ;
END
P1
8、调用存储过程
call sp_exec('db2cmd.exe E:\work_file\济南商行\测试\DB2测试\DBCONN_space.bat');
DBCONN_export.bat的作用(清空一个表):
DB2 CONNECT TO testsu USER db2admin using db2admin/
db2 "load from 'E:\work_file\济南商行\测试\DB2测试\space.dat'
OF DEL MODIFIED BY NOROWWARNINGS MESSAGES 'E:\work_file\济南商行\测试\DB2测试\space.log'
REPLACE INTO jxdx_ckzhmx "
DB2 CONNECT RESET
9、验证存储过程调用的结果。
db2 select count(*) from jxdx_ckzhmx
注意:在测试这个功能的时候有一些细节没有注意,导致函数注册后不能调用。
1、编译JAVA源文件的编译器和执行的JVM的版本必须一致的
DB2 V8.2 安装时带的 "1.4.1";
而本机又另外装了一个 "1.5.0_05"
之前没有注意,直接使用命令javac来进行编译,用的是默认1。5版本的
函数注册后,调用出错,提示SQL4304 reason code
"1"的错误信息;
而给出的提示是说CLASSPATH 有问题,所以注意力一直放到这个方面找问题所在
后来才发现真正的问题是出现在版本上。
最好直接在\SQLLIB\java\jdk\bin的目录下编译后再COPY。
2、设置 Java 环境
几个关键的设置:
参见文档:《解决 DB2 UDB Java 存储过程的常见问题》
JDK_PATH: 这是一个数据库管理器配置(DBM CFG)参数。这个参数指出用来执行 Java 存储过程的 JVM 或
Java Development Kit(JDK)的位置。
这是一个非常重要的参数。它的值应该设置为包含 JVM Java 可执行文件的
“bin” 目录的上一级目录的完整路径。
在 Windows? 平台上的一个例子是 C:\Program
Files\IBM\SQLLIB\java\jdk。
UNIX? 例子是 /usr/java1.3.1。JVM
级别也非常重要,因为根据使用的 db2level 和平台级别,DB2
UDB 只支持某些 JVM 级别。
JAVA_HEAP_SZ: 这是一个数据库管理器配置(DBM CFG)参数。
这个参数决定为 Java 存储过程和 UDF 服务的
Java 解释器所使用的堆的最大大小。
为了避免在 Java 存储过程中耗尽内存,可以增加这个值。但是,如果在环境中要调用许多存储过程(即,每个 JVM 都会分配这么多堆空间),
那么分配太多内存也是有害的。一般规则是保持 JAVA_HEAP_SZ 为默认设置,即
512(4K 页)。
其他相关内容:
一、如何安装jar文件到当前数据库:
db2 "CALL sqlj.install_jar('D:\IBM\SQLLIB\java\jdk\bin\os_cmdUDF.jar',
'os_cmdUDF')"
二、如何更新当前数据库中的jar文件:
db2 "CALL sqlj.remove_jar('os_cmdUDF')"
三、如何替换当前数据库中删除jar文件:
db2 "CALL sqlj.replace_jar('D:\IBM\SQLLIB\java\jdk\bin\os_cmdUDF.jar',
'os_cmdUDF')"
四、如何当前数据库中删除jar文件:
db2 "CALL sqlj.remove_jar('os_cmdUDF')"
五、如何刷新已经调用的jar或class,不用重启实例就生效:
db2 "CALL SQLJ.REFRESH_CLASSES()"
通俗的讲:BO完成数据查询后,查询出来的数据存储在本地;Cognos完成数据查询后,查询出来的数据存储在服务器上。因此,BO可以在数据刷新完成之后直接利用客户端的切片/旋转等功能直接进行多维分析,而Cognos可以将查询出来的数据以excel文件的形式保存到本地,然后使用excel的数据透视表功能进行多维分析。
BO使用聚合表技术可以先将报表需要的常用维度的汇总数据存储到聚合表中,BO的语义层可以识别一个查询是否需要访问包含明细数据的表,如果该查询不需要明细数据,则生成SQL时直接访问聚合表,可以提高报表生成效率。Cognos不能实现此功能,所以查询部分报表的效率会有所下降,查询时间会变长。
BO中的语义层类似于Cognos中的主题
BO在前端展现方面比较突出,用户接受程度较高。是目前主流的商业智能工具之一,但因其没有OLAP Server,导致数据监控功能较弱,虽然也可以与微软或Oracle的OLAP
Server挂接,但这样毕竟受制于人,给客户提供的方案也不是最集成的。
作者:Administrator
|
周四,
13 11月 2008 12:23
|
Business Objects商务智能平台为客户提供了一个可扩展的基础设施平台,使信息得以准确及时地传递,提高了企业的洞察力。BO商务智能平台可以获取来自任何地方的数据,无论在最新的ERP中,还是散布在各处角落的历史文件中。
该系列包括:
- 数据可视化和报表模块 - 通过报表和仪表盘把数字转换为容易理解的、可交互的视觉信息;能让员工安全地独立访问任意数据源,并在Excel环境中创建效果惊人的仪表盘/报表。
- 数据分析和分发模块 - 该模块是报表与仪表盘功能的延伸,它让普通用户直接在报表/仪表盘上分析信息,钻取数据。并把分析结果分发到各个地方,例如:移动设备,桌面,Email,门户网站和搜索引擎中。
- 数据集成(DI)与数据质量管理(DQ)模块 - 管理企业所有的数据库(包括SAP与非SAP),执行最常见的数据库应用,如:ETL(抽取、转换和上传),数据清洗等。
- 主数据管理模块
(MDM)- 使企业能够以巩固,协调和集中的方式管理关键业务数据。 制定数据行业标准,帮助企业管理全球的主数据。
SAP基础解决方案使SAP 用户能够提取SAP 系统内包含的商务智能信息。BusinessObjects Integration for SAP Solutions 由以下主要组件组成:
- Crystal Reports
是允许依据SAP 数据创建报表的报表设计工具;
- BusinessObjects
Enterprise 提供了用于在Web 上管理、计划和分发报表的框架。该解决方案允许Voyager、Web Intelligence、LiveOffice 以及Xcelsius 之类的工具依据SAP 创建报表。
- BusinessObjects
InfoView 允许在Web
上共享报表,并且SAP 身份验证在SAP 系统与BusinessObjects
Enterprise 之间实现了单一登录。
- Rapid Marts for
SAP 为用户提供了各个SAP不同主题的数据集市ETL模板,样本语义层与报表。以便用户通过BO的ETL工具快速实施常用的数据集市。
|
BI-一般的实施步骤:
商业智能的实施
用户不仅要选择合适的商业智能软件工具,还必须按照正确的实施方法才能保证商业智能项目得以成功,项目的实施步骤可分为:
2.1需求分析
在其他活动开展之前必须明确的定义企业对商业智能的期望和需求,包括需要分析的主题,各主题可能查看的维度,即需要发现企业哪些方面的规律。
2.2 数据仓库建模
通过对企业需求的分析,建立企业数据仓库的逻辑模型和物理模型,并规划系统的应用架构,将企业各类数据按照分析主题进行组织和归类。
2.3 数据抽取
数据仓库建立后必须将数据从业务系统中抽取到数据仓库中,首先将来自运营、财务、CRM等不同数据源的不同类型数据采用数据整合平台进行抽取、净化、转换和装装载,形成可以被系统识别的统一数据格式,导人数据仓库存放。
2.4 建立分析报表
商业智能分析报表是数据仓库信息的展现,根据客户户的不同需求,利用多种展现工具,可以将存放在数据仓库中的历史数据进行展现和挖掘,生成报表,或者生成展现图表,进行分类和聚类,进行多维度检索等。无论是企业的高层管理者,还是普通的业务人员,都可以根据展现出来的数据或者挖掘出来的关联信息,辅助自己做出下一步的生产营销决策。
2.5 数据测试与系统改进
要使系统成功交付使用,最终用户的培训与软件测试是关键的环节,可以找出系统的不足,以更好地适应实际应用。在用户使用一段时间后可能会提出更多的,更具体的要求,这时需要再按照上述步骤对系统进行重构或完善。
在BI实施的各步骤中,DW是基础,OLAP技术用于数据报表的生成,而DM技术用于产生支持决策的信息,从此也体现出Bl是上述多种技术的综合应用与体现。图1充分说明了这一点。
3 商业智能具有的功能
BI产品和方案必须建立在稳定、整合的平台上,该平平台需要提供用户管理、安全性控制、连接数据源以及访问、分析和共享信息的功能。
3.1 关联分析功能
关联分析主要用于发现不同事件之间的关联性,即一一个事件发生的同时,另一个事件也经常发生。关联分析的重点在于快速发现那些有实用价值的关联发生的事件。其主要依据是,事件发生的概率和条件概率应该符合一定的统计意义。例如,一个开设储蓄账户的客户很可能同时进行债券交易和股票交易。利用这种知识可以采取积极的营销策略,扩展客户购买的产品范围,吸引更多的客户。
3.2 监视功能
预先设置条件,使符合条件的数据以一定形式显示出来,这样可以使问题一目了然。例如:上季度营业额少于万元的分店显示出来,以引起管理人员的注意。
3.3 记录选择功能
可以从大量数据中选取需要的数据,重新构成一个数据环境,可以使用户关注的数据集中显示出来。
3.4 程序调用功能
把通过按钮查找抽取出的数据,传给其他的软件或用户原有的程序,并执行这些程序。
3.5 展示功能
BI要有查找、统计、排序等功能,并将结果以一定的的形式展示给用户,以支持用户进行多方面的数据分析和决策。
3.6 数据输出功能
打印统计列表和图表画面等,可将统计分析好的数据输出给其他的应用程序使用,或者以HTML格式保存。
数据仓库技术是为了解决拥有大量业务数据的企业能及时有效地提取经营管理决策所需要的信息而产生的,如何有效地组织大量的数据,维护数据的一致性,方便用户的访问,这只是数据仓库技术的一个方面。另一个重要方面是如何为决策人员有效地使用信息提供方便,使他们能通过使用数据仓库系统对企业的经营管理做出正确的决策,从而为企业带来经济效益。然而,数据仓库中的大部分信息是不易浏览的。要使数据仓库为最终用户的决策支持提供数据,就要借助OLAP技术,通过 OLAP技术,利用数据的多维视图,用户能多角度、多侧面、多层次地考察数据库中的数据,从而深人地了解包含在数据中的信息及其内涵。
OLAP为数据仓库提供了快速浏览、分析,若要智能化且主动地把这些数据转变为有用的信息和知识,离不开日益受到重视的数据挖掘技术。数据挖掘又称数据库中的知识发现(KDD),是指从存放在数据库、数据仓库或其他信息库中的大量数据中自动地发现相关模式、提取有潜在价值的信息、挖掘知识的过程。从CRM 的角度,数据挖掘应用就是从大量数据中挖掘出隐含的、先前未知的、对决策有潜在价值的知识和规则,并能够根据已有的信息对未来发生行为做出结果预测,为企业经营决策、市场策划提供依据。在CRM中应用的数据挖掘模式主要有以下五种:关联分析、分类、聚类分析、序列分析、孤立点分析。对于要挖掘的数据,可以是来自传统的关系数据库,也可以建立面向主题的、采用多维数据立方体组织数据的数据仓库。
数据挖掘经过确定业务对象、数据准备、建立模型、验证模型、数据挖掘、结果分析等步骤,不仅完成了对历史数据的分析,以及不同客户群体的消费数据的分析,而且将这些数据知识化,以预测企业在未来将要发生的状况,从而提高企业的收益能力和决策能力。如,商家可以在分析市场销售数据的基础上选择潜在的顾客,以便向他们推销产品,减少了开展业务的盲目性。可以通过数据挖掘技术,发现有欺诈倾向的用户,避免企业受到损失。