精品文档
ERP系统中的BI应用案例
商业智能的一大重要应用是在数据量庞大而嘈杂的制造业中,可以说,制造业是非常需要商业智能的行业。因此,本期我们就将目光转向制造业,讨论一下商业智能在ERP业务中的应用。在文中,我们以一家鞋服制造企业为例,描述其ERP相关的BI系统项目特点,让大家对制造业BI在ERP业务的应用有一个直观的印象和清晰的理解。
商业智能的一大重要应用是在数据量庞大而嘈杂的制造业中,可以说,制造业是非常需要商业智能的行业。因此,本期,我们就将目光转向制造业,讨论一下商业智能在ERP业务中的应用。 一、ERP业务数据的特点
1、数据量庞大。制造业的数据量非常大,动辄以百万、千万为单位计,甚至上亿条,可以说是海量的,会对企业的业务数据库造成极大的负荷,因此,制造业是非常适合做BI项目的。
2、数据整齐程度差,随意性较大。大量数据采集是人工归集的,数据准确性很差,且很不规整,数据格式很不统一,数据类型混乱而嘈杂。
3、信息分散、不及时、不共享。和其他行业不同,制造业产、供、销、人、财、物是一个有机的整体,它们之间存在大量信息交换。而人工管理信息分散,缺乏完善的基础数据,大大影响管理决策的科学性和准确性。 二、ERP业务BI项目特点
下面,我们就以一家鞋服制造企业为例,描述其ERP相关的BI系统项目特点,让大家对制造业BI在ERP业务的应用有一个直观的印象和清晰的理解。 我们都知道,一个完整的BI项目流程包括三个基本步骤:
第一步,通过ETL流程,利用WINDOWS SQL SERVER 2005中的组件INTEGRATION SERVICES工具,将数据从业务数据库源系统中抽取、转换、清洗和加载到数据仓库中;
第二步,通过OLAP流程,利用WINDOWS SQL SERVER 2005中的组件ANALYSIS SERVICES工具,将数据仓库中的数据,按照分析的模式进行聚合和计算,并把计算结果以某种特定的结精品文档
精品文档
果存储起来,搭建起多维分析模型,以便客户端快速查询和使用。
第三步,通过报表流程,利用WINDOWS SQL SERVER 2005中的组件REPORTING SERVICES报表工具,将客户端需要的信息完整、迅速而灵活地展现出来,完成数据前端展现任务。 在本例中,源数据来自于企业的ERP系统,8个事实表记录以每天几万条的数量级增加,目前均已累计达到百余万行。针对这样的系统特性,为了提高查询效率,我们在设计数据仓库的时候,需要注意如下几点:
1)为了加快数据查询的速度,提高数据仓库的执行性能,在每张维度表的主键列上建立聚集索引,在每张事实表的ID列上建立聚集索引,并在每个关联列上建立非聚集索引。 2)尽量将常用的计算固化成数据表中的字段列,并通过ETL过程进行处理。虽然这样会使数据仓库变得更加庞大,但是,却提升了前端查询、汇总和分析的效率。对于辅助领导决策的企业级BI系统来说,对于分析效率的需求远高于数据仓库的空间占有需求。
3)制造业的数据最大特点就是数据量极其庞大,会致Cube处理变慢,占用很多的系统资源。因此,在搭建数据仓库时,就必须提前采用一定的设计策略和调整办法。办法就是将维度表尽量制作的薄一点,同时,将事实表尽量制作的窄一点。这样,在Cube处理时,就会大大提高效率。
在数据仓库建模完成后,我们通过ETL过程将源系统中的数据导入到数据仓库。那么,在应用SSIS的过程中,我们需要注意如下几点:
1)数据格式不统一、不规整问题。本例中,在字段中含有“ ”、“\”等全角字符,SSIS在处理时就会报错,必须进行处理。解决方法就是在列名后加上collate
Chinese_PRC_CI_AS_WS关键字,即可找到含有全角的字符,然后用Replace即可替换掉。 2)ETL的增量抽取问题。由于制造业数据量极大,更新速度快,且对数据更新的实时性要求极高,不可能每次都将全部数据进行抽取加载,因此,增量抽取问题就显的尤为重要了。解决方法为:1、在时间戳字段添加聚集索引; 2、设置变量获取最大值。
3)ETL包调度远程连接报错问题。在ETL包中,如果连接管理器连接的是远程服务器的数据库,手动运行ETL包没有问题,可是,如果在调度中运行该包,就会报错。解决方法为,在本地服务器和远程服务器使用同一用户名和密码。
之后,我们就可以为OLAP维度建模了。我们以数据仓库中的维度表为基础,建立维度。其中,比较值得一提的是地区维度的设计:Dim_Rigion,该维度共有3个属性,分别是Dim Region,AreaID,以及Parentrowid,其中Dim Region字段作为逻辑主键,并在此属性层次结构下,与其他2个属性层次结构分别建立了属性关系。一般项目中的地区维度会被建成精品文档
精品文档
标准的层次关系,但是在本例中,基于销售地区分布不平衡的特点,我们采用了父子维度关系,简练的表达了地区之间的从属关系。如图所示:Dim Region 字段和Parentrowid字段形成了父子维度关系。 (图一)
在将数据仓库建模和OLAP维度建模成功搭建好以后,现在,我们开始以数据仓库为基础创建多维立方体CUBE。在这里,
我们建立了8个度量值组,分别为Fact_SalesOrder(采购订单度量值组),Fact_PosSales(门店销售明细度量值组),Fact_WaitOrder(销售下单度量值组),Fact_SalesContact(销售合同度量值组),Fact_PosStorageLog(门店明细度量值组),Fact_StorageLog(大仓库明细度量值组),Fact_PPODoc(订货会订单度量值组),以及Fact_SalesDetails(销售明细度量值组)。如图所示,整个多维模型成型了。
精品文档