求知 文章 文库 Lib 视频 iProcess 课程 角色 咨询 工具 讲座 Modeler   Code  
会员   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
 
BI系统从ERP系统抽取数据解决方案解析
 

2011-06-08 来源:IT168

 

摘要: 当BI系统从ERP系统中抽取数据时,用户主要关心的是三个问题。一是数据抽取是否完全,二是数据抽取是否准确,三是数据抽取是否及时。三个问题都解决了,这数据抽取的解决方案就成功了。

一、从ERP系统中抽取数据需要解决的问题

当BI系统从ERP系统中抽取数据时,用户主要关心的是三个问题。一是数据抽取是否完全,二是数据抽取是否准确,三是数据抽取是否及时。如果能够确保这三个问题都不成问题了,那么这个数据抽取的解决方案就是成功的。

在实际工作中,一般数据抽取可以分为两个部分。一是初始化抽取。在这个部分中,往往是采取完全抽取的方式。即将ERP中的数据全部抽取到BI中。如果企业ERP运行的时间比较长,这个抽取的过程会比较漫长。如笔者做过一个项目,这个数据的初始化抽取工作就会了2天时间。二是后续的抽取。当第一次抽取后,数据会有变化。对于这些变化的数据,一般不会采取完全覆盖的方式。即不会将已经抽上去的数据清除,然后重新来过。如果这样做的的话,传输的时间会比较长。通常情况下,我们采用的方式增量更新的方式。简单的说,就是只更新上次更新后未更新的数据。

如果采用增量更新的话,那么项目管理员只需要关心捕获、运输和融合三个话题。捕获表示系统如何判断数据是否更新、是否有删除等等;运输表示数据如果传递到BW上去;融合指的是新旧数据如何对接等等。在SAP的解决方案中,对此都有比较详细的处理方式。

二、系统初始数据抽取

在实际项目中,一般都是先有ERP系统,然后再上BI项目。这就好像是炼油。一般都是先有原油,然后再进行提炼。而且BI项目其分析的一般都是3-5年的数据,为此ERP系统中的数据量已经比较多了。

为此第一次数据的抽取,所需要花的时间是比较多的。如上图右面的分支所示,就表示在SAP系统中第一次如果从系统中抽取数据。为了保障数据抽取的准确性与高效性,SAP专门为BI系统准备了一张SetUp表。这张表是根据BI系统的需要而设计的。通常情况下,SAP中的数据BI系统可能只需要50%即可。所以这张SETUP表是为BI系统量身定制的。数据要比原系统的数据要少。

在数据抽取之前,一般需要先对SetUp表进行清空。以防止该表中原有数据与需要导入的数据出现冲突的清空。清空之后,再将源系统中的数据导入到SetUp表中。通过中间表SetUp,可以过滤到一些BI系统用不到都是数据,以提高数据抽取的效率。将数据抽取到SetUp表之后,再通过工具将数据传输到BI中去。

三、增量更新处理方式

后续的数据,一般都是通过增量更新的方式。如在实际项目中,都会设置一个批处理作业。在晚上下班后,让系统自动将一天之内更新的数据传输到BI中。此时就遇到一个问题,系统如何来判断,哪些数据时更新过的呢?注意,这个地方的数据更新其实包括三方面的内容。分别是数据更新、数据删除和新建数据。

针对这个内容,在SAP系统中其实又提供了两种方式。一是增量队列式。如上图所示,在SAP中专门有一个ExtractionQueue表。当SAP系统中数据有更新时,系统会将数据写入到SAP基础表的同时写入到这个表中。也就是说,这个表中的数据就是最近所更新的数据。需要注意的是,这个表中的数据一般保存的是最近更新的和最近一次更新的。系统会在记录中做一下标识来判断数据是否已经传输到了BW中去。一般的IO数据抽取,都是采用这种方式。

二是采用时间戳的方式。即系统在数据更新时,会记录数据更新的时间。这个时间往往是精确到秒的。然后系统中另外有一个地方会记录系统上次抽取数据的时间。然后这次数据抽取时,其就会将这两个时间进行比较,然后将晚于这个时间的数据全部抽取上去。通常情况下,财务相关的数据,都会采用这种方式来抽取。

也就是说,系统中可以允许同时存在这两种数据。到底是用甚么样的数据,就要看用户的需要而定。不过一般情况下,物流相关的数据,推荐是用增量队列的方式。而财务相关的数据,则采用时间戳的方式。

这另外需要提醒的是,上图所示的ExtractionQueue与DeltaQueue表其实是同一张表。在表中,会有一个字段来标识其到底是属于哪一张表中的内容。也就是说,上图中所显示的表一般是逻辑表,而不是实体表。另外,系统还会额外的提供两张控制表,来确保整个增量更新作业的准确性。

四、项目的建议

在实际项目中,从ERP抽取数据要比上面所话的图复杂的多。除了要掌握上图的基本理论之外,笔者认为在数据抽取时,还需要关注如下内容。

  • 一是要充分认识到从BI系统中抽取数据的重要性。在实际项目中,虽然有时候也需要从文本数据中获取数据,但是这个比例并不是很高。在笔者遇到的项目中,一般文本类型的数据只有10%左右。大部分的数据都是来源于ERP系统。为此从ERP系统中抽取数据,无论是BI系统设计者、还是企业用户,都是无法避免的一个课题。
  • 二是需要注意,数据抽取等系统本身性能的冲击。如上所示,如果采用增量更新方式的话,系统除了要往基础表中写入数据之外,还需要向另外一张额外的表中写入数据。可见,这会增加服务器的负担。特别是当数据量比较多时,会还用比较多的系统资源。为此在数据抽取时,要关注对系统本身性能的冲击。一般情况下,都会采取一些措施来避免这种情况。如可以合理安排数据抽取的时间,将其放在用户使用量比较少的时候。像在SAP系统中,其采用的是中间表的方式,来减少数据的传输量。
  • 三是需要注意,对于SAP系统来说,那面这些表,是系统专门为BI系统所准备的。即在系统安装时就已经存在了的。只是系统没有启用而已。当企业用户需要使用BI系统时,需要通过事务代码来激活这些表。否则的话,就无法使用。上图中所显示的表格都是逻辑表,实际表的结果要比这个要复杂的多。不过作为BI的事实顾问来说,只需要掌握这些逻辑表即可。对于其后台的基础表,让SAP的技术人员去了解即可。
  • 四是DeltaQueqe的方式。对于BI系统来说,DeltaQueqe其实提供了三种方式。其中比较常用的就是DeltaQueqe方式(上图所示的方式)和DirectQueqe的方式。其中前者对于性能的冲击比较小,因为有中间表的过滤。而后者对于系统性能的冲击比较大。在后续硬件跟的上的情况下,采用DirectQueqe的方式也未尝不可。不过笔者建议,在现阶段,还是采用DeltaQueqe方式为宜。

通过上面的分析我们可以知道,SAP的从ERP系统中抽取数据的解决方案,相对来说是比较合理科学的。可以解决数据传输过程中捕获、传输、融合等方面的问题。无论是项目管理员还是开发人员,都值得借鉴这种处理方式。



MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...   
 
 
 
 
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号