CN112685454A - 工业数据分级存储系统、方法及工业数据分级查询方法 - Google Patents
工业数据分级存储系统、方法及工业数据分级查询方法 Download PDFInfo
- Publication number
- CN112685454A CN112685454A CN202110256760.9A CN202110256760A CN112685454A CN 112685454 A CN112685454 A CN 112685454A CN 202110256760 A CN202110256760 A CN 202110256760A CN 112685454 A CN112685454 A CN 112685454A
- Authority
- CN
- China
- Prior art keywords
- data
- business
- level
- queried
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了工业数据分级存储系统、方法及工业数据分级查询方法,该系统包括一级缓存模块、二级缓存模块及数据存储模块,不仅将设备数据和业务数据分开存储,而且根据数据的查询时间或频率,设置了一级缓存模块及二级缓存模块,实现了数据的分级存储管理,通过将热门点位及热门业务报表存储在一级缓存模块中,进行针对性的缓存预热,使得用户查询这些高频使用的热门点位或热门业务报表时能够得到极快速度的响应,大幅提升数据查询效率。
Description
技术领域
本申请涉及工业数据处理技术领域,尤其涉及工业数据分级存储系统、方法及工业数据分级查询方法。
背景技术
工业生产过程中,通常会生成两种数据,一种是由各种工业设备所产生的设备数据,例如构成工业设备的各组件的温度数据、压强数据或开关信号数据等,另一种是由生产业务系统所产生的业务数据,例如产量数据、物流数据及订单数据等。
目前使用大数据平台存储工业生产过程中生成的各类数据,对于设备数据,通常是由工业IOT平台现场采集并上传至大数据平台,对于业务数据,通常是由数据抽取工具从各业务系统中复制并上传至大数据平台。参见图1,工业IOT平台采集n个工业设备所产生的设备数据上传至大数据平台的时序数据库中,数据抽取工具针对m个业务系统进行数据抽取,并将抽取所得的业务数据上传至大数据平台的业务数据仓库中。
实际工业场景中,按照被查询频率,工业数据又分为热数据和冷数据,目前的大数据平台只是将设备数据及业务数据分别存储至两个数据库中,并未根据数据的冷热程度做区别管理,冷热数据杂糅在一起,导致用户查询相关数据时的效率十分低。
发明内容
为了提高工业生产过程中,用户对设备数据及业务数据的查询效率,本申请通过以下实施例公开了工业数据分级存储系统、方法及工业数据分级查询方法。
本申请第一方面公开了一种工业数据分级存储系统,包括一级缓存模块、二级缓存模块及数据存储模块,所述数据存储模块设置有时序数据库及业务数据仓库,所述时序数据库用于接收工业IOT平台发送过来的设备数据,所述业务数据仓库用于接收数据抽取工具发送过来的业务数据;所述设备数据包括多个点位及每个点位对应的标签数据,所述每个点位对应工业设备的一个组件,所述业务数据包括多个业务报表表名以及每个业务报表表名对应的报表数据;
所述二级缓存模块包括二级设备数据缓存单元及二级业务数据缓存单元;
所述一级缓存模块包括一级设备数据缓存单元及一级业务数据缓存单元;
所述二级设备数据缓存单元接至所述时序数据库,所述二级设备数据缓存单元中设置有设备Redis集群,所述设备Redis集群用于存储所述多个点位以及每个点位对应的最新标签数据;
所述二级业务数据缓存单元接至所述业务数据仓库,所述二级业务数据缓存单元中设置有业务Redis集群,所述业务Redis集群用于存储所述多个业务报表表名以及每个业务报表表名对应的最新报表数据;
所述一级设备数据缓存单元用于存储预设第一数量的热门点位及每个所述热门点位对应的最新标签数据,所述热门点位为根据最近被查询时间,预先从所述设备Redis集群的多个点位中选取所得;
所述一级业务数据缓存单元用于存储预设第二数量的热门业务报表表名及每个所述热门业务报表表名对应的最新报表数据,所述热门业务报表表名为根据被查询频率,预先从所述业务Redis集群的多个业务报表表名中选取所得。
可选的,所述二级缓存模块还包括布隆过滤器;所述布隆过滤器分别接至所述二级设备数据缓存单元、所述二级业务数据缓存单元;
所述布隆过滤器中映射有所述设备Redis集群中存储的所有点位及所述业务Redis集群中存储的所有业务报表表名;
所述一级设备数据缓存单元通过所述布隆过滤器,接至所述二级设备数据缓存单元;
所述一级业务数据缓存单元通过所述布隆过滤器,接至所述二级业务数据缓存单元。
可选的,所述工业数据分级存储系统还包括底层存储模块;
所述底层存储模块分别接至所述时序数据库及所述业务数据仓库;
所述底层存储模块用于接收并存储所述时序数据库中位于预设第一时间节点之前的设备数据;
所述底层存储模块还用于接收并存储所述业务数据仓库中位于预设第二时间节点之前的业务数据。
本申请第二方面公开一种工业数据分级存储方法,所述工业数据分级存储方法应用于本申请第一方面所述的工业数据分级存储系统,所述工业数据分级存储方法包括:
将工业IOT平台发送过来的设备数据存储至时序数据库中,以及,将数据抽取工具发送过来的业务数据存储至业务数据仓库;
根据所述工业IOT平台发送过来的设备数据,更新设备Redis集群,以确保所述设备Redis集群中各个点位均对应最新的标签数据,以及,根据所述数据抽取工具发送过来的业务数据,更新业务Redis集群,以确保所述业务Redis集群中各业务报表表名均对应最新的报表数据;
根据更新后的设备Redis集群,更新一级设备数据缓存单元,以确保所述一级设备数据缓存单元中各热门点位均对应最新的标签数据,以及,根据更新后的业务Redis集群,更新一级业务数据缓存单元,以确保所述一级业务数据缓存单元中各热门业务报表表名均对应最新的报表数据。
可选的,在所述根据更新后的设备Redis集群,更新一级设备数据缓存单元之前,所述工业数据分级存储方法还包括:
将更新后的设备Redis集群中的所有点位映射至布隆过滤器中;
在所述根据更新后的业务Redis集群,更新一级业务数据缓存单元之前,所述工业数据分级存储方法还包括:
将更新后的业务Redis集群中的所有业务报表表名映射至所述布隆过滤器中。
可选的,所述工业数据分级存储方法还包括:
将所述时序数据库中位于预设第一时间节点之前的设备数据抽取至底层存储模块进行存储;
将所述业务数据仓库中位于预设第二时间节点之前的业务数据抽取至所述底层存储模块进行存储。
可选的,所述工业数据分级存储方法还包括:
每隔预设更新时长,对所述业务Redis集群中每个业务报表表名对应的报表数据进行更新;
将所述业务Redis集群中各业务报表表名对应的过期报表数据删除,所述过期报表数据为距离上次更新时间超过预设过期时长的报表数据,所述预设过期时长大于所述预设更新时长。
本申请第三方面公开了一种工业数据分级查询方法,所述工业数据分级查询方法应用于本申请第一方面所述的工业数据分级存储系统,所述工业数据分级查询方法包括:
获取用户通过外部查询接口发送至一级缓存模块的查询请求,其中,所述查询请求为待查询点位或待查询业务报表表名;
基于所述查询请求,在所述一级缓存模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在一级设备数据缓存单元中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在一级业务数据缓存单元中查找所述待查询业务报表表名对应的最新报表数据;
若在所述一级缓存模块中查找到对应的数据,则将对应的数据返回给用户;
若未在所述一级缓存模块中查找到对应的数据,则在二级缓存模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在二级设备数据缓存单元中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在二级业务数据缓存单元中查找所述待查询业务报表表名对应的最新报表数据;
若在所述二级缓存模块中查找到对应的数据,则将对应的数据返回给用户;
若未在所述二级缓存模块中查找到对应的数据,则在数据存储模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在时序数据库中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在业务数据仓库中查找所述待查询业务报表表名对应的最新报表数据;
若在所述数据存储模块中查找到对应的数据,则将对应的数据返回给用户。
可选的,若未在所述一级缓存模块中查找到对应的数据,则在所述二级缓存模块中查找对应的数据之前,所述工业数据分级查询方法还包括:
判断所述待查询点位或待查询业务报表表名是否存在于布隆过滤器中,若不存在,则停止查询;若存在,则在所述二级缓存模块中查找对应的数据。
可选的,若在所述二级缓存模块中查找到对应的数据,则将对应的数据返回给用户的同时,所述工业数据分级查询方法还包括:
将所述查询请求及其对应的数据保存至所述一级缓存模块中,其中,若所述查询请求为所述待查询点位,则将所述待查询点位及其对应的最新标签数据保存至所述一级设备数据缓存单元中,若所述查询请求为所述待查询业务报表表名,则将所述待查询业务报表表名及其对应的最新报表数据保存至所述一级业务数据缓存单元中。
可选的,所述若在所述数据存储模块中查找到对应的数据,则将对应的数据返回给用户的同时,所述工业数据分级查询方法还包括:
将所述查询请求及其对应的数据保存至所述一级缓存模块及所述二级缓存模块中,其中,若所述查询请求为所述待查询点位,则将所述待查询点位及其对应的最新标签数据保存至所述一级设备数据缓存单元及所述二级设备数据缓存单元中,若所述查询请求为所述待查询业务报表表名,则将所述待查询业务报表表名及其对应的最新报表数据保存至所述一级业务数据缓存单元及所述二级业务数据缓存单元中。
本申请公开了工业数据分级存储系统、方法及工业数据分级查询方法,该系统包括一级缓存模块、二级缓存模块及数据存储模块,不仅将设备数据和业务数据分开存储,而且根据数据的查询时间或频率,设置了一级缓存模块及二级缓存模块,实现了数据的分级存储管理,通过将热门点位及热门业务报表存储在一级缓存模块中,进行针对性的缓存预热,使得用户查询这些高频使用的热门点位或热门业务报表时能够得到极快速度的响应,大幅提升数据查询效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的一种工业数据存储系统结构示意图;
图2为本申请实施例公开的一种工业数据分级存储系统的结构示意图;
图3为本申请实施例公开的又一种工业数据分级存储系统的结构示意图;
图4为本申请实施例公开的又一种工业数据分级存储系统的结构示意图;
图5为本申请实施例提供的工业数据分级存储系统在存储过程中数据传输示意图;
图6为本申请实施例提供的工业数据分级存储系统在查询过程中数据传输示意图;
图7为本申请实施例提供的工业数据分级查询方法的工作流程示意图。
具体实施方式
为了提高工业生产过程中,用户对设备数据及业务数据的查询效率,本申请通过以下实施例公开了工业数据分级存储系统、方法及工业数据分级查询方法。
本申请第一实施例公开了一种工业数据分级存储系统,参见图2,该系统包括一级缓存模块、二级缓存模块及数据存储模块。
数据存储模块用于直接接收并存储工业IOT平台及数据抽取工具发送过来的设备数据和业务数据。为了规范管理数据,以便于提高后续数据查询效率,本申请首先针对设备数据和业务数据的特点,选取合适的数据库存储。对基于时间戳的设备数据,由于设备数据每天24小时持续产生,数据量较大,且对于查询速度的相应速度要求较高,一般需要亚秒级响应,因此本申请选取时序数据库,时序数据库具备横向扩容的特点,根据数据量大小可以增加存储节点,且对于基于时间戳的设备数据,能够做到毫秒级的查询。对于业务数据,通常需要批量地将大量大数据从各个业务系统中同步到工业数据分级存储系统,且业务数据量也较大,往往一张表有千万条数据,因此,存放业务数据的数据库要支持海量数据的迁移,数据库也要具备横向扩容能力,本申请选用Greenplum数据仓库作为业务数据仓库,来保存数据抽取工具上传的业务数据,Greenplum数据仓库。
所述数据存储模块中的时序数据库用于接收并存储工业IOT平台发送过来的设备数据,所述业务数据仓库用于接收并存储数据抽取工具发送过来的业务数据。所述设备数据包括多个点位及每个点位对应的标签数据,所述每个点位对应工业设备的一个组件,标签数据包括每个点位的实时生产信息、位置信息及时间信息等,所述业务数据包括多个业务报表表名以及每个业务报表表名对应的报表数据。
工业数据分级存储系统设有外部查询接口,分为设备数据查询接口和业务数据查询接口,用户通过外部查询接口接入工业数据分级存储系统中便可进行数据查询的操作。其中,用户在进行查询操作时,主要利用与外部查询接口相接的上层应用实现,例如设备在线监控系统或其他数据查询软件等。
实际工业场景中,根据外部查询接口提供的服务类型,除了设备数据查询接口、报表数据查询接口,还可包括监控大屏数据等类型的接口。
对于外部查询接口,每种类型的接口服务均为单一的运行程序,在每个接口服务的程序代码中,维护一块内存作为一级缓存模块,该一级缓存模块的查询速度最快,仅用于存储一些最常被查询或最近才被查询的最新最热的数据。本实施例中,一级缓存模块包括一级设备数据缓存单元及一级业务数据缓存单元。
在一级缓存模块与数据存储模块之间,设置有二级缓存模块。所述二级缓存模块包括二级设备数据缓存单元及二级业务数据缓存单元。
结合图2,一级设备数据缓存单元接至二级设备数据缓存单元,二级设备数据缓存单元接至时序数据库。一级业务数据缓存单元接至二级业务数据缓存单元,二级业务数据缓存单元接至所述业务数据仓库。
二级设备数据缓存单元中设置有设备Redis集群,所述设备Redis集群用于存储所述多个点位以及每个点位对应的最新标签数据。一级设备数据缓存单元用于存储预设第一数量的热门点位及每个所述热门点位对应的最新标签数据,所述热门点位为根据最近被查询时间,预先从所述设备Redis集群的多个点位中选取所得。
二级业务数据缓存单元中设置有业务Redis集群,所述业务Redis集群用于存储所述多个业务报表表名以及每个业务报表表名对应的最新报表数据。一级业务数据缓存单元用于存储预设第二数量的热门业务报表表名及每个所述热门业务报表表名对应的最新报表数据,所述热门业务报表表名为根据被查询频率,预先从所述业务Redis集群的多个业务报表表名中选取所得。
本实施例中,二级缓存模块中的数据结构与一级缓存模块的数据结构相同,均为LRUMap数据结构。在数据存储技术中,Map是一种实现快速随机的存储的Key-Value映射的结构,而LRUMap是采用LRU(Least Recently Used)算法实现的Map,在有限的集合里面,LRUMap能够在容量达到设定值后,淘汰最不经常使用的数据。LRUMap中的Key和Value均为String类型。
针对一级设备数据缓存单元及二级设备数据缓存单元中的设备Redis集群,Key指代点位,Value指代点位对应的标签数据。针对一级业务数据缓存单元及二级业务数据缓存单元中的业务Redis集群,Key指代业务报表表名,Value指代业务报表表名对应的报表数据。
对于设备数据来说,时序数据库中存储了工业IOT平台上传过来的所有点位及其对应的所有标签数据,设备Redis集群中存储了所有点位及其对应的最新标签数据,一级设备数据缓存单元中仅存储一些热门点位及其对应的最新标签数据。热门点位的数量(即第一数量)根据一级设备数据缓存单元对应的LRUMap存储容量预先所设定,比如LRUMap最多可存储1000个数据,则可将最近被查询的1000个点位设为热门点位。
为了确保一级设备数据缓存单元中热门点位对应的标签数据为最新,设备数据查询接口还用于实现:根据所有热门点位,定时从设备Redis集群中查询每个热门点位对应的最新标签数据,对一级设备数据缓存单元中维护的数据进行更新,以确保一级设备数据缓存单元中维护的数据为最新最热且查询效率最高。
对于业务数据来说,业务数据仓库中存储了数据抽取工具上传过来的所有业务报表表名及其对应的所有报表数据,业务Redis集群中存储了所有业务报表表名及其对应的最新报表数据,一级业务数据缓存单元中仅存储一些热门业务报表表名及其对应的最新报表数据。热门业务报表表名的数量(即第二数量)根据一级业务数据缓存单元对应的LRUMap存储容量预先所设定,比如LRUMap最多可存储200张数据,则可将查询频率最高的200个业务报表表名设为热门业务报表表名。
为了确保一级业务数据缓存单元中热门业务报表表名对应的报表数据为最新,本实施例提供的业务数据查询接口还用于实现:根据所有热门业务报表表名,定时从业务Redis集群中查询每个热门业务报表表名对应的最新报表数据,对一级业务数据缓存单元中的数据进行更新,以确保一级业务数据缓存单元中维护的数据为最新最热且查询效率最高。
在一种实现方式中,当业务Redis集群首次被启动时,系统可以先将一些重点的业务报表表名(如产量,销售,库存)保存至业务Redis集群中,并为每个业务报表表名设置更新时长及过期时长。具体的,设置每个key的更新时长为2.5小时,当更新时长一到,就对Key的数据进行更新,同时设置key的数据过期时长为3小时,一旦Key对应的数据距离上次更新时间超过3小时,则将该Key下的数据删除。更新时长要短于过期时长,这样不仅可以防止给用户提供过期数据,还能够确保在每个key对应的数据未过期之前,就进行了更新操作,防止出现查询某个key时,key刚好过期,由于无对应的报表数据,从而导致大量查询数据仓库的情况。
本申请公开的工业数据分级存储系统,不仅将设备数据和业务数据分开存储,而且根据数据的查询时间或频率,设置了一级缓存模块及二级缓存模块,实现了数据的分级存储管理,通过将热门点位及热门业务报表存储在一级缓存模块中,进行针对性的缓存预热,使得用户查询这些高频使用的热门点位或热门业务报表时能够得到极快速度的响应,大幅提升数据查询效率。
进一步的,参见图3,所述二级缓存模块还包括布隆过滤器。
数据查询技术中,若大量查询不存在的数据时,会造成缓存穿透的现象。布隆过滤器能够检索一个元素是否在一个集合中。
本实施例中,所述布隆过滤器分别接至所述二级设备数据缓存单元、所述二级业务数据缓存单元。
所述布隆过滤器中映射有所述设备Redis集群中存储的所有点位及所述业务Redis集群中存储的所有业务报表表名。
所述一级设备数据缓存单元通过所述布隆过滤器,接至所述二级设备数据缓存单元。
所述一级业务数据缓存单元通过所述布隆过滤器,接至所述二级业务数据缓存单元。
按照本申请提供的工业数据分级存储系统结构原理,当用于通过外部查询接口发出查询请求后,首先系统会在一级缓存模块中查找对应的数据,若没有查询到,则会继续在二级缓存模块中查询。本实施例中,为了防止缓存穿透,在查询设备Redis集群或业务Redis集群之前,先用布隆过滤器进行过滤,若布隆过滤器中没有映射待查询的点位或业务报表表名,则表示该点位的标签数据或该业务报表表名的报表数据并未被上传至数据存储模块中,这种情况下无需继续进行查询操作,直接返回查无数据的结果给用户。如果布隆过滤器显示存在该点位或该业务报表表名,但在Redis集群中无对应的数据,则系统可以继续在时序数据库或业务数据仓库中查询对应的数据,这种方法可以在没有对应数据的情况下避免频繁的访问数据存储模块,有效防止缓存穿透。
进一步的,参见图4,所述工业数据分级存储系统还包括底层存储模块。本实施例中的底层存储模块用于存储工业场景中最冷门的设备数据及业务数据,采用分布式文件系统(Hadoop Distributed File System,HDFS)实现。HDFS能够存储海量数据,并通过副本冗余机制保证数据安全分布式文件系统中。
所述底层存储模块分别接至所述时序数据库及所述业务数据仓库。
所述底层存储模块用于接收并存储所述时序数据库中位于预设第一时间节点之前的设备数据。第一时间节点由工作人员根据实际工业生产情况进行预先设定,作为示例,可设置为90天。
所述底层存储模块还用于接收并存储所述业务数据仓库中位于预设第二时间节点之前的业务数据。第二时间节点同样由工作人员根据实际工业生产情况进行预先设定,作为示例,可设置为半年。
具体的,底层存储模块通过数据抽取工具分别接至时序数据库及所述业务数据仓库。实际应用中,数据抽取工具可以每天将时序数据库中90天以前的标签数据抽取出来,并以高压缩比存放到底层存储模块中,还可以每天将业务数据仓库中半年以前的报表数据抽取出来,并以高压缩比存放到底层存储模块中,降低时序数据库与业务数据仓库的存储成本。
本申请第一实施例公开的工业数据分级存储系统,将实时非关系型数据和业务类关系型数据进行分级存储,从热到冷分别为一级缓存模块、二级缓存模块、数据存储模块及底层存储模块,数据访问频次越高越靠近上层应用,访问频次越低,视为冷数据,则越往下存入底层存储模块,越往上存储空间越小,但是查询效率越高,越往下,存储空间越大,但是查询效率越低。在查询数据时,最先查询一级缓存模块中的数据,若没有查询到,则继续往下层查找,在查找二级缓存模块之前,设置了布隆过滤器以避免发生缓存穿透。基于本实施例公开的工业数据分级存储系统,使得在后续数据查询的过程中,能够实现从内存到数据库的分级查询,大大提高用户查询数据的效率。
本申请第二实施例公开一种工业数据分级存储方法,所述工业数据分级存储方法应用于本申请第一实施例所述的工业数据分级存储系统,对于第二实施例中未披露的细节,请参照本申请第一实施例。
参见图5,图5在本申请第一实施例提供的工业数据分级存储系统的基础上增加了存储过程中数据传输方向示意箭头,结合图5所示的数据传输方向,所述工业数据分级存储方法包括:
将工业IOT平台发送过来的设备数据存储至时序数据库中,以及,将数据抽取工具发送过来的业务数据存储至业务数据仓库。
根据所述工业IOT平台发送过来的设备数据,更新设备Redis集群,以确保所述设备Redis集群中各个点位均对应最新的标签数据,以及,根据所述数据抽取工具发送过来的业务数据,更新业务Redis集群,以确保所述业务Redis集群中各业务报表表名均对应最新的报表数据。
根据更新后的设备Redis集群,更新一级设备数据缓存单元,以确保所述一级设备数据缓存单元中各热门点位均对应最新的标签数据,以及,根据更新后的业务Redis集群,更新一级业务数据缓存单元,以确保所述一级业务数据缓存单元中各热门业务报表表名均对应最新的报表数据。
进一步的,在所述根据更新后的设备Redis集群,更新一级设备数据缓存单元之前,所述工业数据分级存储方法还包括:
将更新后的设备Redis集群中的所有点位映射至所述布隆过滤器中。
在所述根据更新后的业务Redis集群,更新一级业务数据缓存单元之前,所述工业数据分级存储方法还包括:
将更新后的业务Redis集群中的所有业务报表表名映射至所述布隆过滤器中。
进一步的,所述工业数据分级存储方法还包括:
将所述时序数据库中位于预设第一时间节点之前的设备数据抽取至底层存储模块进行存储。
将所述业务数据仓库中位于预设第二时间节点之前的业务数据抽取至所述底层存储模块进行存储。
进一步的,所述工业数据分级存储方法还包括:
每隔预设更新时长,对所述业务Redis集群中每个业务报表表名对应的报表数据进行更新。
将所述业务Redis集群中各业务报表表名对应的过期报表数据删除,所述过期报表数据为距离上次更新时间超过预设过期时长的报表数据,所述预设过期时长大于所述预设更新时长。
具体的,设置业务Redis集群中每个业务报表表名(key)的更新时长为2.5小时,当更新时长一到,就对Key的数据进行更新,同时设置key的数据过期时长为3小时,一旦Key对应的数据距离上次更新时间超过3小时,则将该Key下的数据删除。更新时长要短于过期时长,这样不仅可以防止给用户提供过期数据,还能够确保在每个key对应的数据未过期之前,就进行了更新操作,防止出现查询某个key时,key刚好过期,由于无对应的报表数据,从而导致大量查询数据仓库的情况。
本申请第三实施例公开了一种工业数据分级查询方法,所述工业数据分级查询方法应用于本申请第一实施例所述的工业数据分级存储系统,参见图6,图6在本申请第一实施例提供的工业数据分级存储系统基础上增加了查询过程中的数据传输方向示意箭头,结合图6所示的数据传输方向,所述工业数据分级查询方法包括:
获取用户通过外部查询接口发送至一级缓存模块的查询请求,其中,所述查询请求为待查询点位或待查询业务报表表名。其中,若用户通过设备数据查询接口发送查询请求,则所述查询请求为待查询点位,若用户通过业务数据查询接口发送查询请求,则所述查询请求为待查询业务报表表名。
基于所述查询请求,在所述一级缓存模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在一级设备数据缓存单元中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在一级业务数据缓存单元中查找所述待查询业务报表表名对应的最新报表数据。
若在所述一级缓存模块中查找到对应的数据,则将对应的数据返回给用户。
若未在所述一级缓存模块中查找到对应的数据,则在所述二级缓存模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在二级设备数据缓存单元中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在二级业务数据缓存单元中查找所述待查询业务报表表名对应的最新报表数据。
若在所述二级缓存模块中查找到对应的数据,则将对应的数据返回给用户。
若未在所述二级缓存模块中查找到对应的数据,则在数据存储模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在时序数据库中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在业务数据仓库中查找所述待查询业务报表表名对应的最新报表数据。
若在所述数据存储模块中查找到对应的数据,则将对应的数据返回给用户。
进一步的,若未在所述一级缓存模块中查找到对应的数据,则在所述二级缓存模块中查找对应的数据之前,所述工业数据分级查询方法还包括:
判断所述待查询点位或待查询业务报表表名是否存在于布隆过滤器中,若不存在,则停止查询。若存在,则在所述二级缓存模块中查找对应的数据。
进一步的,若在所述二级缓存模块中查找到对应的数据,则将对应的数据返回给用户的同时,所述工业数据分级查询方法还包括:
将所述查询请求及其对应的数据保存至所述一级缓存模块中,其中,若所述查询请求为所述待查询点位,则将所述待查询点位及其对应的最新标签数据保存至所述一级设备数据缓存单元中,若所述查询请求为所述待查询业务报表表名,则将所述待查询业务报表表名及其对应的最新报表数据保存至所述一级业务数据缓存单元中。
进一步的,所述若在所述数据存储模块中查找到对应的数据,则将对应的数据返回给用户的同时,所述工业数据分级查询方法还包括:
将所述查询请求及其对应的数据保存至所述一级缓存模块及所述二级缓存模块中,其中,若所述查询请求为所述待查询点位,则将所述待查询点位及其对应的最新标签数据保存至所述一级设备数据缓存单元及所述二级设备数据缓存单元中,若所述查询请求为所述待查询业务报表表名,则将所述待查询业务报表表名及其对应的最新报表数据保存至所述一级业务数据缓存单元及所述二级业务数据缓存单元中。
参见图7,为本实施例提供的一种工业数据分级查询方法工作流程图,包括以下步骤:
步骤S110,获取用户通过外部查询接口发送至一级缓存模块的查询请求,其中,所述查询请求为待查询点位或待查询业务报表表名。
步骤S120,基于所述查询请求,在所述一级缓存模块中查找对应的数据。
步骤S130,判断是否查找到对应的数据,若查找到对应的数据,则执行步骤S180;若未查找到,则执行步骤S140。
步骤S140,判断待查询点位或待查询业务报表表名是否存在于布隆过滤器中,若存在,则执行步骤S150,若不存在,则结束查询流程。
步骤S150,在所述二级缓存模块中查找对应的数据。
步骤S160,判断是否查找到对应的数据,若查找到对应的数据,则执行步骤S170;若未查找到,则执行步骤S190。
步骤S170,将查询请求及其对应的数据保存至一级缓存模块中,然后执行步骤S180。
步骤S180,将对应的数据返回给用户。
步骤S190,在数据存储模块中查找对应的数据。
步骤S200,判断是否查找到对应的数据,若查找到对应的数据,则执行步骤S210;若未查找到,则结束查询流程。
步骤S210,将查询请求及其对应的数据保存至一级缓存模块及二级缓存模块中,然后执行步骤S180。
本申请第三实施例公开的工业数据分级查询方法,最先查询一级缓存模块中的数据,由于一级缓存模块中存储的都是最新最热的数据,因此能够极快的响应查询请求,查询效率较高。若没有在一级缓存模块中查询到,则继续往下层查找,在查找二级缓存模块之前,设置了布隆过滤器以避免发生缓存穿透,当查询请求对应的待查询点位或待查询业务报表表名在布隆过滤器中时,才继续往下查找。数据分级查找的过程中,不断基于查询情况对一级缓存模块及二级缓存模块中存储的数据进行动态调整及更新,以确保一级缓存模块中存储的数据为最新最热。本实施例公开的数据查询方法,实现从内存到数据库的分级查询,最大程度上提高用户查询数据的效率。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
Claims (11)
1.一种工业数据分级存储系统,其特征在于,包括一级缓存模块、二级缓存模块及数据存储模块,所述数据存储模块设置有时序数据库及业务数据仓库,所述时序数据库用于接收工业IOT平台发送过来的设备数据,所述业务数据仓库用于接收数据抽取工具发送过来的业务数据;所述设备数据包括多个点位及每个点位对应的标签数据,所述每个点位对应工业设备的一个组件,所述业务数据包括多个业务报表表名以及每个业务报表表名对应的报表数据;
所述二级缓存模块包括二级设备数据缓存单元及二级业务数据缓存单元;
所述一级缓存模块包括一级设备数据缓存单元及一级业务数据缓存单元;
所述二级设备数据缓存单元接至所述时序数据库,所述二级设备数据缓存单元中设置有设备Redis集群,所述设备Redis集群用于存储所述多个点位以及每个点位对应的最新标签数据;
所述二级业务数据缓存单元接至所述业务数据仓库,所述二级业务数据缓存单元中设置有业务Redis集群,所述业务Redis集群用于存储所述多个业务报表表名以及每个业务报表表名对应的最新报表数据;
所述一级设备数据缓存单元用于存储预设第一数量的热门点位及每个所述热门点位对应的最新标签数据,所述热门点位为根据最近被查询时间,预先从所述设备Redis集群的多个点位中选取所得;
所述一级业务数据缓存单元用于存储预设第二数量的热门业务报表表名及每个所述热门业务报表表名对应的最新报表数据,所述热门业务报表表名为根据被查询频率,预先从所述业务Redis集群的多个业务报表表名中选取所得。
2.根据权利要求1所述的工业数据分级存储系统,其特征在于,所述二级缓存模块还包括布隆过滤器;所述布隆过滤器分别接至所述二级设备数据缓存单元、所述二级业务数据缓存单元;
所述布隆过滤器中映射有所述设备Redis集群中存储的所有点位及所述业务Redis集群中存储的所有业务报表表名;
所述一级设备数据缓存单元通过所述布隆过滤器,接至所述二级设备数据缓存单元;
所述一级业务数据缓存单元通过所述布隆过滤器,接至所述二级业务数据缓存单元。
3.根据权利要求1所述的工业数据分级存储系统,其特征在于,还包括底层存储模块;
所述底层存储模块分别接至所述时序数据库及所述业务数据仓库;
所述底层存储模块用于接收并存储所述时序数据库中位于预设第一时间节点之前的设备数据;
所述底层存储模块还用于接收并存储所述业务数据仓库中位于预设第二时间节点之前的业务数据。
4.一种工业数据分级存储方法,其特征在于,所述工业数据分级存储方法应用于权利要求1-3任一项所述的工业数据分级存储系统,所述工业数据分级存储方法包括:
将工业IOT平台发送过来的设备数据存储至时序数据库中,以及,将数据抽取工具发送过来的业务数据存储至业务数据仓库;
根据所述工业IOT平台发送过来的设备数据,更新设备Redis集群,以确保所述设备Redis集群中各个点位均对应最新的标签数据,以及,根据所述数据抽取工具发送过来的业务数据,更新业务Redis集群,以确保所述业务Redis集群中各业务报表表名均对应最新的报表数据;
根据更新后的设备Redis集群,更新一级设备数据缓存单元,以确保所述一级设备数据缓存单元中各热门点位均对应最新的标签数据,以及,根据更新后的业务Redis集群,更新一级业务数据缓存单元,以确保所述一级业务数据缓存单元中各热门业务报表表名均对应最新的报表数据。
5.根据权利要求4所述的工业数据分级存储方法,其特征在于,在所述根据更新后的设备Redis集群,更新一级设备数据缓存单元之前,所述工业数据分级存储方法还包括:
将更新后的设备Redis集群中的所有点位映射至布隆过滤器中;
在所述根据更新后的业务Redis集群,更新一级业务数据缓存单元之前,所述工业数据分级存储方法还包括:
将更新后的业务Redis集群中的所有业务报表表名映射至所述布隆过滤器中。
6.根据权利要求4所述的工业数据分级存储方法,其特征在于,所述工业数据分级存储方法还包括:
将所述时序数据库中位于预设第一时间节点之前的设备数据抽取至底层存储模块进行存储;
将所述业务数据仓库中位于预设第二时间节点之前的业务数据抽取至所述底层存储模块进行存储。
7.根据权利要求4所述的工业数据分级存储方法,其特征在于,所述工业数据分级存储方法还包括:
每隔预设更新时长,对所述业务Redis集群中每个业务报表表名对应的报表数据进行更新;
将所述业务Redis集群中各业务报表表名对应的过期报表数据删除,所述过期报表数据为距离上次更新时间超过预设过期时长的报表数据,所述预设过期时长大于所述预设更新时长。
8.一种工业数据分级查询方法,其特征在于,所述工业数据分级查询方法应用于权利要求1-3任一项所述的工业数据分级存储系统,所述工业数据分级查询方法包括:
获取用户通过外部查询接口发送至一级缓存模块的查询请求,其中,所述查询请求为待查询点位或待查询业务报表表名;
基于所述查询请求,在所述一级缓存模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在一级设备数据缓存单元中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在一级业务数据缓存单元中查找所述待查询业务报表表名对应的最新报表数据;
若在所述一级缓存模块中查找到对应的数据,则将对应的数据返回给用户;
若未在所述一级缓存模块中查找到对应的数据,则在二级缓存模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在二级设备数据缓存单元中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在二级业务数据缓存单元中查找所述待查询业务报表表名对应的最新报表数据;
若在所述二级缓存模块中查找到对应的数据,则将对应的数据返回给用户;
若未在所述二级缓存模块中查找到对应的数据,则在数据存储模块中查找对应的数据,其中,若所述查询请求为所述待查询点位,则在时序数据库中查找所述待查询点位对应的最新标签数据,若所述查询请求为所述待查询业务报表表名,则在业务数据仓库中查找所述待查询业务报表表名对应的最新报表数据;
若在所述数据存储模块中查找到对应的数据,则将对应的数据返回给用户。
9.根据权利要求8所述的工业数据分级查询方法,其特征在于,若未在所述一级缓存模块中查找到对应的数据,则在所述二级缓存模块中查找对应的数据之前,所述工业数据分级查询方法还包括:
判断所述待查询点位或待查询业务报表表名是否存在于布隆过滤器中,若不存在,则停止查询;若存在,则在所述二级缓存模块中查找对应的数据。
10.根据权利要求8所述的工业数据分级查询方法,其特征在于,若在所述二级缓存模块中查找到对应的数据,则将对应的数据返回给用户的同时,所述工业数据分级查询方法还包括:
将所述查询请求及其对应的数据保存至所述一级缓存模块中,其中,若所述查询请求为所述待查询点位,则将所述待查询点位及其对应的最新标签数据保存至所述一级设备数据缓存单元中,若所述查询请求为所述待查询业务报表表名,则将所述待查询业务报表表名及其对应的最新报表数据保存至所述一级业务数据缓存单元中。
11.根据权利要求8或10所述的工业数据分级查询方法,其特征在于,所述若在所述数据存储模块中查找到对应的数据,则将对应的数据返回给用户的同时,所述工业数据分级查询方法还包括:
将所述查询请求及其对应的数据保存至所述一级缓存模块及所述二级缓存模块中,其中,若所述查询请求为所述待查询点位,则将所述待查询点位及其对应的最新标签数据保存至所述一级设备数据缓存单元及所述二级设备数据缓存单元中,若所述查询请求为所述待查询业务报表表名,则将所述待查询业务报表表名及其对应的最新报表数据保存至所述一级业务数据缓存单元及所述二级业务数据缓存单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110256760.9A CN112685454A (zh) | 2021-03-10 | 2021-03-10 | 工业数据分级存储系统、方法及工业数据分级查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110256760.9A CN112685454A (zh) | 2021-03-10 | 2021-03-10 | 工业数据分级存储系统、方法及工业数据分级查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685454A true CN112685454A (zh) | 2021-04-20 |
Family
ID=75458359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110256760.9A Pending CN112685454A (zh) | 2021-03-10 | 2021-03-10 | 工业数据分级存储系统、方法及工业数据分级查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685454A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143234A (zh) * | 2021-11-30 | 2022-03-04 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种数据处理方法及系统 |
CN114328583A (zh) * | 2021-12-27 | 2022-04-12 | 中科星图股份有限公司 | 一种时序数据库的实时数据查询加速方法 |
CN115033608A (zh) * | 2022-08-12 | 2022-09-09 | 广东采日能源科技有限公司 | 一种储能系统信息的分级处理方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667772A (zh) * | 2010-03-01 | 2012-09-12 | 株式会社日立制作所 | 文件级分级存储管理系统、方法和设备 |
CN103870393A (zh) * | 2013-07-09 | 2014-06-18 | 携程计算机技术(上海)有限公司 | 缓存管理方法及系统 |
CN105653591A (zh) * | 2015-12-22 | 2016-06-08 | 浙江中控研究院有限公司 | 一种工业实时数据分级存储及迁移方法 |
CN108093010A (zh) * | 2016-11-23 | 2018-05-29 | 成都阜特科技股份有限公司 | 一种工业实时数据系统及其数据处理方法 |
CN109101365A (zh) * | 2018-08-01 | 2018-12-28 | 南京壹进制信息技术股份有限公司 | 一种基于源端数据重删的数据备份和恢复方法 |
CN109947668A (zh) * | 2017-12-21 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 存储数据的方法和装置 |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
CN110598138A (zh) * | 2018-06-12 | 2019-12-20 | 北京京东尚科信息技术有限公司 | 基于缓存的处理方法和装置 |
CN111367996A (zh) * | 2020-02-25 | 2020-07-03 | 深圳联友科技有限公司 | 基于kv索引的热数据增量同步方法及装置 |
CN111858676A (zh) * | 2020-07-24 | 2020-10-30 | 政采云有限公司 | 一种数据处理的方法及装置 |
-
2021
- 2021-03-10 CN CN202110256760.9A patent/CN112685454A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667772A (zh) * | 2010-03-01 | 2012-09-12 | 株式会社日立制作所 | 文件级分级存储管理系统、方法和设备 |
CN103870393A (zh) * | 2013-07-09 | 2014-06-18 | 携程计算机技术(上海)有限公司 | 缓存管理方法及系统 |
CN105653591A (zh) * | 2015-12-22 | 2016-06-08 | 浙江中控研究院有限公司 | 一种工业实时数据分级存储及迁移方法 |
CN108093010A (zh) * | 2016-11-23 | 2018-05-29 | 成都阜特科技股份有限公司 | 一种工业实时数据系统及其数据处理方法 |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
CN109947668A (zh) * | 2017-12-21 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 存储数据的方法和装置 |
CN110598138A (zh) * | 2018-06-12 | 2019-12-20 | 北京京东尚科信息技术有限公司 | 基于缓存的处理方法和装置 |
CN109101365A (zh) * | 2018-08-01 | 2018-12-28 | 南京壹进制信息技术股份有限公司 | 一种基于源端数据重删的数据备份和恢复方法 |
CN111367996A (zh) * | 2020-02-25 | 2020-07-03 | 深圳联友科技有限公司 | 基于kv索引的热数据增量同步方法及装置 |
CN111858676A (zh) * | 2020-07-24 | 2020-10-30 | 政采云有限公司 | 一种数据处理的方法及装置 |
Non-Patent Citations (2)
Title |
---|
叶良等: "《大数据支撑下的区块链技术研究》", 31 May 2019, 西北工业大学出版社 * |
袁海飞: "基于分布式实时计算架构的生产设备数据分析平台", 《电子技术与软件工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143234A (zh) * | 2021-11-30 | 2022-03-04 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种数据处理方法及系统 |
CN114328583A (zh) * | 2021-12-27 | 2022-04-12 | 中科星图股份有限公司 | 一种时序数据库的实时数据查询加速方法 |
CN115033608A (zh) * | 2022-08-12 | 2022-09-09 | 广东采日能源科技有限公司 | 一种储能系统信息的分级处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685454A (zh) | 工业数据分级存储系统、方法及工业数据分级查询方法 | |
US9558257B2 (en) | Method of synchronizing data between databases, and computer system and computer program for the same | |
CN1264107C (zh) | 集成具有不同块大小的表空间 | |
CN105224546B (zh) | 数据存储和查询方法及设备 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN102169507B (zh) | 一种分布式实时搜索引擎的实现方法 | |
US20100281005A1 (en) | Asynchronous Database Index Maintenance | |
US8745029B2 (en) | Method for generating indexes for downloading data | |
CN111858496B (zh) | 一种元数据的检索方法、装置、存储介质和电子设备 | |
CN102375852A (zh) | 建立数据索引的方法、利用该索引查询数据的方法和系统 | |
US11216516B2 (en) | Method and system for scalable search using microservice and cloud based search with records indexes | |
EP2336901B1 (en) | Online access to database snapshots | |
CN114116716A (zh) | 一种层次数据检索方法、装置和设备 | |
CN102117318A (zh) | 一种企业信息化系统的数据处理方法 | |
CN101404649B (zh) | 一种基于cache的数据处理系统及其方法 | |
CN109189796B (zh) | 高精度地图数据管理方法及装置 | |
US7475088B2 (en) | Systems and methods of providing data from a data source to a data sink | |
CN1791873B (zh) | 还原数据库系统中的对象和从属对象 | |
CN114003660B (zh) | 基于flink的高效同步实时数据到ClickHouse的方法及装置 | |
CN116010441A (zh) | 数据的查询方法、装置及存储介质 | |
US11556515B2 (en) | Artificially-intelligent, continuously-updating, centralized-database-identifier repository system | |
CN110555021A (zh) | 数据存储方法、查询方法及相关装置 | |
CN110362535B (zh) | 一种文件管理方法、装置及系统 | |
WO2021207831A1 (en) | Method and systems for indexing databases on a contextual basis | |
CN103020300A (zh) | 一种信息检索方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210420 |
|
RJ01 | Rejection of invention patent application after publication |