专利名称:一种利用etl技术对计费数据进行抽取提供的方法
技术领域:
本发明涉及一种计费数据的抽取和应用的方法,具体地说是一种利用ETL技术对计费数据进行抽取提供的方法。
背景技术:
目前,一般的数据过程抽取都是以目标数据需求为目标在现有系统中查找可用的数据资源,分析现有系统中可用数据资源和目标数据需求之间的关系,并制定数据抽取过程,按制定的数据抽取过程编写专用程序段完成目标数据的抽取。这种实现的策略的优点在于实现简单,缺点在于专用程序段只是为某一种数据需求开发的功能,一旦数据需求变化,则该专用程序段将无法继续提供新的目标数据。在数据抽取和数据提供需求较多的情况下,开发人员的开发量大且由于各个专用程序段的写法基本一致,使得开发人员缺乏创造性。
以集中计费系统常见的接口数据提供为例,对于一个省集中计费系统,往往需要给外围的其它独立系统提供相关的计费资料和帐务数据,外围系统的接口需求多样化,一般各有特点,但往往也有重合的因素,但是通过专用程序段实现的接口需求往往不能实现基本过程的复用,容易造成接口数据孤岛。同时接口提供程序的部署和调度往往也是一个难题。
通过ETL技术,接口数据提供可以抽象成为一个个目标数据集,目标数据与源数据存在可复用转换关系的抽取过程。接口的变化可以通过参数的变化来实现,而作为后台的ETL抽取引擎只负责按照ETL流程解析参数和规则,从而完成接口数据提供的动态实现。
发明内容
本发明的目的是针对现有的数据接口、部署和调度不便的问题,提供一种利用ETL技术对计费数据进行抽取提供的方法。
本发明的技术方案是一种利用ETL技术对计费数据进行抽取提供的方法,其特征是它包括以下步骤分析数据抽取的三个基本元素即输入、输出及处理过程,将这三个部分进行了参数化描述,以便达到在数据抽取,数据提供的应用中采用数据驱动的模式,而非过程驱动的模式;建立数据抽取的可复用的过程配置机制以及便于管理和控制的任务调度机制。
上述方法可具体细化为a、确定输入部分;b、读取输入部分的主数据源;c、根据应用的需求,读取次数据源的数据;d、按照应用需求中的变换规则进行数据的变换;e、将变换后的数据记录存贮在应用内部;f、支持过程条件(参数)配置;g、主数据源处理完成后,按预先定义的格式进行输出;在读取原始数据、根据主数据,读取次数据源的过程中考虑的是主数据源和次数据源之间的关联关系,而按预定格式进行输出,可利用数据抽取结构写入数据库表格或数据文件中;在整个数据抽取的过程中主要的任务是数据变换。数据变换一般的来说遵从如下的基本规则Result=f(source_elementl,source_element2,…..)Result是指目标数据记录的某一个字段的取值source_element是指原始数据记录中某字段的取值F是指数据的变换规则,一般是某种函数关系在数据抽取过程中目标数据和原始数据之间的函数关系,存在的函数关系有数据抽取、数据概化、集成、数据规范化及填写缺省值、选举、概念映射、函数操作等函数关系;数据抽取数据抽取是指在原始数据和目标数据之间存在复制的关系;数据概化是指将数据概念化,目标数据和原始数据在业务上存在概念上的上下级关系,如原始数据元素分局和目标数据元素营业区之间存在的就是一种数据概化的函数关系;数据集成集成最简单的概念就put together,在数据抽取中大量存在的各种指标性质的元素,原始数据和目标数据之间存在的就是一种数据集成的函数关系;数据规范化数据规范化一般是指将连续变量离散化。这种函数关系在数据抽取的过程中存在的不是很多;填写缺省值主要应用在两种环境,一种是目标数据和原始数据之间不存在关系,目标数据中的元素和处理时的各种业务环境相关,另一种是原始数据和目标数据之间存在某种函数关系,但原始数据的元素值是未知的,采用填写缺省值的办法进行处理或采用投票方式确定原始数据中字段值未知的值;选举当源事件数据中,存在若干个值而目标数据中只需要一个数据时,采用的解决这种取值冲突的方法;概念映射是指目的事件和源事件在含义上面表述的是同一概念,在各自的领域必须采用不同的概念的情形;函数运算函数包含通用函数和行业函数,通用函数包括SQL函数、数学函数、字符串函数、日期函数,该函数表述了源事件属性和目的事件属性之间的函数关系;行业函数是指在某一行业使用的专有算法;过程条件为指定源事件抽取的范围和条件,在源事件是表类型时即为SQL语句WHERE条件部分。
本发明的有益效果本发明在中兴软创湖南BSN省集中计费项目中的实际运用证明,通过适当的参数配置和任务定制的方式,即可实现与渠道系统、公话分析系统、经营分析系统、智能网系统的所有接口数据的提供。同时由于ETL组件屏蔽了接口的特殊性和地域性,便于移植,而且应用配置相对简单,它广泛运用于计费系统与外围系统的接口数据提供过程中。
图1是本发明的概念模型结构示意图。
图2是本发明的流程定制过程示意图。
图3是本发明的ETL核心抽取流程示意图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的说明。
如图3所示。
一种利用ETL技术对计费数据进行抽取提供的方法,简言之它包括以下步骤分析数据抽取的三个基本元素即输入、输出及处理过程,将这三个部分进行了参数化描述,以便达到在数据抽取,数据提供的应用中采用数据驱动的模式,而非过程驱动的模式;建立数据抽取的可复用的过程配置机制以及便于管理和控制的任务调度机制。
上述方法可具体细化为a、确定输入部分;b、读取输入部分的主数据源;c、根据应用的需求,读取次数据源的数据;d、按照应用需求中的变换规则进行数据的变换;e、将变换后的数据记录存贮在应用内部;f、支持过程条件(参数)配置;g、主数据源处理完成后,按预先定义的格式进行输出;在读取原始数据、根据主数据,读取次数据源的过程中考虑的是主数据源和次数据源之间的关联关系,而按预定格式进行输出,可利用数据抽取结构写入数据库表格或数据文件中;在整个数据抽取的过程中主要的任务是数据变换。数据变换一般的来说遵从如下的基本规则Result=f(source_elementl,source_element2,…..)Result是指目标数据记录的某一个字段的取值source_element是指原始数据记录中某字段的取值F是指数据的变换规则,一般是某种函数关系在数据抽取过程中目标数据和原始数据之间的函数关系,存在的函数关系有数据抽取、数据概化、集成、数据规范化及填写缺省值、选举、概念映射、函数操作等函数关系;数据抽取数据抽取是指在原始数据和目标数据之间存在复制的关系;数据概化是指将数据概念化,目标数据和原始数据在业务上存在概念上的上下级关系,如原始数据元素分局和目标数据元素营业区之间存在的就是一种数据概化的函数关系;数据集成集成最简单的概念就put together,在数据抽取中大量存在的各种指标性质的元素,原始数据和目标数据之间存在的就是一种数据集成的函数关系;数据规范化数据规范化一般是指将连续变量离散化。这种函数关系在数据抽取的过程中存在的不是很多;填写缺省值主要应用在两种环境,一种是目标数据和原始数据之间不存在关系,目标数据中的元素和处理时的各种业务环境相关,另一种是原始数据和目标数据之间存在某种函数关系,但原始数据的元素值是未知的,采用填写缺省值的办法进行处理或采用投票方式确定原始数据中字段值未知的值;选举当源事件数据中,存在若干个值而目标数据中只需要一个数据时,采用的解决这种取值冲突的方法;概念映射是指目的事件和源事件在含义上面表述的是同一概念,在各自的领域必须采用不同的概念的情形;函数运算函数包含通用函数和行业函数,通用函数包括SQL函数、数学函数、字符串函数、日期函数,该函数表述了源事件属性和目的事件属性之间的函数关系;行业函数是指在某一行业使用的专有算法;过程条件为指定源事件抽取的范围和条件,在源事件是表类型时即为SQL语句WHERE条件部分。
其中数据抽取的过程的三个基本元素源事件,目的事件及处理过程在一般的数据抽取过程中很大的相似性。这些相似性表现为目标数据的每一个属性的来源一般的是原始数据和系统当前的运行环境。当前的运行环境一般包括时间、操作员工属性等。对于目标数据与原始数据的属性他们的相似性表现为目标数据的属性一般由原始数据的属性或属性组通过某种数据变换生成。这种变换规则一定是可以描述的,在分析了一般的数据转换规则后,提出了数据概化、数据规范化,填写缺省值、选举、概念映射、通用函数等数据转换规则。本技术方案引入任务、流程机制,提供灵活的数抽取过程的定制,并描述了在数据抽取任务繁重的情况下系统高效运行的方法。提供对系统中处理流程的运行监控和校验机制并为处理流程负载平衡提供了相关统计分析数据。
源事件(source_event)原始数据作为数据抽取过程的输入,有以下特点1.输入数据是批量2.数据的种类在数据抽取过程定义的情况下是固定的,简单的3.输入数据的种类、格式和内容是多变的4.原始数据存在的位置是可变的数据抽取过程的数据输入一般有两种类型平面文件和数据库表格。数据库表格的格式在数据中已经有清晰的描述,平面文件的格式是多样的,但其格式一般是有规律的,数据抽取中常见的平面文件一般是文本文件及二进制文件。而二进制文件转换成文本文件后其格式也是有规律的,为系统简单期间,我们目前只考虑文本文件。
文本文件一般的结构包括3个部分,文件头,文件尾及数据记录部分,文件头一般描述文件的内容和格式等信息,文件尾一般包含文件的生成时间、文件中的记录数目和其他一些统计信息。文件记录部分一般的格式在同类文件中是固定的。一行描述一条记录,每条记录包含若干字段,各个字段之间的分割,一般有两种方式,一种是固定长度,一种是用分隔符号进行分割。
分析一下文本文件中数据记录部分的格式对于固定长度的这种格式类型,在拿到文件的时候应该已经知道,该文件中每条记录包含那些字段,每个字段在记录中的次序,和每个字段的长度。对于用分隔符号分割的这种文件,我们在拿到文件的时候同样也应该知道该文件的数据记录包含那些字段,字段之间的次序。这些信息和数据库表格的描述方式是类似的。
经过上面的分析,发现文本文件和数据库表格均可以采用同样的方式在数据抽取的原数据中进行描述,这样在数据抽取过程中使用的两种类型的数据输入方式的数据,可以采用同样的方式进行描述。
作为数据抽取使用的输入数据,其数据存贮位置是多变的,对于数据库表格,可能存贮在不同的数据库中,在同一数据库中也可能属于不同的属主。对于平面文件可能存贮在不同的文件服务器上,在同一文件服务器上也可能存贮在不同的目录,其文件拥有者也可能是不同的。那么在数据抽取的过程中,在应用中将这些位置信息固化是不合适的。
在数据抽取的过程中可能也会存在同一抽取过程的输入数据包含平面文件和数据库表格的情况。如在采用读取话单进行数据抽取的应用中,可能是需要读取在数据库中存在的用户资料、客户资料等相关信息,参与该数据抽取,并作为数据抽取的输入数据使用。
在数据抽取过程中很显然存在读取多与一个文件(数据库表格)的情况,在目前的数据抽取应用中,由于应用是为了某种特定单一的目的编写的,故这种关系是确定的,一般是固化在应用中的。对于在数据抽取应用中使用的文件类数据输入,事前知道其格式,也同样在应用中可以固化。
在ETL模型中使用事件对象实体(event_object)来表达某一个源事件的来源,而且实现了事件对象可以随着帐期、本地网这些信息周期性的自动变化。如果源事件存在多个输入源,那么多个事件对象的关联关系由事件对象关系实体(event_object_relation)来表达。
将源事件需要抽取的字段将其定义为这个源事件的一个事件属性,对于一个特定的事件属性可以指定其事件对象(源事件的来源),配置其类型以及特殊格式。
处理过程(process_define)
数据抽取的过程一般遵从下面的简单流程1、确定输入部分2、读取输入部分的主数据源3、根据应用的需求,读取次数据源的数据4、按照应用需求中的变换规则进行数据的变换5、将变换后的数据记录存贮在应用内部6、支持过程条件(参数)配置7、主数据源处理完成后,按预先定义的格式进行输出读取原始数据、根据主数据,读取次数据源的过程,考虑的只是主数据源和次数据源之间的关联关系,而按预定格式进行输出,一般也只是涉及将数据抽取结构写入数据库表格或数据文件中。
在整个数据抽取的过程中主要的任务是数据变换。数据变换一般的来说遵从如下的基本规则Result=f(source_elementl,source element2,…..)Result是指目标数据记录的某一个字段的取值source_element是指原始数据记录中某字段的取值F是指数据的变换规则,一般是某种函数关系分析一下在数据抽取过程中目标数据和原始数据之间的函数关系,发现存在的函数关系主要有数据抽取、数据概化、集成、数据规范化及填写缺省值、选举、概念映射、函数操作等函数关系。
数据抽取数据抽取是指在原始数据和目标数据之间存在复制的关系,如我们在生成用户话务分析中,对于原始数据产品标识、计费模型、城乡标识、政企标识、免费标识等和目标数据中的相对应元素之间就是简单的数据抽取关系。
数据概化是指将数据概念化,目标数据和原始数据在业务上存在概念上的上下级关系,如本地网和营业区、营业区和分局在电信管理区域这个概念上存在上下级概念,就是说在原始数据元素分局和目标数据元素营业区、之间存在的就是一种数据概化的函数关系;又如在电信用户呼叫清单中存在一个属性—呼叫开始时间,在目标数据中一般不需要其呼叫时间到秒级,在秒级到分钟级、分钟级到小时级,小时级到天级等时间概念上存在的这种上下级关系,也是数据概化的函数关系。
数据集成集成最简单的概念就put together,在数据抽取中大量存在的各种指标性质的元素,原始数据和目标数据之间存在的就是一种数据集成的函数关系,如电信用户呼叫详单中的元素,呼叫时长,呼叫张数,计费费用和目标数据相应元素之间存在的就是一种数据集成的函数关系。
数据规范化数据规范化一般是指将连续变量离散化。这种函数关系在数据抽取的过程中存在的不是很多,常见的如在费用性的原始数据中存在的元素—用户消费金额和目标数据中存在的用户消费档次之间存在的就是一种数据规范化函数关系。
填写缺省值主要应用在两种环境,一种是目标数据和原始数据之间不存在关系,目标数据中的元素和处理时的各种业务环境相关。如在目标数据中存在的元素数据生成时间、操作员工等一些与原始数据无关的元素。另一种是原始数据和目标数据之间存在某种函数关系,但原始数据的元素值是未知的(字段的值是NULL),这时我们一般也采用填写缺省值的办法进行处理,也可以采用投票方式确定原始数据中字段值未知的值。
选举当源事件数据中,存在若干个值的时候(我们称其为候选值),而目标数据中只需要一个数据时,我们采用选举的办法进行解决这种取值冲突。
概念映射是指目的事件和源事件在含义上面表述的是同一概念,在各自的领域必须采用不同的概念的情形。
函数运算函数包含通用函数和行业函数。通用函数是指SQL函数、数学函数、字符串函数、日期函数等等的通用函数,该函数表述了源事件属性和目的事件属性之间的函数关系。行业函数是指在某一行业使用的专有算法,如电信部分的计费时长和通话时长的计算算法,目前我们收集到的有市话计费时长算法,长话计费时长算法及区间计费时长算法、IP计费时长算法,公话计费时长算法。
过程条件(参数)(process_param)可以指定源事件抽取的范围和条件,在源事件是表类型时可以理解为SQL语句WHERE条件部分。
在ETL模型里面,一个过程定义只能包含一个源事件和一个目的事件,源和目的事件属性的具体处理定义在过程详细定义实体(process_define_detail)里面。
目的事件(target_event)数据抽取过程生成的数据,一般的输出方式有两种,数据库表格和平面文件(一般是文本文件)。这种输出流一般也是批量的。
对于目的事件可以配置事件的输出位置,事件输出的名称,以及事件否些特殊的格式。
流程定制在数据抽取、数据提供中所涉及的数据抽取过程是复杂的,考虑一个复杂的流程无法用一个参数化的过程定义来实现,引入了流程的概念。一个典型的流程如图2所示。
它的过程包含了两个标准的可参数化过程和两个通用的FTP过程。
任务机制(task)一个流程可以作为一个任务,即一个任务可以有多个过程来表达,过程之间通过过程优先级进行区分;这些任务将标识系统中的功能单元,一个任务运行时将形成一个任务实例,一个任务实例的生命期,是从任务实例产生到任务实例执行结束,一个任务执行完成后,这个任务实例将在系统中消亡,而任务的生命期是在其功能有效的期间一直存在的。
核心流程ETL抽取引擎流程如图3所示,这也是ETL的核心流程。
ETL过程和任务定制流程包括1、配置源事件2、配置目的事件3、配置过程定义4、配置源事件包含对象5、配置源事件属性
6、配置包含对象关系7、配置目的事件属性8、配置过程参数9、配置过程详细定义10、配置任务11、配置任务参数12、配置任务前置事件13、生成任务实例14、配置任务实例参数下面结合一个具体例子对利用ETL技术对计费数据进行抽取提供的方法作进一步的说明1、需求描述从语音话单文件抽取大客户的话单统计数据.
语音文件存在在服务器serv1上/home/bill/data/hd/目录,语音文件的格式为文本文件,为描述简单其间这个文件只包含数据部分,各个字段之间用“,”分割,文件格式入下面格式所示
在下面我们称为源事件一大客户信息在数据库服务器db1上面,表结构如下
在下面我们称为源事件二
在下面我们称为源事件三要求生成结果保存成文本文件格式,统计结果包含如下信息,文件各个字段是固定长度的。
在下面我们称为目标事件一生成的文件存贮在服务器serv104上面的指定目录/home/bill/data/dkh/2、需求分析根据上面的需求描述,该任务将由3个过程组成。
●文件下载过程该过程是一个标准的过程负责文件的下载,不存在数据处理的功能。
●数据分析过程数据处理是该任务较复杂的部分,比较源事件和目标事件,下面我们用表格描述源事件和目标事件各个字段之间的关系及处理方法。
下面称之为处理过程清单。
我们通过的处理方法包含了数据抽取,概念映射和数据集成等三种。
●文件分发过程该过程是一个标准的过程负责文件的下发,不存在数据处理的功能。
3、配置描述●文件下载和分发过程的配置文件下载是一个标准的FTP过程,这里的源事件和目标事件描述下载下来的文件的目录信息,处理过程配置一条简单的描述信息。对于处理过程详细描述指定为FTP处理方式,在源事件包含对象中配置原始文件所在目录及其文件特征。
●数据分析过程配置源事件中配置一条描述信息,在源事件包含对象中配置文件下载过程中下载到本地的文件和大客户信息及其详细信息,3条记录描述一个文本文件格式和两个数据库表个的格式,在源事件属性中配置属性,在源事件包含对象中描述对象之间的关系文本文件中的电话号码和大客户详细信息中的电话号码的等于关系,大客户及其详细信息的大客户标识之间的等于关系;目标事件中配置一条信息描述结果文件存贮位置和其他相关信息,在目标事件属性中按照上面的信息进行描述,特别注意在属性中标识需要进行数据集成的字段为指标。
处理过程的描述中配置一条信息描述处理过程的基本描述,在详细信息中描述每一个目标事件属性和源事件之间的关系,参见处理过程清单。
为数据概化配置数据概化规则,在地域局向和本地网之间配置数据概化规则,具体的数据按照省集中计费系统实际数据进行配置。
为概念映射配置规则,在省集中计费和渠道系统的事件类型之间由于代码的不同,这种关系一般是在省集中计费系统和渠道系统的事件类型之间一般是1∶1或者n∶1的关系,数据按照两系统之间的实际情况进行配置。
●任务配置该任务中包含了3个过程,按照上面的分析是一个处理系列,在任务中按顺序进行配置。
权利要求
1.一种利用ETL技术对计费数据进行抽取提供的方法,其特征是它包括以下步骤分析数据抽取的三个基本元素即输入、输出及处理过程,将这三个部分进行了参数化描述,以便达到在数据抽取,数据提供的应用中采用数据驱动的模式,而非过程驱动的模式;建立数据抽取的可复用的过程配置机制以及便于管理和控制的任务调度机制。
2.根据权利要求1所述的利用ETL技术对计费数据进行抽取提供的方法,其特征是它包括以下具体步骤a、确定输入部分;b、读取输入部分的主数据源;c、根据应用的需求,读取次数据源的数据;d、按照应用需求中的变换规则进行数据的变换;e、将变换后的数据记录存贮在应用内部;f、支持过程条件(参数)配置;g、主数据源处理完成后,按预先定义的格式进行输出;在读取原始数据、根据主数据,读取次数据源的过程中考虑的是主数据源和次数据源之间的关联关系,而按预定格式进行输出,可利用数据抽取结构写入数据库表格或数据文件中;在整个数据抽取的过程中主要的任务是数据变换。数据变换一般的来说遵从如下的基本规则Result=f(source_element1,source_element2,…..)Result是指目标数据记录的某一个字段的取值source_element是指原始数据记录中某字段的取值F是指数据的变换规则,一般是某种函数关系在数据抽取过程中目标数据和原始数据之间的函数关系,存在的函数关系有数据抽取、数据概化、集成、数据规范化及填写缺省值、选举、概念映射、函数操作等函数关系;数据抽取数据抽取是指在原始数据和目标数据之间存在复制的关系;数据概化是指将数据概念化,目标数据和原始数据在业务上存在概念上的上下级关系,如原始数据元素分局和目标数据元素营业区之间存在的就是一种数据概化的函数关系;数据集成集成最简单的概念就put together,在数据抽取中大量存在的各种指标性质的元素,原始数据和目标数据之间存在的就是一种数据集成的函数关系;数据规范化数据规范化一般是指将连续变量离散化。这种函数关系在数据抽取的过程中存在的不是很多;填写缺省值主要应用在两种环境,一种是目标数据和原始数据之间不存在关系,目标数据中的元素和处理时的各种业务环境相关,另一种是原始数据和目标数据之间存在某种函数关系,但原始数据的元素值是未知的,采用填写缺省值的办法进行处理或采用投票方式确定原始数据中字段值未知的值;选举当源事件数据中,存在若干个值而目标数据中只需要一个数据时,采用的解决这种取值冲突的方法;概念映射是指目的事件和源事件在含义上面表述的是同一概念,在各自的领域必须采用不同的概念的情形;函数运算函数包含通用函数和行业函数,通用函数包括SQL函数、数学函数、字符串函数、日期函数,该函数表述了源事件属性和目的事件属性之间的函数关系;行业函数是指在某一行业使用的专有算法;过程条件为指定源事件抽取的范围和条件,在源事件是表类型时即为SQL语句WHERE条件部分。
全文摘要
本发明针对现有的数据接口、部署和调度不便的问题,公开了一种利用ETL技术对计费数据进行抽取提供的方法,它主要包括分析数据抽取的三个基本元素即输入、输出及处理过程,将这三个部分进行了参数化描述,以便达到在数据抽取,数据提供的应用中采用数据驱动的模式,而非过程驱动的模式;建立数据抽取的可复用的过程配置机制以及便于管理和控制的任务调度机制。可广泛运用于计费系统与外围系统的接口数据提供过程中。
文档编号H04M15/00GK1953490SQ20061004143
公开日2007年4月25日 申请日期2006年9月6日 优先权日2006年9月6日
发明者张金海, 宋苏强 申请人:南京中兴软创科技有限责任公司