发明内容
本发明实施例提供了电子商务平台大数据处理方法和***,能够使得在采集数据时不会导致负载过重,解决了大数据存储时存在写吞吐速率低和内存占用率过高等问题。
为了解决上述问题,本发明公开了如下技术方案:
第一方面,提供一种电子商务平台大数据处理方法,包括:
数据中心发出采集请求,采集数据响应启动;
数据中心通过轮询的方式与各采集节点通信,定时周期性地向各采集设备轮询是否就绪,若是,则进入下一步;若否,则返回上一级;
生成多个采集代理,将采集网络划分为不同的模块,每个采集代理负责不同模块中的采集节点,采集代理在终端发送相应的采集操作命令给终端设备;
将接收到的采集数据写到磁盘中,使用归档算法将小文件合并为大文件存储,采用二级索引的方式,将大文件索引放置在主节点,小文件的索引放置在存储节点;
对同一类中的数据文件合并,同时生成索引文件,当大文件的大小达到一定阈值时,将大文件存储到数据库中,同一类的后续合并的大文件也写到数据库中;
将数据库中的一个表作为一个文件,相应建立一个索引文件,对需要操作的页进行索引,查找到相应的文件,加载进入虚拟内存空间;
当内存可以使用的物理内存空间不够时,由操作***的虚拟内存管理器负责页数据交换,最后再同步到物理存储介质。
第二方面,提供一种电子商务平台大数据处理***,包括:
启动模块,数据中心发出采集请求,采集数据响应启动;
检测模块,数据中心通过轮询的方式与各采集节点通信,定时周期性地向各采集设备轮询是否就绪,准备就绪则进入采集代理生成模块,若否,则重新返回启动模块;
采集代理生成模块,生成多个采集代理,将采集网络划分为不同的模块,每个采集代理负责不同模块中的采集节点,采集代理在终端发送相应的采集操作命令给终端设备;
写缓存模块,将接收到的采集数据写到磁盘中,使用归档算法将小文件合并为大文件存储,采用二级索引的方式,将大文件索引放置在主节点,小文件的索引放置在存储节点;
合并写模块,对同一类中的数据文件合并,同时生成索引文件,当大文件的大小达到一定阈值时,将大文件存储到分布式文件***中,同一类的后续合并的大文件也写到分布式文件***中;
索引建立模块,将数据库中的一个表作为一个文件,相应建立一个索引文件,对需要操作的页进行索引,查找到相应的文件,加载进入虚拟内存空间;
同步模块,当内存可以使用的物理内存空间不够时,由操作***的虚拟内存管理器负责页数据交换,最后再同步到物理存储介质。
本发明通过生成多个采集代理,将采集网络划分为不同的模块,每个采集代理负责不同模块中的采集节点,以及写缓存为底层的文件***提供高性能的写缓存服务,将文件集合划分为多个类,将海量文件合并为大文件,最终将大文件写入到文件***进行持久化存储。通过写缓存和写合并之后,规避了海量文件写对文件***的不友好,从而优化写吞吐速率和内存占用率。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明一个实施例提出了一种大数据处理方法的流程图,数据中心发出采集请求,采集数据响应启动。数据中心通过轮询的方式与各采集节点通信,定时周期性地向各采集设备轮询是否就绪,若是,则进入下一步;若否,则返回上一级;生成多个采集代理,将采集网络划分为不同的模块,每个采集代理负责不同模块中的节点,由于采集代理在终端发送相应的采集操作命令给终端设备,而不需要由过去的数据中心统一进行,这样就将处理工作交给不同模块的采集代理进行,而数据中心只负责对最后实时数据的接收。由于数据采集的范围由原来统一的网络模式变成多个局部模块,而采用的采集代理能提高运行的效率。多个采集代理的并发执行也极大提高了数据的处理速度及传送效率,使实时数据的不再通过传统的轮询方式进行采集获取,也不再受节点数量的限制。
在文件***底层存储之上增加了一个内存文件***中主要进行写缓存和写合并服务。其中写缓存为底层的文件***提供高性能的写缓存服务,从而优化写吞吐速率。将接收到的采集数据写到磁盘中,使用归档算法将小文件合并为大文件存储,采用二级索引的方式,将大文件索引放置在主节点,小文件的索引放置在存储节点来减少主节点的元数据存储压力。将文件集合划分为多个类,将海量文件合并为大文件,最终将大文件写入到文件***进行持久化存储。通过写缓存和写合并之后,规避了海量文件写对文件***的不友好。
当内存文件***中的主节点接收到一个写请求的时候,需要主节点进行写调度策略以返回给数据采集节点合适的服务节点以负责具体的文件写缓存服务。使用哈希表来存储每个数据采集节点和服务节点的映射关系,并根据负载的情况为数据采集节点指定相应的服务节点。当一个传感器第一次与内存文件***建立连接时,数据采集节点连接主节点的写调度模块,主节点写调度模块根据当前每个节点的负载返回一个主存储服务节点地址和一个副本服务节点地址给数据采集节点,并在元数据管理模块中存储数据采集节点与服务节点的映射关系。
写合并,当内存文件***中的总文件量达到一定的阈值时,需要将文件持久化存储到文件***中,文件***面对海量小文件时写吞吐速率低和主节点内存占用过多的问题,使得需要对海量小文件进行写优化。在内存文件***中使用上述写合并操作将访问关联性较强的采集节点数据合并到大文件,写入文件***。主节点中的合并管理模块根据类调度的节点将同一个类的文件转移到同一个服务节点上,由服务节点的合并写模块对类中所包含的数据文件进行合并,同时生成索引文件,当大文件的大小达到一定阈值时,将大文件写到文件***中,同一个类的后续合并的大文件写到文件***中。文件合并之后对内存文件***中的元数据信息进行清理操作。
而对于实时数据库的加载与组织,实时数据管理***的加载策略是建立在索引基础之上的,首先对需要操作的页进行索引,查找到相应的文件,相应的页偏移量,然后加载进入虚拟内存空间。当内存可以使用的物理内存空间不够时,由操作***的虚拟内存管理器负责页数据交换。由于是通过段页式模型管理内存空间,将其分为等大小的页面,所有的内外存交换和调度都是以页面为单位进行的。当需要请求的页面在内存空间中无法找到时,***会产生缺页错误,需要从磁盘或者交换空间中调入新的请求页面,当内存空间不足够容纳新调度进入的页面时,就要丢弃或者与外存交换内存中现有的页面。
将数据库中的一个表作为一个文件,相应建立一个索引文件。表文件和索引文件的结构都是由文件头和数据对象两个部分组成。而内存部分,则划分为四个部分,分别是阴影区、数据操作区、索引区及数据对象区。表文件中的数据对象载入到数据对象区,索引文件的索引内容载入到索引区,然后根据相对偏移量来索引出数据对象。每次需要操作的数据项都先备份到阴影区,然后再在数据操作区中操作。操作完成后,数据将更新到阴影区,再由阴影区更新数据对象区的数据内容,最后同步到物理介质数据。
图2是本发明另一个实施例中大数据处理***的结构示意图,提出了一种大数据处理***,包括:启动模块201、检测模块202、采集代理生成模块203、写缓存模块204、合并写模块205、索引建立模块206、同步模块207、清理模块208、实时查询模块209、历史查询模块210。其中:
启动模块201,数据中心发出采集请求,采集数据响应启动。
检测模块202,数据中心通过轮询的方式与各采集节点通信,定时周期性地向各采集设备轮询是否就绪,准备就绪则进入采集代理生成模块203,若否,则重新返回启动模块201。
采集代理生成模块203,生成多个采集代理,将采集网络划分为不同的模块,每个采集代理负责不同模块中的采集节点,采集代理在终端发送相应的采集操作命令给终端设备。
不需要由过去的数据中心统一进行,这样就将处理工作交给不同模块的采集代理进行,而数据中心这边只负责对最后实时数据的接收。由于数据采集的范围由原来统一的网络模式变成多个局部模块,而采用的采集代理能提高运行的效率。多个采集代理的并发执行也极大提高了数据的处理速度及传送效率,使实时数据的不再通过传统的轮询方式进行采集获取,也不再受节点数量的限制。
写缓存模块204,将接收到的采集数据写到磁盘中,使用归档算法将小文件合并为大文件存储,采用二级索引的方式,将大文件索引放置在主节点,小文件的索引放置在存储节点。
合并写模块205,对同一类中的数据文件合并,同时生成索引文件,当大文件的大小达到一定阈值时,将大文件存储到分布式文件***中,同一类的后续合并的大文件也写到分布式文件***中。
其中写缓存为底层的文件***提供高性能的写缓存服务,从而优化写吞吐速率。将接收到的采集数据写到磁盘中,使用归档算法将小文件合并为大文件存储,采用二级索引的方式,将大文件索引放置在主节点,小文件的索引放置在存储节点来减少主节点的元数据存储压力。将文件集合划分为多个类,将海量文件合并为大文件,最终将大文件写入到文件***进行持久化存储。通过写缓存和写合并之后,规避了海量文件写对文件***的不友好。
索引建立模块206,将数据库中的一个表作为一个文件,相应建立一个索引文件,对需要操作的页进行索引,查找到相应的文件,加载进入虚拟内存空间;实时数据库的加载与组织,实时数据管理***的加载策略是建立在索引基础之上的,首先对需要操作的页进行索引,查找到相应的文件,相应的页偏移量,然后加载进入虚拟内存空间。当内存可以使用的物理内存空间不够时,由操作***的虚拟内存管理器负责页数据交换。由于是通过段页式模型管理内存空间,将其分为等大小的页面,所有的内外存交换和调度都是以页面为单位进行的。当需要请求的页面在内存空间中无法找到时,***会产生缺页错误,需要从磁盘或者交换空间中调入新的请求页面,当内存空间不足够容纳新调度进入的页面时,就要丢弃或者与外存交换内存中现有的页面。
同步模块207,表文件和索引文件的结构都是由文件头和数据对象两个部分组成。而内存部分,则划分为四个部分,分别是阴影区、数据操作区、索引区及数据对象区。表文件中的数据对象载入到数据对象区,索引文件的索引内容载入到索引区,然后根据相对偏移量来索引出数据对象。每次需要操作的数据项都先备份到阴影区,然后再在数据操作区中操作。操作完成后,数据将更新到阴影区,再由阴影区更新数据对象区的数据内容,最后同步到物理介质数据。
还具有清理模块208,对数据库中的元数据信息进行清理操作。
实时查询模块209,查询实时数据。
历史查询模块210,查询历史数据,通过连续查询实时数据与历史数据进行对比,检测数据采集的结果。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。