一种数据处理方法及设备与流程

文档序号:11236837阅读:355来源:国知局
一种数据处理方法及设备与流程

本申请涉及网络数据处理领域,特别涉及一种数据处理方法及设备。



背景技术:

随着移动互联网的迅速发展,移动互联网用户不断增加,从而使网络互联中的网络数据呈指数倍数增加。面对如此庞大的网络数据,运营商在要求保证网络优化质量的前提下,对网络数据的实时性,准确性也提出了更高的要求。

网络数据一般存储在网络服务器中,网络服务器是指一个管理资源并为用户提供服务的计算机软件和硬件的集合,用于接收数据请求并对所述数据请求进行响应。

现有技术中,从厂家的网络服务器中获取网络数据进行分析,一般采用整体下载的方式,即将网络服务器中的数据文件全部下载,然后再进行数据分析,数据处理效率低。



技术实现要素:

本申请所要解决的技术问题是提供一种数据处理方法,提升对服务器中网络数据的处理效率。

一种数据处理方法,包括:

实时扫描服务器中的数据文件;

触发流读取线程,从已扫描数据文件中读取预设的数据缓存区大小的数据流,并将所述数据流存放到本地缓存区中;

触发解析线程从所述本地缓存区中,读取数据进行解析;所述解析线程的数量至少为一个,所述解析线程与所述读取线程为预先创建的独立线程。

上述的方法,优选的,还包括:

缓存已完成解析的数据文件的文件名;

将再次扫描获得的数据文件的文件名与所述缓存的文件名进行比较;当比较相同时,对所述再次扫描获得的数据文件进行舍弃;

当比较不相同时,触发流读取线程对所述再次扫描获得的数据文件进行读取。

上述的方法,优选的,还包括:

将经过解析的文件数据缓存到内存或缓存文件中;

当缓存的文件数据的数量到达预设量值时,将缓存的文件数据作为一个数据块,将所述数据块缓存到本地缓存文件中;

当所述本地缓存文件中的文件数据达到所述本地缓存文件的容量临界值时,新建本地缓存文件。

上述的方法,优选的,还包括:

触发多个分发线程从所述本地缓存文件中读取文件数据;并按预设的分发方式进行分发。

上述的方法,优选的,所述实时扫描服务器中的数据文件,触发流读取线程,从已扫描数据文件中读取预设的数据缓存区大小的数据流,包括:

当同时扫描到多个数据文件时,依据各个数据文件的文件名对各个数据文件进行筛选;

按扫描顺序对经过筛选的数据文件进行排序;

触发流读取线程,依序从各个已扫描数据文件中读取预设的数据缓存区大小的数据流。

一种数据处理设备,包括:

扫描单元,用于实时扫描服务器中的数据文件;

第一触发单元,用于触发流读取线程,从已扫描数据文件中读取预设的数据缓存区大小的数据流,并将所述数据流存放到本地缓存区中;;

第二触发单元,用于触发解析线程从所述本地缓存区中,读取数据进行解析;所述解析线程的数量至少为一个,所述解析线程与所述读取线程为预先创建的独立线程。

上述的设备,优选的,还包括:

第一缓存单元,用于缓存已完成解析的数据文件的文件名;

比较单元,用于将再次扫描获得的数据文件的文件名与所述缓存的文件名进行比较。

上述的设备,优选的,还包括:

第二缓存单元,用于将经过解析的文件数据缓存到内存或缓存文件中。

上述的设备,优选的,还包括:

第三触发单元,用于触发多个分发线程按预设的分发方式对缓存的文件数据进行分发。

上述的设备,优选的,还包括:

筛选单元,用于当同时扫描到多个数据文件时,依据各个数据文件的文件名对各个数据文件进行筛选。

本申请实施例提供了一种数据处理方法,实时扫描服务器中的数据文件,对于扫描到的数据文件,触发流读取线程,从已扫描数据文件中读取预设的数据缓存区大小的数据流,并将所述数据流存放到本地缓存区中;触发解析线程从所述本地缓存区中,读取数据进行解析。本申请实施例中,对于扫描到的数据文件,分块进行读取,并且在读取到文件数据时,开始对读取的文件数据进行解析,文件的读取与解析同步进行,互不干扰,提升了数据处理的效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附+图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请的一种数据处理方法的方法流程图;

图2是本申请的一种数据处理方法的又一方法流程图;

图3是本申请的一种数据处理设备的结构示意图;

图4是本申请的一种数据处理设备的又一结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本申请实施例提供了一种数据处理方法,该方法应用于本地客户端,其方法流程图如图1所示,可以包括以下步骤:

步骤s101:实时扫描服务器中的数据文件;

本申请实施例中,当需要获取厂家网络服务器上的数据文件时,与服务器建立连接,实时扫描服务器中的数据文件。

步骤s102:触发流读取线程,从已扫描数据文件中读取预设的数据缓存区大小的数据流,并将所述数据流存放到本地缓存区中;

本申请实施例中,预先创建有至少一个解析线程,以及与所述解析线程独立的流读取线程;当扫描到网络服务器中的数据文件时,对于每一个扫描到的数据文件,触发流读取线程依据读取指令中的数据缓存区的大小,顺序读取该数据文件中的文件数据。

步骤s103:触发解析线程从所述本地缓存区中,读取数据进行解析;所述解析线程的数量至少为一个,所述解析线程与所述读取线程为预先创建的独立线程。

在流读取线程读取文件数据的同时,触发解析线程对每一次读取到的文件数据进行解析。

本申请实施例提供的数据处理方法,对于扫描到的数据文件,不采用整体下载的方式,而是按预设数据缓存区的大小,每次读取一定的文件数据,并在读取到文件数据的同时,并行进行数据解析过程,同时文件数据的读取过程依然继续,形成读取与解析的并行操作,在很大程度上,提升了数据处理的效率。

本申请提供了一种数据处理方法,实时扫描服务器中的数据文件,对于扫描到的数据文件或新增文件,对于已经处理的文件名会缓存到本地缓存,针对服务器上的新增文件,触发流读取线程,依据预设的数据缓存区大小,顺序读取放入缓存区,且触发解析线程,对于每一次从缓存区中读取到的数据进行解析,解析出的数据,按照预设记录大小进行组装成一个数据块,当数据块达到预设个数时,将这批数据放到缓存区或缓存文件中,同时触发分发线程,从缓存区或缓存文件中读取数据按照分发策略进行数据分发,在整个数据的接入,解析,分发,都是异步的,互补干扰,极大的提升了整体的数据处理的效率。本申请实施例中,就是按照上述描述的数据处理方法进行处理的。

本申请实施例中,所述数据缓存区大小设定可以根据数据文件的大小进行设定,例如当数据文件为10m时,可以将所述数据缓存区的大小设定为2m,这样可以分5次对数据文件中的文件数据进行读取。

本申请实施例中,以流式数据的方式对数据文件进行读取,同时以流式数据的方式对读取的数据进行解析并存储,实现了数据实时性的读取与解析。

参考图2,示出了本申请实施例一种数据处理方法的一个完整的执行示意图,在图2中:

本申请实施例提供的处理方法,对于已经解析完成的数据文件,对该数据文件的文件名进行缓存,当再次扫描服务器中的数据文件时,将缓存的文件名与再次扫描到的数据文件的文件名进行比较,如果文件名相同,则不再对该扫描到的文件数据进行读取,以避免重复。如果文件名不相同,再触发读取线程对该扫描到的数据文件进行读取,文件数据读取的过程与图1中记载的方法相同。

本申请实施例提供的处理方法,对于已经解析完成的文件数据,将经过解析的文件数据缓存到内存或缓存文件中;

当缓存的文件数据的数量到达预设量值时,将缓存的文件数据作为一个数据块,将所述数据块缓存到本地缓存文件中;

当所述本地缓存文件中的文件数据达到所述本地缓存文件的容量临界值时,新建本地缓存文件。

本申请实施例提供的处理方法,通过多线程的方式,触发多个分发线程从所述本地缓存文件中读取文件数据;并按预设的分发方式进行分发。

由图2所记载的技术方案可以看出,本申请实施例提供的数据处理方法中,通过采集程序与厂家服务器建立连接,并指定数据缓存区大小,采集程序实时扫描厂家服务器的数据文件,并将扫描到的数据文件进行数据流数据接入,采集程序每次从厂家服务器上读取一定的缓冲数据,并实时性的针对接入回来的数据进行数据解析,实时性的断点记录,直到本次接入的数据接入完成。对于已经解析完成的数据文件名,并缓存到本地。当再次扫描厂家服务器上的文件或新增文件,并和本地的缓存记录进行比对,对于已经采集过的文件不再采集,对于未采集的文件,再按照流数据接入,解析,缓存,分发。对于解析出来的数据,会将一定数量的数据成批缓存到内存中,当达到指定的缓存个数时,会缓存到本地文件中,当缓存数据文件达到一定大小时,再新建一个本地缓存文件进行缓存,并开启多个分发线程从缓存文件中获取数据,按照预先指定的分发模板进行分发。在此过程中,数据的接入解析,和数据的存储分发是异步的,不会干扰,大大提高了采集的时效性,提高了用户的感知。

本申请实施例提供的数据处理方法中,从厂家服务器上接入指定大小的缓冲区数据流大小后,并对数据流进行数据解析,形成结构化数据或非结构化数据,将数据缓存到内存和本地映射文件,大大减少io。

本申请实施例中,通过多线程的方式,实时从本地缓存数据文件或内存中获取数据,并利用预先定义好的规则进行数据分发,例如输出文件方式,ftp方式,数据库方式,hadoop中的hbase等输出策略。

当对本地缓存区的文件数据处理完成之后,再次从厂家服务器上获取指定缓存区大小的数据流,重新执行上述流程进行处理。

上述方法的执行过程中,对于扫描服务器的过程中,每次扫描到一个数据文件时,即对该数据文件进行流式读取,读取完成后,再进行扫描,对于已经读取过的文件不再进行重复读取,对于未读取的,重新进行流式读取。

本申请实施例中,还提供了另外一种实现方式,对于服务器的扫描,一次性扫描全部的数据文件,扫描到这些数据文件之后,进行筛选,对于重复的数据文件进行舍弃,然后按扫描顺序,对数据文件进行排序,读取线程,按所述顺序,依次流式读取各个数据文件。具体执行过程如下:

当同时扫描到多个数据文件时,依据各个数据文件的文件名对各个数据文件进行筛选;

按扫描顺序对经过筛选的数据文件进行排序;

触发流读取线程,依序从各个已扫描数据文件中读取预设的数据缓存区大小的数据流。。

综上,本申请实施例提供的数据处理方法,采用流式读取的方式,对于读取与解析过程同步进行,提升了数据处理的效率,保证了数据的实时性。。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

与上述本申请一种数据处理方法相对应,参见图3,本申请还提供了一种数据处理设备,在本实施例中,该设备可以包括:

扫描单元201,用于实时扫描服务器中的数据文件;

第一触发单元202,用于触发流读取线程,从已扫描数据文件中读取预设的数据缓存区大小的数据流,并将所述数据流存放到本地缓存区中;

第二触发单元203,用于触发解析线程从所述本地缓存区中,读取数据进行解析;所述解析线程的数量至少为一个,所述解析线程与所述读取线程为预先创建的独立线程。

本申请实施例提供的数据处理设备,对于扫描到的数据文件,不采用整体下载的方式,而是按预设数据缓存区的大小,每次读取一定的文件数据,并在读取到文件数据的同时,并行进行数据解析过程,同时文件数据的读取过程依然继续,形成读取与解析的并行操作,在很大程度上,提升了数据处理的效率。

参见图4,示出了本申请实施例一种数据处理设备的又一详细结构示意图,具体还包括:

第一缓存单元204,用于缓存已完成解析的数据文件的文件名;

比较单元205,用于将再次扫描获得的数据文件的文件名与所述缓存的文件名进行比较。

本申请实施例中,对于已经解析完成的数据文件,对该数据文件的文件名进行缓存,当再次扫描服务器中的数据文件时,将缓存的文件名与再次扫描到的数据文件的文件名进行比较,如果文件名相同,则不再对该扫描到的文件数据进行读取,以避免重复。如果文件名不相同,再触发读取线程对该扫描到的数据文件进行读取,文件数据读取的过程与图1中记载的方法相同。

第二缓存单元206,用于将经过解析的文件数据缓存到内存或缓存文件中。

第三触发单元207,用于触发多个分发线程按预设的分发方式对缓存的文件数据进行分发。

本申请实施例中,对于已经解析完成的文件数据,将所述解析完成的文件数据缓存到内存中,当缓存到内存中的文件数据的数量到达预设量值的时候,将所述内存中的文件数据缓存到本地的缓存文件中,当本地缓存文件的缓存空间满时,新建一个本地缓存文件。

通过多线程的方式,触发多个分发线程从所述本地缓存文件中读取文件数据;并按预设的分发方式进行分发。

筛选单元208,用于当同时扫描到多个数据文件时,依据各个数据文件的文件名对各个数据文件进行筛选。

对于服务器的扫描,一次性扫描全部的数据文件,扫描到这些数据文件之后,进行筛选,对于重复的数据文件进行舍弃,然后按扫描顺序,对数据文件进行排序,读取线程,按所述顺序,依次流式读取各个数据文件。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

以上对本申请所提供的一种数据处理方法及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1