多源自增海量数据文件实时采集方法

文档序号:6436769阅读:305来源:国知局
专利名称:多源自增海量数据文件实时采集方法
技术领域
:本发明涉及物理领域,尤其涉及计算机应用系统中海量数据采集技术,特别是一种多源自增海量数据文件实时采集方法。
背景技术
:电信业务涉及到的数据量非常巨大。在电信大型应用系统中,一般有多个数据源同时提供海量实时自增数据文件,应用系统每天需要采集几十到上百GB的海量数据,如PCMD和ROP数据。这类数据以文件形式存储在多个服务器数据源上,每个数据源一般是一个固定的时间周期生成一个文件,如一小时生成一个数据文件或者一天生成一个数据文件,文件在周期内会实时自增,直到下一周期开始,对应的数据文件会自动创建并实时自增。如何确保第一时间将海量数据文件准确完整地采集到并提供给应用系统成为一个技术难题。现有技术是在一个数据文件完全写入并不再自增后采集入库,这就会带来两个弊端:一是数据延迟时间长,实时性差。上一周期的数据文件需要等到下一周期开始才能采集,这样对于上一周期初期的数据来说可能就会延迟一个周期才能采集,而且采集本身也会花去较长一段时间,大大降低了数据的实时性。二是服务器负载失衡,稳定性差。一次性采集入库海量的数据,服务器处理时间集中在较长一段时间内,一旦入库过程出现异常,回滚的代价很高,也会严重影响到客户对服务器的查询访问速度
发明内容
:本发明的目的在于提供一种多源自增海量数据文件实时采集方法,所述的这种多源自增海量数据文件实时采集方法要解决现有技术采集电信数据延迟时间长、实时性差、影响服务器负载和稳定性的技术问题。本发明的这种多源自增海量数据文件实时采集方法,包括从一个以上数目的服务器数据源上采集自增数据文件的过程,其中,在所述的从一个以上数目的服务器数据源上采集自增数据文件的过程中,采用多线程技术并行采集一个以上数目的服务器数据源上的自增数据文件,采用文件切片技术和文件续传技术对所述的自增数据文件按时间切片,每次采集自增数据文件的增量部分。进一步的,所述的从一个以上数目的服务器数据源上采集自增数据文件的过程包括以下步骤:步骤1,明确数据生成周期、命名规则和采集方式,并预估每个数据文件的大小,步骤2,根据数据生成周期、预估数据文件大小及业务需求设定采集时间间隔,步骤3,按设定的采集时间间隔,以定期轮询的方式检查服务器数据源当前周期的数据文件,采用文件切片技术和文件续传技术采集增量数据,并按步骤I中设定的命名规则以小数据文件的形式存储到本地,并且记录本次采集过程中当前时刻文件字节大小作为下次轮询采集的起始位置,第一次轮询中采集从O字节位置到第一次轮询时刻的数据文件字节位置的数据,步骤4,采集从上一次轮询中记录的字节位置到当前轮询时刻的数据文件字节位置的数据,循环读取,直到下一个周期数据文件生成,步骤5,在步骤4中所述的周期数据文件的生成时刻,进行最后一次轮询采集,步骤6,将采集到的文件按设定的命名规则以小数据文件存储到指定目录,并直接加载数据库或者备份至服务器,步骤7,对于N个服务器数据源,采用多线程技术,按照步骤3-步骤6进行并行采集,步骤8,对于多个数据类别,按照步骤1-步骤7,采用多线程技术或多进程技术实现并行采集。进一步的,所述的步骤I中的数据源包括:有N个数据源对应N台服务器,数据以文件形式分别存储在N个服务器上,数据在一个周期生成一个数据文件,数据文件在周期内实时写入增长,直到下一周期数据文件创建,数据文件命名包括唯一标识规则,按照YYYYMMDDHHMMSS.XXXX格式命名,YYYYMMDDHHMMSS是时间周期特征,XXXX数据类别特征。进一步的,根据所述的步骤2中的采集时间间隔定义文件切片的粒度。进一步的,所述的步骤3中的文件切片技术是将文件按照等时间间隔切割成一个个文件切片,每次记录切割的字节位置作为下次切片采集的起始字节位置,文件续传技术是在文件每次切割的时间点,采集从上次采集记录的字节位置到当前时间文件最大字节位置的数据切片。进一步的,所述的步骤6中的命名规则包括:数据文件命名包括唯一标识的要素,按照 YYYYMMDDHHMMSSECPN_HHMMSS.XXXX 格式命名,YYYYMMDDHHMMSS 为数据时间周期特征,XXXX为数据类别特征,ECPN为数据源特征,_HHMMSS为采集时间特征,数据时间周期特征和数据类别特征来源于数据源。本发明和已有技术相比较,其效果是积极和明显的。本发明通过采用多线程技术同时采集多个数据服务器上的数据文件,采用文件切片技术和文件续传技术对一个数据文件按时间切片,每次采集增量部分,实现多源自增海量数据文件实时采集,解决了现有技术中采集电信数据延迟时间长、实时性差、影响服务器负载和稳定性的技术问题。


:图1是本发明的多源自增海量数据文件实时采集方法的原理图。
具体实施方式
:实施例1:如图1所示,本发明的多源自增海量数据文件实时采集方法,包括从一个以上数目的服务器数据源上采集自增数据文件的过程,其中,在所述的从一个以上数目的服务器数据源上采集自增数据文件的过程中,采用多线程技术并行采集一个以上数目的服务器数据源上的自增数据文件,采用文件切片技术和文件续传技术对所述的自增数据文件按时间切片,每次采集自增数据文件的增量部分。进一步的,所述的从一个以上数目的服务器数据源上采集自增数据文件的过程包括以下步骤:步骤1,明确数据生成周期、命名规则和采集方式,并预估每个数据文件的大小。数据源特征主要包括:A、有N个数据源对应N台服务器;B、数据以文件形式分别存储在N个服务器上;C、数据在一个周期⑴生成一个数据文件(如I小时/I天);D、数据文件在周期内实时写入增长,直到下一周期数据文件创建;E、数据文件命名包括唯一标识规则,按照YYYYMMDDHHMMSS.XXXX格式命名。如10040711.PCMD:其中,10040711是时间周期特征;PCMD是数据类别特征。步骤2,根据数据生成周期、预估数据文件大小及业务需求设定采集时间间隔,步骤3,按设定的采集时间间隔,以定期轮询的方式检查服务器数据源当前周期的数据文件,采用文件切片技术和文件续传技术采集增量数据,并按步骤I中设定的命名规则以小数据文件的形式存储到本地,并且记录本次采集过程中当前时刻文件字节大小作为下次轮询采集的起始位置,第一次轮询中采集从O字节位置到第一次轮询时刻的数据文件字节位置的数据,步骤4,采集从上一次轮询中记录的字节位置到当前轮询时刻的数据文件字节位置的数据,循环读取,直到下一个周期数据文件生成,步骤5,在步骤4中所述的周期数据文件的生成时刻,进行最后一次轮询采集,最后一次轮询采集时间要保证在下个周期数据文件生成后并且是刚生成后,以保证上一周期数据文件采集的完整性和下一数据采集的实时性。步骤6,将采集到的文件按设定的命名规则以小数据文件存储到指定目录,并直接加载数据库或者备份至服务器,步骤7,对于N个服务器数据源,采用多线程技术,按照步骤3-步骤6进行并行采集,步骤8,对于多个数据类别,按照步骤1-步骤7,采用多线程技术或多进程技术实现并行采集。进一步的,根据所述的步骤2中的采集时间间隔定义文件切片的粒度。进一步的,所述的步骤3中的文件切片技术是将文件按照等时间间隔切割成一个个文件切片,每次记录切割的字节位置作为下次切片采集的起始字节位置,文件续传技术是在文件每次切割的时间点,采集从上次采集记录的字节位置到当前时间文件最大字节位置的数据切片。进一步的,所述的步骤6中的命名规则包括:数据文件命名包括唯一标识的要素,按照 YYYYMMDDHHMMSSECPN_HHMMSS.XXXX 格式命名,YYYYMMDDHHMMSS 为数据时间周期特征,XXXX为数据类别特征,ECPN为数据源特征,_HHMMSS为采集时间特征,数据时间周期特征和数据类别特征来源于数据源。在本发明的一个实施例中,PCMD数据以文件形式存储在7个OMP服务器数据源上,每个数据源每小时生成一个数据文件,文件在当前小时内实时写入,直到下一小时的数据文件创建并实时写入,每小时每个文件记录数达上百万级数据量。传统方法是在一个PCMD数据文件完全写入后在采集,这就会带来两个严重弊端:一是数据延迟时间长,实时性差。上一周期的数据文件需要等到下一周期开始才能采集(10点至11点的数据文件要在11点以后才能采集入库),这样对于上一周期初期的数据来说可能就会延迟一个周期才能采集,而且采集本身也会花去较长一段时间,大大降低了数据的实时性。二是服务器负载失衡,稳定性差。一次性采集入库海量的数据,服务器处理时间集中在较长一段时间内,一旦入库过程出现异常,回滚的代价很高,也会严重影响到客户对服务器的查询访问速度。采用本发明采集PCMD数据,设置每I分钟时间间隔,每小时每个文件切割成60次采集,每次采集增量,7个OMP并行采集,实现了海量PCMD数据及时完整的采集入库。对比传统方法,优势如下:一是克服了传统方法数据延迟时间长的弊端,数据延迟从I小时降低到I分钟,提高数据采集的实时性。二是有利于服务器负载均衡,避免了集中在一段时间内采集处理一个大数据文件带来的稳定性上的隐患,提高PCMD数据采集和处理的稳定性。
权利要求
1.一种多源自增海量数据文件实时采集方法,包括从一个以上数目的服务器数据源上采集自增数据文件的过程,其特征在于:在所述的从一个以上数目的服务器数据源上采集自增数据文件的过程中,采用多线程技术并行采集一个以上数目的服务器数据源上的自增数据文件,采用文件切片技术和文件续传技术对所述的自增数据文件按时间切片,每次采集自增数据文件的增量部分。
2.按权利要求1所述的多源自增海量数据文件实时采集方法,其特征在于:所述的从一个以上数目的服务器数据源上采集自增数据文件的过程包括以下步骤: 步骤1,明确数据生成周期、命名规则和采集方式,并预估每个数据文件的大小, 步骤2,根据数据生成周期、预估数据文件大小及业务需求设定采集时间间隔, 步骤3,按设定的采集时间间隔,以定期轮询的方式检查服务器数据源当前周期的数据文件,采用文件切片技术和文件续传技术采集增量数据,并按步骤I中设定的命名规则以小数据文件的形式存储到本地,并且记录本次采集过程中当前时刻文件字节大小作为下次轮询采集的起始位置,第一次轮询中采集从O字节位置到第一次轮询时刻的数据文件字节位置的数据, 步骤4,采集从上一次轮询中记录的字节位置到当前轮询时刻的数据文件字节位置的数据,循环读取,直到下一个周期数据文件生成, 步骤5,在步骤4中所述的周期数据文件的生成时刻,进行最后一次轮询采集, 步骤6,将采集到的文件按设定的命名规则以小数据文件存储到指定目录,并直接加载数据库或者备份至服务器, 步骤7,对于N个服务器数据源,采用多线程技术,按照步骤3-步骤6进行并行采集,步骤8,对于多个数据类别,按照步骤1-步骤7,采用多线程技术或多进程技术实现并行米集。
3.按权利要求2所述的多源自增海量数据文件实时采集方法,其特征在于: 所述的步骤I中的数据源包括: 有N个数据源对应N台服务器, 数据以文件形式分别存储在N个服务器上, 数据在一个周期生成一个数据文件, 数据文件在周期内实时写入增长,直到下一周期数据文件创建, 数据文件命名包括唯一标识规贝U,按照YYYYMMDDHHMMSS.XXXX格式命名,YYYYMMDDHHMMSS是时间周期特征,XXXX数据类别特征。
4.按权利要求2所述的多源自增海量数据文件实时采集方法,其特征在于:根据所述的步骤2中的采集时间间隔定义文件切片的粒度。
5.按权利要求2所述的多源自增海量数据文件实时采集方法,其特征在于:所述的步骤3中的文件切片技术是将文件按照等时间间隔切割成一个个文件切片,每次记录切割的字节位置作为下次切片采集的起始字节位置,文件续传技术是在文件每次切割的时间点,采集从上次采集记录的字节位置到当前时间文件最大字节位置的数据切片。
6.按权利要求2所述的多源自增海量数据文件实时采集方法,其特征在于: 所述的步骤6中的命名规则包括: 数据文件命名包括唯一标识的要素,按照YYYYMMDDHHMMSSECPN_HHMMSS.XXXX格式命名,YYYYMMDDHHMMSS为数据时间周期特征,XXXX为数据类别特征,ECPN为数据源特征,_HHMMSS为采集时间特征 ,数据时间周期特征和数据类别特征来源于数据源。
全文摘要
一种多源自增海量数据文件实时采集方法,采用多线程技术并行采集数据源上的自增数据文件,采用文件切片技术和文件续传技术对所述的自增数据文件按时间切片,每次采集自增数据文件的增量部分。根据数据生成周期、预估数据文件大小及业务需求设定采集时间间隔,按设定的采集时间间隔,以定期轮询的方式检查服务器数据源当前周期的数据文件,采用文件切片技术和文件续传技术采集增量数据,以小数据文件的形式存储到本地,并且记录当前时刻文件字节大小作为下次轮询采集的起始位置。本发明每次采集增量部分,实现多源自增海量数据文件实时采集,解决了现有技术中采集电信数据延迟时间长、实时性差、影响服务器负载和稳定性的技术问题。
文档编号G06F17/30GK103092840SQ20111033485
公开日2013年5月8日 申请日期2011年10月28日 优先权日2011年10月28日
发明者王志海, 麦菁, 辛炜博, 徐卸土, 王智博 申请人:上海邮电设计咨询研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1