制造业CRM数据仓库的设计过程
一 引 言,在建立和维护网络化制造业CRM系统的过程中,客户数据库或数据仓库占有重要的地位。客户数据仓库的价值所在,实际上也是CRM的价值所在,就是它把分散在企业内外的关于客户的数据集成起来,向企业及其员工提供了关于客户的总体统一的看法。在企业中客户数据可能存在于订单处理、客户支持、营销、销售、查询系统等各个环节或部门,产生这些数据的系统是专门为特定的业务设计的,并拥有关于客户的部分信息,客户数据仓库的建立可把这些信息集成起来。,二 设计分析思路与过程, 2.1 设计分析,在传统的应用系统中,三层B/S结构和两层C/S体系结构的应用是很常见的。这种结构在开始的时候很容易配置,但是存在一个很大的缺点,就是商业逻辑代码和HTML代码混在一起的,程序员既需要考虑与数据库打交道,又需要关心如何与HTML配合,甚至还需要用ASP直接生成HTML代码。系统难于维护、升级和扩展。,针对传统三层B/S结构和两层C/S的不足,采用一种基于Wondows环境下,利用JAVA技术,并可满足网络化集成的系统开发、系统维护和跨平台等方面特殊要求的五层B/S开发模式。如图1所示。,
图1 五层B/S模式,该模式采用JBuilder9.0和数据连接池技术,客户层表示商业逻辑层数据连接将传统三层B/S结构的第二层(服务器端)划分为表示逻辑层、商业逻辑层和数据连接管理层。这样,CRM系统的服务请求及响应实现过程为:客户端的浏览器通过超文本链接标记语言(Hyper Text Markup Language,HTML)向应用服务器发出请求;服务器端商业逻辑层中的Servlet对请求进行分派,调用EJB(entERPrise Java beans),JavaBeans组件进行商业逻辑处理,涉及到数据库操作时,从数据连接管理层中的连接池中取出一个数据连接,使用Java数据库连接(Java DataBase Comectility,JDBC)技术访问数据库取得所需数据后,将数据连接放回连接池,以释放所占用的资源。最后,Servlet调用表示逻辑层的结果处理JSP页面对获得的数据进行格式化,形成最终HTML页面并发往客户端,以完成对该次服务请求的响应。服务器端运用SQL Server 2000数据库,完成相关业务的后台处理。, 2.2 设计思路,数据仓库系统设计与数据库系统设计的不同主要表现在以下几个方面:,1)面向的处理类型不同;
2)面向的需求不同;
3)系统设计的目标不同;
4)两者的数据来源或系统的输入不同;
5)系统设计的方法和步骤不同。,针对以上几个方面,并结合网络化制造企业本身的特点,数据仓库的设计思路是:,1)从最基本的主题出发,不断地发展新的主题,完善己有的主题,最终建立起一个面向主题的分析型数据环境。,2)设计数据仓库系统时,更应该关心的是如何建立起一个全局一致的数据环境以作为企业决策支持系统的基础,如何解决将所得数据进行抽取、转换、重组、综合,如何解决有效地提高数据分析的效率与准确性等。,3)设计人员与用户不断的交流,将系统需求逐步明确与完善。, 2.3 设计过程,结合网络化制造企业的特点,在设计数据仓库的过程中采用如下步骤:,1)选取待建模的事务处理。例如,订单、发票、出货、库存、记帐管理、销售、客户信息管理、满意度分析、竞争对手分析等,如果一个事务过程是整个组织的,并涉及多个复杂的对象,应当选用数据仓库模型。但是,如果处理的是部门,并关注某一类事务处理,则选择数据集市;,2)选取事务处理的粒度。该粒度是基本的,在事实表中是数据的原子级,如单个事务、一天的交易等;,3)选取用于每个事实表记录的维。典型的维是时间、区域、商品、客户、事务类型和状态等等;,4)选取将安放在事实表中的度量。典型的度量是可加的数值量,如dollars-sold和units-sold等。,三 数据仓库建模, 3.1 概念模型设计-信息包图,由于超立方体在表现上缺乏直观性,尤其当维度超出三维后,数据的采集和表示都比较困难,所以设计中采用一种称为信息包图的方法在平面上展开超立方体,即用二维表格反映多维特征,信息包图提供了一个多维空间建立用户信息模型的方法,它提供了超立方体的可视化表示。,经由详细的需求分析,并结合网络化制造企业的实际情况,可以发现网络化制造企业的销售业务中主要关注的问题是商品销售。通过对商品销售发生时间、地点、种类和数量进行分析,可以得到许多重要信息。我们可以销售业务作为一个主题进行研究,下面将信息进行信息打包,如图2所示。,
,图2 信息包图, 3.2 逻辑模型设计-星型图,由于星型图能清晰地反映概念模型中各种实体间的逻辑关系,并可在此基础上更好的检索和查询,使设计者能够完整地掌握系统的数据流程。因此,可以利用星型图建模技术设计完善的数据仓库逻辑模型。,根据网络化制造企业CRM系统所涉及的工作和决策分析需求,设计销售立方体的星型模型如图3所示。,
,图3 星型模型, 3.3 物理模型设计,即多维数据集中相应的维度表和事实表的存储方式。上面设计的数据模型是一种逻辑上的数据组织形式,在具体实现时需要有相应的物理结构与之对应。因此需要根据逻辑模型创建对应的物理表结构来存储数据,例如进行销售分析的销售事实表结构如表1所示。,
,表1 销售事实表结构,四 ETL设计,针对网络化制造企业平台CRM系统的特点,后台数据库采用的是Microsoft SQL Server 2000。在众多的数据抽取工具中,Microsoft DTS(Data Transmission System)设计器具有易用、扩展性好、编程效率高的特点,所以本设计采用DTS设计器来实现数据的ETL过程。,下面以客户销售分析为例,具体讨论数据仓库的ETL过程。由于网络化制造企业主要以大客户为主,因此只要讨论的是公司大户。执行ETL过程时,第一次处理采用完全处理方式,以后的ETL过程采用增量更新的方式。他们的不同之处主要体现在数据的抽取方面,前者是抽取所有的“有效”数据,后者是利用源数据库中表的时间戮,抽取某一时间短的数据,抽取出来的数据经过适当的转换,加载到数据库中。,企业的数据大部分来自交易数据,少部分来源于源数据库中的Customer表。在建立数据仓库时,可以根据分析主体的需要分成了如下一些维表:时间维(Time),客户维(Customer),员工维(Employee),产品维(Product)。在源数据表中的数据是一个具体的值,而在具体分析时采用决策树的方法,因此必须将具体的值进行归类,找出归类的模型。比如要对客户利润回报值、客户公司的销售总量等进行归类,就必须有原先的Money型值转换为char型并对其进行分类,以此作为分析主题的事实表的度量类别。其他的属性项,如企业代号、企业名称、企业地址等属性,则与原表的数据项完全相同,不需要进行处理。,下面以客户销售分析为例,DTS包的设计图如图4所示,用SQL Server 2000企业管理器的DTS包设计器完成的部分表的DTS转换包图。每一个任务用SQL语句选择数据源和所需要的属性,如果数据不能直接装载到数据仓库中,则可以使用ActiveX Script创建脚本完成特定的转换功能。,
,图4 DTS包的设计,
第一次从Customer表抽取数据的SQL语句描述如下:,SELECT
CustomerID,CustomerName,City,Province,County,PostalCode,Phone,Fax,EmployeeNumber,Yearlylncome,CrateDate,AccountCard,CustomerAsset From Customer,执行该DTS包,出现“已成功完成”提示框,它表明完成了加载工作。此外DTS还提供了调度功能,可以指定数据抽取周期、时间、执行时间长短、任务执行的时间段等等。,五 数据仓库多维数据模型设计,Microsoft SQL Server2000提供了相关的数据仓库开发技术,使得用户可以根据需要开发自己的应用程序。,多维分析器的功能结构如图5所示,主要是在分析服务器和数据透视表服务的基础上,对多维数据集当中的数据进行多维分析。设计中,提供了一个由用户自己选择数据源的向导:可以由用户自己选择分析服务器的提供者、分析服务器的位置、以及多维数据库和多维数据集。,
,图5 多维分析器的功能结构,
在多维分析模块中,通过ADO/MD对象模型和PivotTable Semite提供的服务,访问多维数据集。列表显示出多维数据集的所有维度和度量值,由用户自己选择数据显示的维度和度量值,根据用户选择的维度和度量值,构造MDX查询语句进行多维查询分析,利用ADO/MD对象模型的Cellset对象存储多维分析结果,最后显示多维数据,供用户查看数据。,六 结 束 语,文章主要详细分析研究了网络化制造业CRM数据仓库的设计思路、设计过程、数据仓库建模、ETL设计和多维数据模型设计,该设计既可以满足网络化集成的CRM系统开发、系统维护和跨平台等方面特殊要求的五层B/S开发模式。又能够把分散在企业内外的关于客户的数据集成起来,使得企业能够从大量的数据中抽取有用的商业信息,对企业客户数据进行深入系统的数据挖掘,从中提炼出客户的重要信息和规律,实现经营管理中的决策支持,为企业管理层提供正确的决策支持,提升企业的竞争能力和盈利能力。,
特别声明:以上文章内容来源于网络,不代表CRM论坛观点或立场。如有侵权,请联系管理员删除

图1 五层B/S模式,该模式采用JBuilder9.0和数据连接池技术,客户层表示商业逻辑层数据连接将传统三层B/S结构的第二层(服务器端)划分为表示逻辑层、商业逻辑层和数据连接管理层。这样,CRM系统的服务请求及响应实现过程为:客户端的浏览器通过超文本链接标记语言(Hyper Text Markup Language,HTML)向应用服务器发出请求;服务器端商业逻辑层中的Servlet对请求进行分派,调用EJB(entERPrise Java beans),JavaBeans组件进行商业逻辑处理,涉及到数据库操作时,从数据连接管理层中的连接池中取出一个数据连接,使用Java数据库连接(Java DataBase Comectility,JDBC)技术访问数据库取得所需数据后,将数据连接放回连接池,以释放所占用的资源。最后,Servlet调用表示逻辑层的结果处理JSP页面对获得的数据进行格式化,形成最终HTML页面并发往客户端,以完成对该次服务请求的响应。服务器端运用SQL Server 2000数据库,完成相关业务的后台处理。, 2.2 设计思路,数据仓库系统设计与数据库系统设计的不同主要表现在以下几个方面:,1)面向的处理类型不同;
2)面向的需求不同;
3)系统设计的目标不同;
4)两者的数据来源或系统的输入不同;
5)系统设计的方法和步骤不同。,针对以上几个方面,并结合网络化制造企业本身的特点,数据仓库的设计思路是:,1)从最基本的主题出发,不断地发展新的主题,完善己有的主题,最终建立起一个面向主题的分析型数据环境。,2)设计数据仓库系统时,更应该关心的是如何建立起一个全局一致的数据环境以作为企业决策支持系统的基础,如何解决将所得数据进行抽取、转换、重组、综合,如何解决有效地提高数据分析的效率与准确性等。,3)设计人员与用户不断的交流,将系统需求逐步明确与完善。, 2.3 设计过程,结合网络化制造企业的特点,在设计数据仓库的过程中采用如下步骤:,1)选取待建模的事务处理。例如,订单、发票、出货、库存、记帐管理、销售、客户信息管理、满意度分析、竞争对手分析等,如果一个事务过程是整个组织的,并涉及多个复杂的对象,应当选用数据仓库模型。但是,如果处理的是部门,并关注某一类事务处理,则选择数据集市;,2)选取事务处理的粒度。该粒度是基本的,在事实表中是数据的原子级,如单个事务、一天的交易等;,3)选取用于每个事实表记录的维。典型的维是时间、区域、商品、客户、事务类型和状态等等;,4)选取将安放在事实表中的度量。典型的度量是可加的数值量,如dollars-sold和units-sold等。,三 数据仓库建模, 3.1 概念模型设计-信息包图,由于超立方体在表现上缺乏直观性,尤其当维度超出三维后,数据的采集和表示都比较困难,所以设计中采用一种称为信息包图的方法在平面上展开超立方体,即用二维表格反映多维特征,信息包图提供了一个多维空间建立用户信息模型的方法,它提供了超立方体的可视化表示。,经由详细的需求分析,并结合网络化制造企业的实际情况,可以发现网络化制造企业的销售业务中主要关注的问题是商品销售。通过对商品销售发生时间、地点、种类和数量进行分析,可以得到许多重要信息。我们可以销售业务作为一个主题进行研究,下面将信息进行信息打包,如图2所示。,




第一次从Customer表抽取数据的SQL语句描述如下:,SELECT
CustomerID,CustomerName,City,Province,County,PostalCode,Phone,Fax,EmployeeNumber,Yearlylncome,CrateDate,AccountCard,CustomerAsset From Customer,执行该DTS包,出现“已成功完成”提示框,它表明完成了加载工作。此外DTS还提供了调度功能,可以指定数据抽取周期、时间、执行时间长短、任务执行的时间段等等。,五 数据仓库多维数据模型设计,Microsoft SQL Server2000提供了相关的数据仓库开发技术,使得用户可以根据需要开发自己的应用程序。,多维分析器的功能结构如图5所示,主要是在分析服务器和数据透视表服务的基础上,对多维数据集当中的数据进行多维分析。设计中,提供了一个由用户自己选择数据源的向导:可以由用户自己选择分析服务器的提供者、分析服务器的位置、以及多维数据库和多维数据集。,

在多维分析模块中,通过ADO/MD对象模型和PivotTable Semite提供的服务,访问多维数据集。列表显示出多维数据集的所有维度和度量值,由用户自己选择数据显示的维度和度量值,根据用户选择的维度和度量值,构造MDX查询语句进行多维查询分析,利用ADO/MD对象模型的Cellset对象存储多维分析结果,最后显示多维数据,供用户查看数据。,六 结 束 语,文章主要详细分析研究了网络化制造业CRM数据仓库的设计思路、设计过程、数据仓库建模、ETL设计和多维数据模型设计,该设计既可以满足网络化集成的CRM系统开发、系统维护和跨平台等方面特殊要求的五层B/S开发模式。又能够把分散在企业内外的关于客户的数据集成起来,使得企业能够从大量的数据中抽取有用的商业信息,对企业客户数据进行深入系统的数据挖掘,从中提炼出客户的重要信息和规律,实现经营管理中的决策支持,为企业管理层提供正确的决策支持,提升企业的竞争能力和盈利能力。,
特别声明:以上文章内容来源于网络,不代表CRM论坛观点或立场。如有侵权,请联系管理员删除