一种实时数据处理方法与流程

    专利2022-07-08  147


    本发明涉及工业自动化控制技术领域,尤其涉及一种实时数据处理方法。



    背景技术:

    随着工业互联网技术的快速发展,网络边缘设备产生的数据量快速增加,这些数据包括从数控机床、plc、工业机器人等各种产品和生产设备中采集到的运行数据、设备的状态数据、生产的工艺过程数据、质量检验数据等。而工业互联网对于上传至云端的数据需快速、稳定,适应各种网络应用环境,在多种通信网络中实现无缝切换,且能避免出现数据丢包、数据失真等问题。如何能够有效地避免大量工业数据接入工业互联网之后,堵塞在云端的数据接口处,而影响工业互联网的应用性能,是工业互联网必须解决的重大问题。



    技术实现要素:

    本发明的目的在于提供一种实时数据处理方法,用以缓解工业互联网中因边缘设备实时产生的大量数据传输至云端给网络带宽带来的巨大压力的问题。

    本发明采用的技术方案是:

    一种实时数据处理方法,其包括以下步骤:

    步骤1,获取系统配置文件检查是否到达数据备份周期;是则,将数据备份任务添加至内存任务队列末尾;否则,等待备份周期到达;

    步骤2,依次从任务队列头部执行数据备份任务,并获取当前数据备份任务对应的所有数据节点的数据采集周期;

    步骤3,根据数据采集周期的不同分别构建对应的缓存层级,并将同一数据采集周期的数据点划归同一缓存层级;

    步骤4,每个缓存层级获取数据进行实时存储,将数据以应数据结构缓存至内存作为直接的数据源;

    步骤5,将缓存在内存中的数据以快照方式写入硬盘文件进行持久化存储,

    步骤6,获取数据备份任务允许的数据库最大缓存周期,判断数据库时间与当前时间的间隔是否超过最大缓存周期;是则,删除超出时间范围的数据文件并存入新数据文件;否则,将新数据文件存入数据库;

    步骤7,每个缓存层级将已完成缓存备份的所有数据以时间特性统一打包并上传至上级节点;

    步骤8,上级节点检查获取的数据是否有丢失;是则,通知各个缓存层级进行数据补偿;否则,完成当前节点的数据备份和采集。

    进一步地,步骤4中针对关键数据采用定时加载方式定期将磁盘数据缓存至实时缓存区;针对普通数据采用补充方式将数据按照长周期刷新至普通缓存区。

    进一步地,步骤5中依照设定的策略自动进行数据的快照持久保存。

    进一步地,设定策略为每60秒达到100个数据更新时进行数据的快照持久保存。

    进一步地,步骤8中数据补偿时将各个缓存层级的存储数据作为数据源采用异步消息的方式进行数据补偿。

    进一步得,数据补偿的具体步骤为:

    步骤8-1,上级节点通知云端开启数据补偿通道;

    步骤8-2,上级节点向下级缓存层级发出补偿指令;

    步骤8-3,下级缓存层级依照丢失数据的来源路径向下索引确定数据所在节点;

    步骤8-4,丢失数据所在节点从缓冲区或数据库中获取丢失数据并重新打包上传完成数据补偿。

    本发明采用以上技术方案,具有如下特点:1)采用多级缓存的层级划分,对于设备采集的数据而言,以数据采集所设定的周期作为缓存层级划分的依据;(2)各层级缓存将持久化存储与实时存储结合起来,提高实时性和稳定性;(3)采用任务队列方式实现对数据的缓存,并可以对数据的最大缓存周期进行设置,对于超过最大缓存周期的数据进行删除,从而实现数据缓存以及数据管理的功能。

    附图说明

    以下结合附图和具体实施方式对本发明做进一步详细说明;

    图1为本发明一种实时数据处理方法的流程示意图。

    具体实施方式

    为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图对本申请实施例中的技术方案进行清楚、完整地描述。

    本发明提出了一种实时数据处理方法,用以缓解工业互联网中因边缘设备实时产生大量数据传输至云端给网络带宽带来的巨大压力,从而平衡边缘层数据采集周期与平台层的大数据处理实时性能上的差异,确保数据的完整性和时效性。多级缓存技术的原理类似于集装箱码头,它可以在边缘侧与云端数据库中分别建立一个“数据堆场”作为数据的缓存区域,分别对边缘侧的数据和上传至云端的数据进行缓存处理,因此,多级缓存技术又可被称为数据码头技术。数据码头中包含实时数据缓存和历史数据缓存两大类数据缓存类型。其中,实时数据缓存能够将实时数据按照设定的数据结构缓存至内存,作为最直接的计算数据源。而历史数据缓存则是将数据按照一定的数据格式存储至数据库,并且以文件的形式存储至硬盘,以便在数据丢失的情况下,对数据进行追溯和补偿,可以提高数据传输过程的稳定性和可靠性。

    如图1所示,本发明公开了一种实时数据处理方法,其包括以下步骤:

    步骤1,获取系统配置文件检查是否到达数据备份周期;是则,将数据备份任务添加至内存任务队列末尾;否则,等待备份周期到达;

    步骤2,依次从任务队列头部执行数据备份任务,并获取当前数据备份任务对应的所有数据节点的数据采集周期;

    步骤3,根据数据采集周期的不同分别构建对应的缓存层级,并将同一数据采集周期的数据点划归同一缓存层级;

    步骤4,每个缓存层级获取数据进行实时存储,将数据以应数据结构缓存至内存作为直接的数据源;

    步骤5,将缓存在内存中的数据以快照方式写入硬盘文件进行持久化存储,

    步骤6,获取数据备份任务允许的数据库最大缓存周期,判断数据库时间与当前时间的间隔是否超过最大缓存周期;是则,删除超出时间范围的数据文件并存入新数据文件;否则,将新数据文件存入数据库;

    步骤7,每个缓存层级将已完成缓存备份的所有数据以时间特性统一打包并上传至上级节点;

    步骤8,上级节点检查获取的数据是否有丢失;是则,通知各个缓存层级进行数据补偿;否则,完成当前节点的数据备份和采集。

    进一步地,步骤4中针对关键数据采用定时加载方式定期将磁盘数据缓存至实时缓存区;针对普通数据采用补充方式将数据按照长周期刷新至普通缓存区。

    进一步地,步骤5中依照设定的策略自动进行数据的快照持久保存。

    进一步地,设定策略为每60秒达到100个数据更新时进行数据的快照持久保存。

    进一步地,步骤8中数据补偿时将各个缓存层级的存储数据作为数据源采用异步消息的方式进行数据补偿。

    进一步得,数据补偿的具体步骤为:

    步骤8-1,上级节点通知云端开启数据补偿通道;

    步骤8-2,上级节点向下级缓存层级发出补偿指令;

    步骤8-3,下级缓存层级依照丢失数据的来源路径向下索引确定数据所在节点;

    步骤8-4,丢失数据所在节点从缓冲区或数据库中获取丢失数据并重新打包上传完成数据补偿。

    下面就本发明具体原理做详细说明,本发明具有如下特点:

    1)所述的缓存功能,主要存在于工业互联网的各个计算节点中,所述节点负责接收下级节点的数据,将数据进行汇总、分类后缓存于对应层级,并将数据转发给上级节点。

    2)所述的缓存层级的划分。数据采集周期是对缓存层级划分的重要依据,相同数据采集周期的数据点将被规划到同一层级进行缓存。这样划分的好处是能够对相同时间要求的数据进行统一打包、统一上传,减少了不同时间数据混在一起时的对数据的筛选上的时间消耗。并且这种以时间特性进行划分的方式,将更加方便的进行数据的统一计算和处理。

    3)所述各个层级中的缓存模式包括实时存储与持久化存储。所述实时存储是将数据按照一定的数据结构缓存至内存,作为最直接的数据源,提供给持久化存储及其他服务。所述持久化存储将数据按照一定的数据结构存储至数据库,并且以文件的形式存储至硬盘,实现数据的持久化存储。持久化存储的目的是为防止数据丢失以及当发生数据丢失时可进行数据的追溯、补偿。采用快照的方式进行持久化,即将缓存在内存中的数据以快照方式写入到二进制文件中。允许采用配置一定的策略设置自动做快照持久,如在每60s有100个数据更新时,则发起快照保存等。为了提高存储过程中的io效率,避免数据堆积,持久化存储结合实时缓存技术,提高存储稳定性。

    4)每个层级的数据存储方式结合了持久化存储与实时存储的优缺点,将两者结合起来,作为每个层级的存储方式。由于存储过程的时效及数据的存储量不能无限增大,除了在存储量上面进行定期管理之外,存储过程的性能优化至关重要。实时存储至持久化存储,以及持久化存储至实时存储之间的数据流动受io效率影响很大,因而需要设计数据缓存模式,降低这方面的影响。

    a.所述的实时存储至持久化存储的过程:可通过对数据结构的合理设计、应用数据库特性、优化数据库语句、数据异常处理等方式,提高存储效率,保障缓存过程的可靠性。

    b.所述的持久化存储至实时存储过程:可针对不同的数据,缓存机制不同。对关键数据的缓存方式,采用定时加载式,定期将磁盘数据缓存至实时缓冲区,这样数据的实时性强。对普通数据。采用补充式,将数据按照周期(周期较大)刷新至缓存区,这样数据的实时性较差。

    5)多级缓存各个层级之间,在发生数据丢失时,需要进行数据补偿。因而,各个层级内部利用存储模式存储的数据,将在数据补偿时,作为数据源进行再次传输。数据补充采用异步消息进行,当数据出现丢失的情况下,云端的数据补偿通道开启,向下级节点发出补偿指令,下级节点将按照数据来源路径,向下进行索引,找到数据所在节点,并且将丢失的数据重新上传。数据补充过程中利用缓存机制及树状索引机制,将大大提高索引效率及数据补偿能力。

    6)为了保证数据能100%存入数据库,并且每次数据记录的时间点准确,本发明采用任务队列的设计方案,把数据库操作与任务记录分开。即实现数据->内存->硬盘的过程,这样会占用少量的内存,但是缓存的数据更加准确、稳定。

    8)为保证多级缓存的实时性,对于多级缓存数据的管理也是本发明的一项重要工作,数据库对比当前时间,并根据配置信息中提供的最大缓存周期,将超出该时间范围的数据删除。

    本发明采用以上技术方案,具有如下特点:1)采用多级缓存的层级划分,对于设备采集的数据而言,以数据采集所设定的周期作为缓存层级划分的依据;(2)各层级缓存将持久化存储与实时存储结合起来,提高实时性和稳定性;(3)采用任务队列方式实现对数据的缓存,并可以对数据的最大缓存周期进行设置,对于超过最大缓存周期的数据进行删除,从而实现数据缓存以及数据管理的功能。

    显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。


    技术特征:

    1.一种实时数据处理方法,其特征在于:其包括以下步骤:

    步骤1,获取系统配置文件检查是否到达数据备份周期;是则,将数据备份任务添加至内存任务队列末尾;否则,等待备份周期到达;

    步骤2,依次从任务队列头部执行数据备份任务,并获取当前数据备份任务对应的所有数据节点的数据采集周期;

    步骤3,根据数据采集周期的不同分别构建对应的缓存层级,并将同一数据采集周期的数据点划归同一缓存层级;

    步骤4,每个缓存层级获取数据进行实时存储,将数据以应数据结构缓存至内存作为直接的数据源;

    步骤5,将缓存在内存中的数据以快照方式写入硬盘文件进行持久化存储,

    步骤6,获取数据备份任务允许的数据库最大缓存周期,判断数据库时间与当前时间的间隔是否超过最大缓存周期;是则,删除超出时间范围的数据文件并存入新数据文件;否则,将新数据文件存入数据库;

    步骤7,每个缓存层级将已完成缓存备份的所有数据以时间特性统一打包并上传至上级节点;

    步骤8,上级节点检查获取的数据是否有丢失;是则,通知各个缓存层级进行数据补偿;否则,完成当前节点的数据备份和采集。

    2.根据权利要求1所述的一种实时数据处理方法,其特征在于:步骤4中针对关键数据采用定时加载方式定期将磁盘数据缓存至实时缓存区;针对普通数据采用补充方式将数据按照长周期刷新至普通缓存区。

    3.根据权利要求1所述的一种实时数据处理方法,其特征在于:步骤5中依照设定的策略自动进行数据的快照持久保存。

    4.根据权利要求3所述的一种实时数据处理方法,其特征在于:设定策略为每60秒达到100个数据更新时进行数据的快照持久保存。

    5.根据权利要求1所述的一种实时数据处理方法,其特征在于:步骤8中数据补偿时将各个缓存层级的存储数据作为数据源采用异步消息的方式进行数据补偿。

    6.根据权利要求1所述的一种实时数据处理方法,其特征在于:数据补偿的具体步骤为:

    步骤8-1,上级节点通知云端开启数据补偿通道;

    步骤8-2,上级节点向下级缓存层级发出补偿指令;

    步骤8-3,下级缓存层级依照丢失数据的来源路径向下索引确定数据所在节点;

    步骤8-4,丢失数据所在节点从缓冲区或数据库中获取丢失数据并打包上传完成数据补偿。

    技术总结
    本发明公开一种实时数据处理方法,采用多级缓存的层级划分,对于设备采集的数据而言,以数据采集所设定的周期作为缓存层级划分的依据;各层级缓存将持久化存储与实时存储结合起来,提高实时性和稳定性;采用任务队列方式实现对数据的缓存,并可以对数据的最大缓存周期进行设置,对于超过最大缓存周期的数据进行删除,从而实现数据缓存以及数据管理的功能。

    技术研发人员:陈湘;陈鋆垠;陈辉
    受保护的技术使用者:福建省数字福建云计算运营有限公司
    技术研发日:2020.11.25
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22247.html

    最新回复(0)