CN114205372A - 一种物联网的数据存储方法及装置 - Google Patents
一种物联网的数据存储方法及装置 Download PDFInfo
- Publication number
- CN114205372A CN114205372A CN202111495367.1A CN202111495367A CN114205372A CN 114205372 A CN114205372 A CN 114205372A CN 202111495367 A CN202111495367 A CN 202111495367A CN 114205372 A CN114205372 A CN 114205372A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- database
- equipment
- storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 claims abstract description 251
- 230000015654 memory Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种物联网的数据存储方法及装置,该方法包括:获取物联网平台对应的至少一个设备上传的设备数据;确定每个设备在物联网平台中对应的至少一个数据库和每个设备上传的设备数据在该设备对应的所有数据库中的存储方式;基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库。可见,实施本发明能够实现多个设备的设备数据在多个数据库中的隔离存储,从而满足用户多样化的存储和查询需求。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种物联网的数据存储方法及装置。
背景技术
随着科技的进步,尤其是感知技术和网络通信技术的飞跃发展,实现人、机、物的泛在连接并提供用于信息感知、信息传输、信息处理等服务的基础设施成为通信技术领域的热点,物联网的概念也逐渐走进人们的日常生活。
当设备的设备数据传输至物联网平台之后,需要将设备数据存储至物联网平台的数据库中,并且,在将设备数据存储至该数据库之后,还需要根据实际情况满足相关用户查询并调用设备数据的需求。然而,实践发现,随着接入物联网平台的设备数量和设备类型的增多以及设备接入时间的增长,需要存储的数据量日渐庞大,数据类型也日渐丰富,单一的数据库和单一的存储方式已无法满足用户多样化的存储和查询需求。可见,如何实现设备数据的隔离存储,从而满足用户多样化的存储和查询需求显得尤为重要。
发明内容
本发明所要解决的技术问题在于,提供一种物联网的数据存储方法及装置,能够实现多个设备的设备数据在多个数据库中的隔离存储,从而满足用户多样化的存储和查询需求。
为了解决上述技术问题,本发明第一方面公开了一种物联网的数据存储方法,所述方法包括:
获取物联网平台对应的至少一个设备上传的设备数据;
确定每个所述设备在所述物联网平台中对应的至少一个数据库和每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式;
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
作为一种可选的实施方式,在本发明第一方面中,所有所述设备中其中一个目标设备对应的所有数据库包括时序数据库和/或缓存数据库;
以及,所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库,包括:
当所述目标设备对应的所有数据库包括所述时序数据库时,根据预先确定出的所述目标设备上传的目标设备数据的时间标签和所述时序数据库中已有数据的时间标签,确定所述目标设备数据在所述时序数据库中对应的排列顺序,并根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中,其中,所述排列顺序是根据所述目标设备数据的时间标签对应的时间和所述时序数据库中已有数据的时间标签对应的时间从前到后或从后到前的规律确定的;
当所述目标设备对应的所有数据库包括所述缓存数据库时,判断是否需要更新所述缓存数据库的已有数据,当判断结果为是时,将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据。
作为一种可选的实施方式,在本发明第一方面中,在所述根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中之前,所述方法还包括:
判断所述目标设备数据的存储占用量是否大于所述时序数据库的剩余存储容量;
当所述存储占用量大于所述剩余存储容量时,创建备份时序数据库,以及,所述根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中,包括:将所述目标设备数据存储至所述备份时序数据库中;或者,
当所述存储占用量大于所述剩余存储容量时,确定所述时序数据库中需要删除的目标已有数据,删除所述目标已有数据,并触发执行所述的根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中的操作;
其中,所述确定所述时序数据库中需要删除的目标已有数据,包括:
根据所述时序数据库中已有数据的时间标签,判断所述时序数据库的已有数据中是否存在存储时长大于等于预设失效时长的过期已有数据,当判断结果为是时,将所述过期已有数据确定为所述时序数据库中需要删除的目标已有数据;或者,
根据所述存储占用量和所述剩余存储容量的差值,确定所述时序数据库中需要删除的目标已有数据,其中,所述目标已有数据的存储占用量大于等于所述差值,所述目标已有数据的时间标签对应的时间早于所述时序数据库中除所述目标已有数据之外的其他已有数据的时间标签对应的时间;或者,
将所述时序数据库中数据类型为目标类型的已有数据确定为目标已有数据,其中,所述目标类型对应的优先级别低于所述时序数据库中除所述目标已有数据之外的其他已有数据的数据类型对应的优先级别。
作为一种可选的实施方式,在本发明第一方面中,所述判断是否需要更新所述缓存数据库的已有数据,包括:
判断所述目标设备上传的目标设备数据的时间标签对应的时间是否晚于所述缓存数据库中已有数据的时间标签对应的时间,当判断结果为是时,确定需要更新所述缓存数据库的已有数据;或者,
判断所述目标设备上传的目标设备数据的数据类型对应的优先级别是否高于所述缓存数据库中已有数据的数据类型对应的优先级别,当判断结果为是时,确定需要更新所述缓存数据库的已有数据;或者,
判断所述目标设备上传的目标设备数据中包括的键值字符是否与所述缓存数据库中已有数据包括的键值字符匹配,当判断结果为是时,确定需要更新所述缓存数据库的已有数据。
作为一种可选的实施方式,在本发明第一方面中,在所述将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据之前,所述方法还包括:
判断所述目标设备上传的目标设备数据的存储占用量是否大于所述缓存数据库的存储容量;
当判断结果为是时,根据所述存储占用量,确定需要的至少一个备份缓存数据库,其中,所述缓存数据库和所有所述备份缓存数据库的存储容量之和大于等于所述存储占用量;
将所述目标设备数据拆分成目标数量个数据集,其中,所述目标数量等于所述缓存数据库和所有所述备份缓存数据库的总数量;
从所述缓存数据库和所有所述备份缓存数据库中为每个所述数据集分配该数据集对应的目标缓存数据库;
其中,所述将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据,包括:
删除所述缓存数据库的已有数据;
将每个所述数据集存储至该数据集对应的目标缓存数据库;
以及,所述将所述目标设备数据拆分成目标数量个数据集,包括:
根据所述目标设备数据中所有子数据的数据属性和每个所述子数据与其他所述子数据之间的关联程度,将所述目标设备数据拆分成目标数量个数据集,其中,每个所述数据集中所有子数据之间的关联程度高于该数据集中子数据与其他所述数据集中子数据之间的关联程度。
作为一种可选的实施方式,在本发明第一方面中,在所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库之前,所述方法还包括:
针对每个所述设备对应的每个数据库,判断所述物联网平台的存储连接池中是否存在该数据库对应的空闲连接,其中,所述存储连接池中的连接用于将每个所述设备上传的设备数据存储至该设备对应的数据库,每个所述数据库对应的空闲连接的待处理线程队列中线程数量为零;
针对每个所述设备对应的每个数据库,当所述存储连接池中存在该数据库对应的空闲连接时,将该数据库对应的空闲连接确定为该数据库的目标连接;
针对每个所述设备对应的每个数据库,当所述存储连接池中不存在该数据库对应的空闲连接时,判断所述存储连接池中的连接数量是否小于所述存储连接池的可容纳连接数量,当判断结果为是时,创建该数据库对应的目标连接,当判断结果为否时,根据该数据库对应的所有连接的线程队列中的线程数量,将该数据库对应的所有连接中线程队列中线程数量最少的连接确定为该数据库对应的目标连接;
以及,所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库,包括:
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
作为一种可选的实施方式,在本发明第一方面中,在所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库之前,所述方法还包括:
根据所有所述设备上传的设备数据在所述存储连接池中的排列顺序,将所有所述设备上传的设备数据拆分成至少一个并行处理批次数据,每个所述并行处理批次数据包括的每个设备上传的设备数据的数量小于等于所述存储引擎连接池能并行处理的最大线程数量,所有所述设备上传的设备数据在所述存储连接池中的排列顺序是以每个所述设备的设备类型、每个所述设备上传的设备数据的数据类型、每个所述设备上传的设备数据的时间标签、每个所述设备对应的所有数据库对应的目标连接的线程队列中的一个或多个为依据确定的;
以及,所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库,包括:
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库的目标连接,将每个所述并行处理批次数据包括的每个设备上传的设备数据分别并行存储至该设备对应的数据库。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
根据接入所述物联网平台的所有台账设备的设备标识,从所述物联网平台对应的所有数据库中获取每个所述台账设备的设备数据,其中,所述台账设备包括接入所述物联网平台的所有设备中与目标台账相关联的设备;
根据每个所述台账设备之间的连接情况和每个所述台账设备与所述物联网平台的连接情况,确定每个所述台账设备对应的连接参数,并确定每个所述台账设备的连接状态;
针对每个所述台账设备,当该台账设备的连接状态为在线状态时,获取该台账设备的实时数据;
基于所有所述台账设备对应的设备数据、连接参数和连接状态以及所有所述台账设备中连接状态为在线状态的台账设备的实时数据中的一个或多个,生成所述目标台账对应的台账表格。
本发明第二方面公开了一种物联网的数据存储装置,所述装置包括:
获取模块,用于获取物联网平台对应的至少一个设备上传的设备数据;
确定模块,用于确定每个所述设备在所述物联网平台中对应的至少一个数据库和每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式;
存储模块,用于基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
作为一种可选的实施方式,在本发明第二方面中,所有所述设备中其中一个目标设备对应的所有数据库包括时序数据库和/或缓存数据库;
以及,所述存储模块,包括:
确定子模块,用于当所述目标设备对应的所有数据库包括所述时序数据库时,根据预先确定出的所述目标设备上传的目标设备数据的时间标签和所述时序数据库中已有数据的时间标签,确定所述目标设备数据在所述时序数据库中对应的排列顺序,其中,所述排列顺序是根据所述目标设备数据的时间标签对应的时间和所述时序数据库中已有数据的时间标签对应的时间从前到后或从后到前的规律确定的;
存储子模块,根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中;
判断子模块,用于当所述目标设备对应的所有数据库包括所述缓存数据库时,判断是否需要更新所述缓存数据库的已有数据;
更新子模块,用于当所述判断子模块判断出需要更新所述缓存数据库的已有数据,将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据。
作为一种可选的实施方式,在本发明第二方面中,所述判断子模块,还用于在所述存储子模块根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中之前,判断所述目标设备数据的存储占用量是否大于所述时序数据库的剩余存储容量;
所述存储模块,还包括:
存储容量调整子模块,用于当所述存储占用量大于所述剩余存储容量时,创建备份时序数据库,或者,确定所述时序数据库中需要删除的目标已有数据,删除所述目标已有数据,并触发所述存储子模块执行所述的根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中的操作;
其中,当所述存储容量调整子模块创建了所述备份时序数据库时,所述存储子模块根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中的具体方式为:
将所述目标设备数据存储至所述备份时序数据库中;
其中,所述存储容量调整子模块确定所述时序数据库中需要删除的目标已有数据的具体方式为:
根据所述时序数据库中已有数据的时间标签,判断所述时序数据库的已有数据中是否存在存储时长大于等于预设失效时长的过期已有数据,当判断结果为是时,将所述过期已有数据确定为所述时序数据库中需要删除的目标已有数据;或者,
根据所述存储占用量和所述剩余存储容量的差值,确定所述时序数据库中需要删除的目标已有数据,其中,所述目标已有数据的存储占用量大于等于所述差值,所述目标已有数据的时间标签对应的时间早于所述时序数据库中除所述目标已有数据之外的其他已有数据的时间标签对应的时间;或者,
将所述时序数据库中数据类型为目标类型的已有数据确定为目标已有数据,其中,所述目标类型对应的优先级别低于所述时序数据库中除所述目标已有数据之外的其他已有数据的数据类型对应的优先级别。
作为一种可选的实施方式,在本发明第二方面中,所述判断子模块判断是否需要更新所述缓存数据库的已有数据的具体方式为:
判断所述目标设备上传的目标设备数据的时间标签对应的时间是否晚于所述缓存数据库中已有数据的时间标签对应的时间,当判断结果为是时,确定需要更新所述缓存数据库的已有数据;或者,
判断所述目标设备上传的目标设备数据的数据类型对应的优先级别是否高于所述缓存数据库中已有数据的数据类型对应的优先级别,当判断结果为是时,确定需要更新所述缓存数据库的已有数据;或者,
判断所述目标设备上传的目标设备数据中包括的键值字符是否与所述缓存数据库中已有数据包括的键值字符匹配,当判断结果为是时,确定需要更新所述缓存数据库的已有数据。
作为一种可选的实施方式,在本发明第二方面中,所述判断子模块,还用于在所述更新子模块将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据之前,判断所述目标设备上传的目标设备数据的存储占用量是否大于所述缓存数据库的存储容量;
所述确定子模块,还用于当所述判断子模块判断出所述目标设备数据的存储占用量大于所述缓存数据库的存储容量时,根据所述存储占用量,确定需要的至少一个备份缓存数据库,其中,所述缓存数据库和所有所述备份缓存数据库的存储容量之和大于等于所述存储占用量;
所述存储模块,还包括:
拆分子模块,用于将所述目标设备数据拆分成目标数量个数据集,其中,所述目标数量等于所述缓存数据库和所有所述备份缓存数据库的总数量;
分配子模块,用于从所述缓存数据库和所有所述备份缓存数据库中为每个所述数据集分配该数据集对应的目标缓存数据库;
其中,所述更新子模块将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据的具体方式为:
删除所述缓存数据库的已有数据;
将每个所述数据集存储至该数据集对应的目标缓存数据库;
以及,所述拆分子模块将所述目标设备数据拆分成目标数量个数据集的具体方式为:
根据所述目标设备数据中所有子数据的数据属性和每个所述子数据与其他所述子数据之间的关联程度,将所述目标设备数据拆分成目标数量个数据集,其中,每个所述数据集中所有子数据之间的关联程度高于该数据集中子数据与其他所述数据集中子数据之间的关联程度。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
判断模块,用于在所述存储模块基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库之前,针对每个所述设备对应的每个数据库,判断所述物联网平台的存储连接池中是否存在该数据库对应的空闲连接,其中,所述存储连接池中的连接用于将每个所述设备上传的设备数据存储至该设备对应的数据库,每个所述数据库对应的空闲连接的待处理线程队列中线程数量为零,当所述存储连接池中不存在该数据库对应的空闲连接时,判断所述存储连接池中的连接数量是否小于所述存储连接池的可容纳连接数量;
所述确定模块,还用于针对每个所述设备对应的每个数据库,当所述判断模块判断出所述存储连接池中存在该数据库对应的空闲连接时,将该数据库对应的空闲连接确定为该数据库的目标连接,或者,当所述判断模块判断出所述存储连接池中的连接数量大于等于所述存储连接池的可容纳连接数量时,根据该数据库对应的所有连接的线程队列中的线程数量,将该数据库对应的所有连接中线程队列中线程数量最少的连接确定为该数据库对应的目标连接;
创建模块,用于针对每个所述设备对应的每个数据库,当所述判断模块判断出所述存储连接池中不存在该数据库对应的空闲连接,且所述存储连接池中的连接数量小于所述存储连接池的可容纳连接数量时,创建该数据库对应的目标连接;
以及,所述存储模块基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库的具体方式为:
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
拆分模块,用于在所述存储模块基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库之前,根据所有所述设备上传的设备数据在所述存储连接池中的排列顺序,将所有所述设备上传的设备数据拆分成至少一个并行处理批次数据,每个所述并行处理批次数据包括的每个设备上传的设备数据的数量小于等于所述存储引擎连接池能并行处理的最大线程数量,所有所述设备上传的设备数据在所述存储连接池中的排列顺序是以每个所述设备的设备类型、每个所述设备上传的设备数据的数据类型、每个所述设备上传的设备数据的时间标签、每个所述设备对应的所有数据库对应的目标连接的线程队列中的一个或多个为依据确定的;
以及,所述存储模块基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库的具体方式为:
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库的目标连接,将每个所述并行处理批次数据包括的每个设备上传的设备数据分别并行存储至该设备对应的数据库。
作为一种可选的实施方式,在本发明第二方面中,所述获取模块,还用于根据接入所述物联网平台的所有台账设备的设备标识,从所述物联网平台对应的所有数据库中获取每个所述台账设备的设备数据,其中,所述台账设备包括接入所述物联网平台的所有设备中与目标台账相关联的设备;
所述确定模块,还用于根据每个所述台账设备之间的连接情况和每个所述台账设备与所述物联网平台的连接情况,确定每个所述台账设备对应的连接参数,并确定每个所述台账设备的连接状态;
所述获取模块,还用于针对每个所述台账设备,当该台账设备的连接状态为在线状态时,获取该台账设备的实时数据;
以及,所述装置还包括:
生成模块,用于基于所有所述台账设备对应的设备数据、连接参数和连接状态以及所有所述台账设备中连接状态为在线状态的台账设备的实时数据中的一个或多个,生成所述目标台账对应的台账表格。
本发明第三方面公开了另一种物联网的数据存储装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的物联网的数据存储方法。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的物联网的数据存储方法。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,获取物联网平台对应的至少一个设备上传的设备数据;确定每个设备在物联网平台中对应的至少一个数据库和每个设备上传的设备数据在该设备对应的所有数据库中的存储方式;基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库。可见,实施本发明能够实现多个设备的设备数据在多个数据库中的隔离存储,从而满足用户多样化的存储和查询需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种物联网的数据存储方法的流程示意图;
图2是本发明实施例公开的另一种物联网的数据存储方法的流程示意图;
图3是本发明实施例公开的一种物联网的数据存储装置的结构示意图;
图4是本发明实施例公开的另一种物联网的数据存储装置的结构示意图;
图5是本发明实施例公开的又一种物联网的数据存储装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种物联网的数据存储方法及装置,能够实现多个设备的设备数据在多个数据库中的隔离存储,从而满足用户多样化的存储和查询需求。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种物联网的数据存储方法的流程示意图。其中,图1所描述的物联网的数据存储方法可以应用于与设备进行数据交互的物联网平台中。如图1所示,该物联网的数据存储方法可以包括以下操作:
101、获取物联网平台对应的至少一个设备上传的设备数据。
物联网平台是与多个设备进行数据交互的平台,物联网平台可以只与单个生产部门的设备进行数据交互,也可以与多个生产部门的设备进行数据交互,每个生产部门对应的人员可以通过该生产部门对应的租户标识在物联网平台上查看该生产部门对应的设备信息,并且无法查看其他生产部门对应的设备信息,这样能够实现提高数据存储的安全性和保密性。可选的,获取物联网平台对应的至少一个设备上传的设备数据时,可以直接从设备接入物联网平台的数据接口处获取,也可以从物联网平台的物联网枢纽、消息中间件、规则引擎、设备管理门户获取,本发明实施例不做限定。进一步可选的,设备上传的设备数据可以是设备运行中自动产生的数据,也可以是因设备对应的用户对设备执行控制操作而产生的数据。
102、确定每个设备在物联网平台中对应的至少一个数据库和每个设备上传的设备数据在该设备对应的所有数据库中的存储方式。
每个设备在物联网平台中对应的所有数据库可以包括关系型数据库、时序数据库、缓存数据库、消息队列等,其中,缓存数据库可以包括redis数据库,时序数据库可以包括influx数据库。可选的,同一生产部门的所有设备的同类型设备数据可以存储在该类型设备数据对应的一个数据库中,也可以分别存储在每个设备对应的该类型设备数据的不同数据库中,本发明实施例不做限定。
103、基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库。
本发明实施例中,每种类型的数据库具有对应的存储方式,例如,当数据库为时序数据库时,需基于设备数据的时间标签对应的时间确定设备数据的排列顺序,并按照排列顺序将设备数据存储在时序数据库。可选的,可以将每个设备上传的设备数据同时存储至该设备对应的数据库,也可以将每个设备上传的设备数据逐个存储至该设备对应的数据库,本发明实施例不做限定。
可见,实施本发明能够实现多个设备的设备数据在多个数据库中的隔离存储,从而满足用户多样化的存储和查询需求。
在一个可选的实施例中,在基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库之前,该方法还可以包括:
针对每个设备对应的每个数据库,判断物联网平台的存储连接池中是否存在该数据库对应的空闲连接,其中,存储连接池中的连接用于将每个设备上传的设备数据存储至该设备对应的数据库,每个数据库对应的空闲连接的待处理线程队列中线程数量为零;
针对每个设备对应的每个数据库,当存储连接池中存在该数据库对应的空闲连接时,将该数据库对应的空闲连接确定为该数据库的目标连接;
针对每个设备对应的每个数据库,当存储连接池中不存在该数据库对应的空闲连接时,判断存储连接池中的连接数量是否小于存储连接池的可容纳连接数量,当判断结果为是时,创建该数据库对应的目标连接,当判断结果为否时,根据该数据库对应的所有连接的线程队列中的线程数量,将该数据库对应的所有连接中线程队列中线程数量最少的连接确定为该数据库对应的目标连接;
以及,基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库,包括:
基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库对应的目标连接,将每个设备上传的设备数据分别存储至该设备对应的数据库。
可见,实施本发明实施例能够在存储连接池中为每个设备对应的数据库分配连接之后才存储设备数据,提高了存储设备数据的准确性和可靠性,并且使用存储连接池能够在存在空闲连接时直接使用空闲连接,节省了因创建连接和释放连接而消耗的时间成本和运行内存,提高了存储的效率,还能够通过存储连接池限制连接数量,减少因连接数量过多而导致的运行处理器的过度损耗。
在该可选的实施例中,作为一种可选的实施方式,在基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库对应的目标连接,将每个设备上传的设备数据分别存储至该设备对应的数据库之前,该方法还可以包括:
根据所有设备上传的设备数据在存储连接池中的排列顺序,将所有设备上传的设备数据拆分成至少一个并行处理批次数据,每个并行处理批次数据包括的每个设备上传的设备数据的数量小于等于存储引擎连接池能并行处理的最大线程数量,所有设备上传的设备数据在存储连接池中的排列顺序是以每个设备的设备类型、每个设备上传的设备数据的数据类型、每个设备上传的设备数据的时间标签、每个设备对应的所有数据库对应的目标连接的线程队列中的一个或多个为依据确定的;
以及,基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库对应的目标连接,将每个设备上传的设备数据分别存储至该设备对应的数据库,包括:
基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库的目标连接,将每个并行处理批次数据包括的每个设备上传的设备数据分别并行存储至该设备对应的数据库。
可见,实施该可选的实施方式能够并行存储多个设备的设备数据,提高了存储设备数据的效率,并且通过将所有设备上传的设备数据分批次存储,减少因同时存储过多设备数据而导致的运行处理器的过度损耗。
在另一个可选的实施例中,该方法还可以包括:
根据接入物联网平台的所有台账设备的设备标识,从物联网平台对应的所有数据库中获取每个台账设备的设备数据,其中,台账设备包括接入物联网平台的所有设备中与目标台账相关联的设备;
根据每个台账设备之间的连接情况和每个台账设备与物联网平台的连接情况,确定每个台账设备对应的连接参数,并确定每个台账设备的连接状态;
针对每个台账设备,当该台账设备的连接状态为在线状态时,获取该台账设备的实时数据;
基于所有台账设备对应的设备数据、连接参数和连接状态以及所有台账设备中连接状态为在线状态的台账设备的实时数据中的一个或多个,生成目标台账对应的台账表格。
在该可选的实施例中,台账设备的设备数据可以包括台账设备的技术参数、购买信息、运行记录、用户操作记录、实时运行状况等。可以根据实际应用场景采取对应的方式确定每个台账设备之间的连接情况,例如,若需要通过物联网平台生成电站对应的台账的台账表格,可以根据每个台账设备之间的输电数据、变电数据、配电数据、用电数据确定每个台账设备之间的连接情况。
可见,实时该可选的实施例能够基于物联网平台将接入的设备的相关数据直接生成台账表格,提高了生成台账表格的效率和准确性,并且,将多个设备的相关数据展示在同一台账表格中,提高了设备管理人员查看设备数据和管理设备的便捷性。
在又一个可选的实施例中,该方法还可以包括:
针对物联网平台对应的每个设备,确定该设备最近一次上传设备数据的时刻与当前时刻的间隔时长;
判断所有设备中是否存在某一设备对应的间隔时长大于该设备对应的预设时长,当判断结果为是时,将该设备确定为异常设备;
根据异常设备的连接参数,判断异常设备是否正常接入物联网平台;
当判断结果为否时,根据异常设备的连接参数,生成异常设备对应的告警数据;
将告警数据存储至异常设备对应的数据库中。
可见,实施该可选的实施例能够及时监控并发现设备的异常情况,并将异常情况的相关数据存储至数据库中,以便于设备管理人员根据数据库的数据回溯设备的异常情况。
在又一个可选的实施例中,该方法还可以包括:
当检测到用户针对接入设备的操作请求时,确定操作请求对应的用户标识和设备标识,操作请求包括查询请求和/或控制请求;
根据从物联网平台对应的数据库中获取到的用户标识对应的用户数据和设备标识对应的设备数据,判断用户是否具有执行操作请求对应的操作的权限;
当判断结果为是时,根据操作请求执行相匹配的操作。
可见,实施该可选的实施例能够在用户具有针对设备的操作权限时才执行用户触发的操作请求相匹配的操作,提高了设备管理的安全性、可靠性,提高了设备数据的保密性。
在该可选的实施例中,作为一种可选的实施方式,当操作请求包括查询请求时,根据操作请求执行相匹配的操作,可以包括:
确定查询请求所请求的数据的目标数据类型;
当目标数据类型包括接入设备的实时数据类型时,从接入设备与物联网平台的接入端口处采集接入设备的实时数据,并向用户输出实时数据;
当目标数据类型包括接入设备的历史数据类型时,确定查询请求对应的时间范围,并从接入设备对应的数据库的已有数据中获取时间标签对应的时间在查询请求对应的时间范围内的目标历史数据,并向用户输出目标历史数据。
可见,实施该可选的实施方式能够数据查询请求所请求的数据内容的数据类型执行相匹配的查询操作,提高了数据查询的准确性和可靠性。
在该可选的实施方式中,可选的,当查询请求为告警信息查询请求且当目标数据类型包括接入设备的历史数据类型时,从接入设备对应的数据库的已有数据中获取时间标签对应的时间在查询请求对应的时间范围内的目标历史数据,可以包括:
从接入设备对应的数据库的已有数据中获取时间标签对应的时间在时间范围之内的所有历史数据;
判断所有历史数据中是否存在异常数据;
当判断结果为是时,将异常数据确定为目标历史数据,并触发执行上述的向用户输出目标历史数据的操作。
可见,实施该可选的实施方式还能够在用户查询告警信息时输出异常数据,减少输出无效数据的情况发生,提高了数据查询的准确性和可靠性。
实施例二
请参阅图2,图2是本发明实施例公开的另一种物联网的数据存储方法的流程示意图。其中,图2所描述的物联网的数据存储方法可以应用于与设备进行数据交互的物联网平台中。如图2所示,该物联网的数据存储方法可以包括以下操作:
201、获取物联网平台对应的至少一个设备上传的设备数据。
202、确定每个设备在物联网平台中对应的至少一个数据库和每个设备上传的设备数据在该设备对应的所有数据库中的存储方式。
203、当所有设备中其中一个目标设备对应的所有数据库包括时序数据库时,根据预先确定出的目标设备上传的目标设备数据的时间标签和时序数据库中已有数据的时间标签,确定目标设备数据在时序数据库中对应的排列顺序,其中,排列顺序是根据目标设备数据的时间标签对应的时间和时序数据库中已有数据的时间标签对应的时间从前到后或从后到前的规律确定的。
例如,若目标设备数据的时间标签对应的时间为9:00,而时序数据库中已有数据的时间标签对应的时间均在9:00之前,且排列顺序是根据时间标签对应的时间从后到前的规律确定的,则可以确定目标设备数据的排列数据在时序数据库中已有数据的排列顺序之前。
其中,目标设备数据的时间标签对应的时间可以是目标设备采集目标设备数据的时间,也可以是目标设备上传目标设备数据的时间,还可以是针对目标设备数据执行步骤201的时间,本分明实施例不做限定。
可选的,当多个设备的设备数据均需存储至同一个时序数据库时,可确定目标设备在时序数据库中对应的目标数据表,并根据预先确定出的目标设备数据的时间标签和目标数据表中已有数据的时间标签,确定目标设备数据在目标数据表中对应的排列顺序。
204、根据排列顺序,将目标设备数据存储至时序数据库中。
205、当所有设备中其中一个目标设备对应的所有数据库包括缓存数据库时,判断是否需要更新缓存数据库的已有数据。
作为一种可选的实施方式,判断是否需要更新缓存数据库的已有数据,可以包括:
判断目标设备上传的目标设备数据的时间标签对应的时间是否晚于缓存数据库中已有数据的时间标签对应的时间,当判断结果为是时,确定需要更新缓存数据库的已有数据;或者,
判断目标设备上传的目标设备数据的数据类型对应的优先级别是否高于缓存数据库中已有数据的数据类型对应的优先级别,当判断结果为是时,确定需要更新缓存数据库的已有数据;或者,
判断目标设备上传的目标设备数据中包括的键值字符是否与缓存数据库中已有数据包括的键值字符匹配,当判断结果为是时,确定需要更新缓存数据库的已有数据。
可见,实施该可选的实施方式能够根据设备数据的时间标签、数据类型、键值字符判断是否需要更新缓存数据库的已有数据,提高了判断是否需要更新数据的准确性和可靠性,减少因误更新数据而导致数据丢失的情况发生。
206、当步骤205的判断结果为是时,将目标设备上传的目标设备数据更新为缓存数据库的已有数据。
本发明实施例中,针对步骤201、步骤202的其它描述,请参照实施例一中针对步骤101-步骤102的详细描述,本发明实施例不再赘述。
可见,实施本发明能够实现设备数据在缓存数据库和时序数据库的隔离存储,从而满足用户多样化的存储和查询需求,并根据设备数据的时间标签确定设备数据在时序数据库中的排列位置,以及在需要缓存数据的数据时才将设备数据存储至缓存数据库,能够减少因误更新数据而导致数据丢失的情况发生,提高了设备数据存储的可靠性和准确性。
在一个可选的实施例中,在根据排列顺序,将目标设备数据存储至时序数据库中之前,该方法还可以包括:
判断目标设备数据的存储占用量是否大于时序数据库的剩余存储容量;
当存储占用量大于剩余存储容量时,创建备份时序数据库,以及,根据排列顺序,将目标设备数据存储至时序数据库中,可以包括:将目标设备数据存储至备份时序数据库中;或者,
当存储占用量大于剩余存储容量时,确定时序数据库中需要删除的目标已有数据,删除目标已有数据,并触发执行上述的根据排列顺序,将目标设备数据存储至时序数据库中的操作。
可见,实施该可选的实施例能够在时序数据库的存储容量不足时创建备份数据库或清理已有数据,减少因数据内存不足而导致数据存储失败或数据存储不完整的情况发生,提高了数据存储的可靠性。
在该可选的实施例中,作为一种可选的实施方式,确定时序数据库中需要删除的目标已有数据,可以包括:
根据时序数据库中已有数据的时间标签,判断时序数据库的已有数据中是否存在存储时长大于等于预设失效时长的过期已有数据,当判断结果为是时,将过期已有数据确定为时序数据库中需要删除的目标已有数据;或者,
根据存储占用量和剩余存储容量的差值,确定时序数据库中需要删除的目标已有数据,其中,目标已有数据的存储占用量大于等于差值,目标已有数据的时间标签对应的时间早于时序数据库中除目标已有数据之外的其他已有数据的时间标签对应的时间;或者,
将时序数据库中数据类型为目标类型的已有数据确定为目标已有数据,其中,目标类型对应的优先级别低于时序数据库中除目标已有数据之外的其他已有数据的数据类型对应的优先级别。
可见,实施该可选的实施方式能够根据时序数据库中已有数据的时间标签、数据类型或时序数据库的存储容量确定需要删除的数据,提高了确定需要删除的数据的准确性和可靠性,减少了误删除重要数据的情况发生。
在另一个可选的实施例中,在将目标设备上传的目标设备数据更新为缓存数据库的已有数据之前,该方法还可以包括:
判断目标设备上传的目标设备数据的存储占用量是否大于缓存数据库的存储容量;
当判断结果为是时,根据存储占用量,确定需要的至少一个备份缓存数据库,其中,缓存数据库和所有备份缓存数据库的存储容量之和大于等于存储占用量;
将目标设备数据拆分成目标数量个数据集,其中,目标数量等于缓存数据库和所有备份缓存数据库的总数量;
从缓存数据库和所有备份缓存数据库中为每个数据集分配该数据集对应的目标缓存数据库。
其中,将目标设备上传的目标设备数据更新为缓存数据库的已有数据,包括:
删除缓存数据库的已有数据;
将每个数据集存储至该数据集对应的目标缓存数据库。
可见,实施该可选的实施例能够在缓存数据库存储容量不足时采用备份数据库,减少因存储容量不足而导致数据存储失败或数据存储不完整的情况发生。
在该可选的实施例中,作为一种可选的实施方式,将目标设备数据拆分成目标数量个数据集,可以包括:
根据目标设备数据中所有子数据的数据属性和每个子数据与其他子数据之间的关联程度,将目标设备数据拆分成目标数量个数据集,其中,每个数据集中所有子数据之间的关联程度高于该数据集中子数据与其他数据集中子数据之间的关联程度。
可见,实施本可选的实施方式能够在拆分设备数据时将关联性强的数据放置在同一个数据集中,有利于提高用户查看数据的便捷性和效率。
在又一个可选的实施例中,该方法还可以包括:
当目标设备对应的数据库包括时序数据库和缓存数据库时,在将目标设备上传的目标设备数据更新为缓存数据库的已有数据之前,该方法还可以包括:
根据缓存数据库中已有数据的时间标签,判断时序数据库的已有数据中是否存在时间标签与缓存数据库中已有数据的时间标签一致的相关联数据;
当判断结果为否时,根据缓存数据库中已有数据的标签对应的时间和时序数据库中已有数据的时间标签对应的时间,确定缓存数据库中已有数据在时序数据库中的目标排列位置,并根据目标排列位置,将缓存数据库中已有数据存储至时序数据库;
当判断结果为是时,判断缓存数据库中已有数据的数据类型是否与相关联数据的数据类型一致,当判断结果为否时,根据相关联数据在时序数据库中的排列位置,将缓存数据库中已有数据存储至时序数据库。
可见,实施该可选的实施例能够在更新缓存数据库的已有数据库前根据实际需求将缓存数据库的已有数据转移至时序数据库,减少因更新数据而导致数据丢失的情况发生,提高了数据存储的可靠性和安全性。
实施例三
请参阅图3,图3是本发明实施例公开的一种物联网的数据存储装置的结构示意图。其中,图3所描述的物联网的数据存储装置可以应用于与设备进行数据交互的物联网平台中。如图3所示,该物联网的数据存储装置可以包括:
获取模块301,用于获取物联网平台对应的至少一个设备上传的设备数据;
确定模块302,用于确定每个设备在物联网平台中对应的至少一个数据库和每个设备上传的设备数据在该设备对应的所有数据库中的存储方式;
存储模块303,用于基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库。
可见,实施图3所描述的装置能够实现多个设备的设备数据在多个数据库中的隔离存储,从而满足用户多样化的存储和查询需求。
在一个可选的实施例中,如图4所示,所有设备中其中一个目标设备对应的所有数据库包括时序数据库和/或缓存数据库;
以及,存储模块303,包括:
确定子模块3031,用于当目标设备对应的所有数据库包括时序数据库时,根据预先确定出的目标设备上传的目标设备数据的时间标签和时序数据库中已有数据的时间标签,确定目标设备数据在时序数据库中对应的排列顺序,其中,排列顺序是根据目标设备数据的时间标签对应的时间和时序数据库中已有数据的时间标签对应的时间从前到后或从后到前的规律确定的;
存储子模块3032,根据排列顺序,将目标设备数据存储至时序数据库中;
判断子模块3033,用于当目标设备对应的所有数据库包括缓存数据库时,判断是否需要更新缓存数据库的已有数据;
更新子模块3034,用于当判断子模块3033判断出需要更新缓存数据库的已有数据,将目标设备上传的目标设备数据更新为缓存数据库的已有数据。
可见,实施图4所描述的装置能够实现设备数据在缓存数据库和时序数据库的隔离存储,从而满足用户多样化的存储和查询需求,并根据设备数据的时间标签确定设备数据在时序数据库中的排列位置,以及在需要缓存数据的数据时才将设备数据存储至缓存数据库,能够减少因误更新数据而导致数据丢失的情况发生,提高了设备数据存储的可靠性和准确性。
在另一个可选的实施例中,如图4所示,判断子模块3033,还用于在存储子模块3032根据排列顺序,将目标设备数据存储至时序数据库中之前,判断目标设备数据的存储占用量是否大于时序数据库的剩余存储容量;
存储模块303,还包括:
存储容量调整子模块3035,用于当存储占用量大于剩余存储容量时,创建备份时序数据库,或者,确定时序数据库中需要删除的目标已有数据,删除目标已有数据,并触发存储子模块3032执行上述的根据排列顺序,将目标设备数据存储至时序数据库中的操作;
其中,当存储容量调整子模3035块创建了备份时序数据库时,存储子模块3032根据排列顺序,将目标设备数据存储至时序数据库中的具体方式为:
将目标设备数据存储至备份时序数据库中。
可见,实施图4所描述的装置还能够在时序数据库的存储容量不足时创建备份数据库或清理已有数据,减少因数据内存不足而导致数据存储失败或数据存储不完整的情况发生,提高了数据存储的可靠性。
在该可选的实施例中,作为一种可选的实施方式,如图4所示,存储容量调整子模块3035确定时序数据库中需要删除的目标已有数据的具体方式为:
根据时序数据库中已有数据的时间标签,判断时序数据库的已有数据中是否存在存储时长大于等于预设失效时长的过期已有数据,当判断结果为是时,将过期已有数据确定为时序数据库中需要删除的目标已有数据;或者,
根据存储占用量和剩余存储容量的差值,确定时序数据库中需要删除的目标已有数据,其中,目标已有数据的存储占用量大于等于差值,目标已有数据的时间标签对应的时间早于时序数据库中除目标已有数据之外的其他已有数据的时间标签对应的时间;或者,
将时序数据库中数据类型为目标类型的已有数据确定为目标已有数据,其中,目标类型对应的优先级别低于时序数据库中除目标已有数据之外的其他已有数据的数据类型对应的优先级别。
可见,实施图4所描述的装置还能够根据时序数据库中已有数据的时间标签、数据类型或时序数据库的存储容量确定需要删除的数据,提高了确定需要删除的数据的准确性和可靠性,减少了误删除重要数据的情况发生。
在又一个可选的实施例中,如图4所示,判断子模块3033判断是否需要更新缓存数据库的已有数据的具体方式为:
判断目标设备上传的目标设备数据的时间标签对应的时间是否晚于缓存数据库中已有数据的时间标签对应的时间,当判断结果为是时,确定需要更新缓存数据库的已有数据;或者,
判断目标设备上传的目标设备数据的数据类型对应的优先级别是否高于缓存数据库中已有数据的数据类型对应的优先级别,当判断结果为是时,确定需要更新缓存数据库的已有数据;或者,
判断目标设备上传的目标设备数据中包括的键值字符是否与缓存数据库中已有数据包括的键值字符匹配,当判断结果为是时,确定需要更新缓存数据库的已有数据。
可见,实施图4所描述的装置还能够根据设备数据的时间标签、数据类型、键值字符判断是否需要更新缓存数据库的已有数据,提高了判断是否需要更新数据的准确性和可靠性,减少因误更新数据而导致数据丢失的情况发生。
在又一个可选的实施例中,如图4所示,判断子模块3033,还用于在更新子模块将目标设备上传的目标设备数据更新为缓存数据库的已有数据之前,判断目标设备上传的目标设备数据的存储占用量是否大于缓存数据库的存储容量;
确定子模块3031,还用于当判断子模块3033判断出目标设备数据的存储占用量大于缓存数据库的存储容量时,根据存储占用量,确定需要的至少一个备份缓存数据库,其中,缓存数据库和所有备份缓存数据库的存储容量之和大于等于存储占用量;
存储模块303,还包括:
拆分子模块3036,用于将目标设备数据拆分成目标数量个数据集,其中,目标数量等于缓存数据库和所有备份缓存数据库的总数量;
分配子模块3037,用于从缓存数据库和所有备份缓存数据库中为每个数据集分配该数据集对应的目标缓存数据库;
其中,更新子模块3034将目标设备上传的目标设备数据更新为缓存数据库的已有数据的具体方式为:
删除缓存数据库的已有数据;
将每个数据集存储至该数据集对应的目标缓存数据库。
可见,实施图4所描述的装置还能够在缓存数据库存储容量不足时采用备份数据库,减少因存储容量不足而导致数据存储失败或数据存储不完整的情况发生。
在该可选的实施例中,作为一种可选的实施方式,拆分子模块3037将目标设备数据拆分成目标数量个数据集的具体方式为:
根据目标设备数据中所有子数据的数据属性和每个子数据与其他子数据之间的关联程度,将目标设备数据拆分成目标数量个数据集,其中,每个数据集中所有子数据之间的关联程度高于该数据集中子数据与其他数据集中子数据之间的关联程度。
可见,实施图4所描述的装置还能够在拆分设备数据时将关联性强的数据放置在同一个数据集中,有利于提高用户查看数据的便捷性和效率。
在又一个可选的实施例中,如图4所示,该装置还可以包括:
判断模块304,用于在存储模块303基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库之前,针对每个设备对应的每个数据库,判断物联网平台的存储连接池中是否存在该数据库对应的空闲连接,其中,存储连接池中的连接用于将每个设备上传的设备数据存储至该设备对应的数据库,每个数据库对应的空闲连接的待处理线程队列中线程数量为零,当存储连接池中不存在该数据库对应的空闲连接时,判断存储连接池中的连接数量是否小于存储连接池的可容纳连接数量;
确定模块302,还用于针对每个设备对应的每个数据库,当判断模块304判断出存储连接池中存在该数据库对应的空闲连接时,将该数据库对应的空闲连接确定为该数据库的目标连接,或者,当判断模块304判断出存储连接池中的连接数量大于等于存储连接池的可容纳连接数量时,根据该数据库对应的所有连接的线程队列中的线程数量,将该数据库对应的所有连接中线程队列中线程数量最少的连接确定为该数据库对应的目标连接;
创建模块305,用于针对每个设备对应的每个数据库,当判断模块304判断出存储连接池中不存在该数据库对应的空闲连接,且存储连接池中的连接数量小于存储连接池的可容纳连接数量时,创建该数据库对应的目标连接;
以及,存储模块303基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个设备上传的设备数据分别存储至该设备对应的数据库的具体方式为:
基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库对应的目标连接,将每个设备上传的设备数据分别存储至该设备对应的数据库。
可见,实施图4所描述的装置还能够在存储连接池中为每个设备对应的数据库分配连接之后才存储设备数据,提高了存储设备数据的准确性和可靠性,并且使用存储连接池能够在存在空闲连接时直接使用空闲连接,节省了因创建连接和释放连接而消耗的时间成本和运行内存,提高了存储的效率,还能够通过存储连接池限制连接数量,减少因连接数量过多而导致的运行处理器的过度损耗。
在又一个可选的实施例中,如图4所示,该装置还可以包括:
拆分模块306,用于在存储模块基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库对应的目标连接,将每个设备上传的设备数据分别存储至该设备对应的数据库之前,根据所有设备上传的设备数据在存储连接池中的排列顺序,将所有设备上传的设备数据拆分成至少一个并行处理批次数据,每个并行处理批次数据包括的每个设备上传的设备数据的数量小于等于存储引擎连接池能并行处理的最大线程数量,所有设备上传的设备数据在存储连接池中的排列顺序是以每个设备的设备类型、每个设备上传的设备数据的数据类型、每个设备上传的设备数据的时间标签、每个设备对应的所有数据库对应的目标连接的线程队列中的一个或多个为依据确定的;
以及,存储模块303基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库对应的目标连接,将每个设备上传的设备数据分别存储至该设备对应的数据库的具体方式为:
基于每个设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个设备对应的所有数据库的目标连接,将每个并行处理批次数据包括的每个设备上传的设备数据分别并行存储至该设备对应的数据库。
可见,实施图4所描述的装置能够并行存储多个设备的设备数据,提高了存储设备数据的效率,并且通过将所有设备上传的设备数据分批次存储,减少因同时存储过多设备数据而导致的运行处理器的过度损耗。
在又一个可选的实施例中,如图4所示,获取模块301,还用于根据接入物联网平台的所有台账设备的设备标识,从物联网平台对应的所有数据库中获取每个台账设备的设备数据,其中,台账设备包括接入物联网平台的所有设备中与目标台账相关联的设备;
确定模块302,还用于根据每个台账设备之间的连接情况和每个台账设备与物联网平台的连接情况,确定每个台账设备对应的连接参数,并确定每个台账设备的连接状态;
获取模块301,还用于针对每个台账设备,当该台账设备的连接状态为在线状态时,获取该台账设备的实时数据;
以及,该装置还可以包括:
生成模块307,用于基于所有台账设备对应的设备数据、连接参数和连接状态以及所有台账设备中连接状态为在线状态的台账设备的实时数据中的一个或多个,生成目标台账对应的台账表格。
可见,实施图4所描述的装置还能够基于物联网平台将接入的设备的相关数据直接生成台账表格,提高了生成台账表格的效率和准确性,并且,将多个设备的相关数据展示在同一台账表格中,提高了设备管理人员查看设备数据和管理设备的便捷性。
实施例四
请参阅图5,图5是本发明实施例公开的又一种物联网的数据存储装置的结构示意图。如图5所示,该物联网的数据存储装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一或本发明实施例二所描述的物联网的数据存储方法中的步骤。
实施例五
本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一或本发明实施例二所描述的物联网的数据存储方法中的步骤。
实施例六
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二中所描述的物联网的数据存储方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种物联网的数据存储方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (10)
1.一种物联网的数据存储方法,其特征在于,所述方法包括:
获取物联网平台对应的至少一个设备上传的设备数据;
确定每个所述设备在所述物联网平台中对应的至少一个数据库和每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式;
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
2.根据权利要求1所述的物联网的数据存储方法,其特征在于,所有所述设备中其中一个目标设备对应的所有数据库包括时序数据库和/或缓存数据库;
以及,所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库,包括:
当所述目标设备对应的所有数据库包括所述时序数据库时,根据预先确定出的所述目标设备上传的目标设备数据的时间标签和所述时序数据库中已有数据的时间标签,确定所述目标设备数据在所述时序数据库中对应的排列顺序,并根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中,其中,所述排列顺序是根据所述目标设备数据的时间标签对应的时间和所述时序数据库中已有数据的时间标签对应的时间从前到后或从后到前的规律确定的;
当所述目标设备对应的所有数据库包括所述缓存数据库时,判断是否需要更新所述缓存数据库的已有数据,当判断结果为是时,将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据。
3.根据权利要求2所述的物联网的数据存储方法,其特征在于,在所述根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中之前,所述方法还包括:
判断所述目标设备数据的存储占用量是否大于所述时序数据库的剩余存储容量;
当所述存储占用量大于所述剩余存储容量时,创建备份时序数据库,以及,所述根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中,包括:将所述目标设备数据存储至所述备份时序数据库中;或者,
当所述存储占用量大于所述剩余存储容量时,确定所述时序数据库中需要删除的目标已有数据,删除所述目标已有数据,并触发执行所述的根据所述排列顺序,将所述目标设备数据存储至所述时序数据库中的操作;
其中,所述确定所述时序数据库中需要删除的目标已有数据,包括:
根据所述时序数据库中已有数据的时间标签,判断所述时序数据库的已有数据中是否存在存储时长大于等于预设失效时长的过期已有数据,当判断结果为是时,将所述过期已有数据确定为所述时序数据库中需要删除的目标已有数据;或者,
根据所述存储占用量和所述剩余存储容量的差值,确定所述时序数据库中需要删除的目标已有数据,其中,所述目标已有数据的存储占用量大于等于所述差值,所述目标已有数据的时间标签对应的时间早于所述时序数据库中除所述目标已有数据之外的其他已有数据的时间标签对应的时间;或者,
将所述时序数据库中数据类型为目标类型的已有数据确定为目标已有数据,其中,所述目标类型对应的优先级别低于所述时序数据库中除所述目标已有数据之外的其他已有数据的数据类型对应的优先级别。
4.根据权利要求2或3所述的物联网的数据存储方法,其特征在于,所述判断是否需要更新所述缓存数据库的已有数据,包括:
判断所述目标设备上传的目标设备数据的时间标签对应的时间是否晚于所述缓存数据库中已有数据的时间标签对应的时间,当判断结果为是时,确定需要更新所述缓存数据库的已有数据;或者,
判断所述目标设备上传的目标设备数据的数据类型对应的优先级别是否高于所述缓存数据库中已有数据的数据类型对应的优先级别,当判断结果为是时,确定需要更新所述缓存数据库的已有数据;或者,
判断所述目标设备上传的目标设备数据中包括的键值字符是否与所述缓存数据库中已有数据包括的键值字符匹配,当判断结果为是时,确定需要更新所述缓存数据库的已有数据。
5.根据权利要求4所述的物联网的数据存储方法,其特征在于,在所述将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据之前,所述方法还包括:
判断所述目标设备上传的目标设备数据的存储占用量是否大于所述缓存数据库的存储容量;
当判断结果为是时,根据所述存储占用量,确定需要的至少一个备份缓存数据库,其中,所述缓存数据库和所有所述备份缓存数据库的存储容量之和大于等于所述存储占用量;
将所述目标设备数据拆分成目标数量个数据集,其中,所述目标数量等于所述缓存数据库和所有所述备份缓存数据库的总数量;
从所述缓存数据库和所有所述备份缓存数据库中为每个所述数据集分配该数据集对应的目标缓存数据库;
其中,所述将所述目标设备上传的目标设备数据更新为所述缓存数据库的已有数据,包括:
删除所述缓存数据库的已有数据;
将每个所述数据集存储至该数据集对应的目标缓存数据库;
以及,所述将所述目标设备数据拆分成目标数量个数据集,包括:
根据所述目标设备数据中所有子数据的数据属性和每个所述子数据与其他所述子数据之间的关联程度,将所述目标设备数据拆分成目标数量个数据集,其中,每个所述数据集中所有子数据之间的关联程度高于该数据集中子数据与其他所述数据集中子数据之间的关联程度。
6.根据权利要求1、2、3、5中任一项所述的物联网的数据存储方法,其特征在于,在所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库之前,所述方法还包括:
针对每个所述设备对应的每个数据库,判断所述物联网平台的存储连接池中是否存在该数据库对应的空闲连接,其中,所述存储连接池中的连接用于将每个所述设备上传的设备数据存储至该设备对应的数据库,每个所述数据库对应的空闲连接的待处理线程队列中线程数量为零;
针对每个所述设备对应的每个数据库,当所述存储连接池中存在该数据库对应的空闲连接时,将该数据库对应的空闲连接确定为该数据库的目标连接;
针对每个所述设备对应的每个数据库,当所述存储连接池中不存在该数据库对应的空闲连接时,判断所述存储连接池中的连接数量是否小于所述存储连接池的可容纳连接数量,当判断结果为是时,创建该数据库对应的目标连接,当判断结果为否时,根据该数据库对应的所有连接的线程队列中的线程数量,将该数据库对应的所有连接中线程队列中线程数量最少的连接确定为该数据库对应的目标连接;
以及,所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库,包括:
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
7.根据权利要求6所述的物联网的数据存储方法,其特征在于,在所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库之前,所述方法还包括:
根据所有所述设备上传的设备数据在所述存储连接池中的排列顺序,将所有所述设备上传的设备数据拆分成至少一个并行处理批次数据,每个所述并行处理批次数据包括的每个设备上传的设备数据的数量小于等于所述存储引擎连接池能并行处理的最大线程数量,所有所述设备上传的设备数据在所述存储连接池中的排列顺序是以每个所述设备的设备类型、每个所述设备上传的设备数据的数据类型、每个所述设备上传的设备数据的时间标签、每个所述设备对应的所有数据库对应的目标连接的线程队列中的一个或多个为依据确定的;
以及,所述基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库对应的目标连接,将每个所述设备上传的设备数据分别存储至该设备对应的数据库,包括:
基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式和每个所述设备对应的所有数据库的目标连接,将每个所述并行处理批次数据包括的每个设备上传的设备数据分别并行存储至该设备对应的数据库。
8.根据权利要求1、2、3、5、7中任一项所述的物联网的数据存储方法,其特征在于,所述方法还包括:
根据接入所述物联网平台的所有台账设备的设备标识,从所述物联网平台对应的所有数据库中获取每个所述台账设备的设备数据,其中,所述台账设备包括接入所述物联网平台的所有设备中与目标台账相关联的设备;
根据每个所述台账设备之间的连接情况和每个所述台账设备与所述物联网平台的连接情况,确定每个所述台账设备对应的连接参数,并确定每个所述台账设备的连接状态;
针对每个所述台账设备,当该台账设备的连接状态为在线状态时,获取该台账设备的实时数据;
基于所有所述台账设备对应的设备数据、连接参数和连接状态以及所有所述台账设备中连接状态为在线状态的台账设备的实时数据中的一个或多个,生成所述目标台账对应的台账表格。
9.一种物联网的数据存储装置,其特征在于,所述装置包括:
获取模块,用于获取物联网平台对应的至少一个设备上传的设备数据;
确定模块,用于确定每个所述设备在所述物联网平台中对应的至少一个数据库和每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式;
存储模块,用于基于每个所述设备上传的设备数据在该设备对应的所有数据库中的存储方式,将每个所述设备上传的设备数据分别存储至该设备对应的数据库。
10.一种物联网的数据存储装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-8任一项所述的物联网的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111495367.1A CN114205372A (zh) | 2021-12-08 | 2021-12-08 | 一种物联网的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111495367.1A CN114205372A (zh) | 2021-12-08 | 2021-12-08 | 一种物联网的数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114205372A true CN114205372A (zh) | 2022-03-18 |
Family
ID=80651439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111495367.1A Pending CN114205372A (zh) | 2021-12-08 | 2021-12-08 | 一种物联网的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114205372A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033126A (zh) * | 2018-05-31 | 2018-12-18 | 广东电网有限责任公司 | 基于实时pi数据库的电网海量遥测数据查询应用方法 |
CN110012075A (zh) * | 2019-03-12 | 2019-07-12 | 平安科技(深圳)有限公司 | 数据传输方法及相关设备 |
CN110019247A (zh) * | 2018-08-16 | 2019-07-16 | 比亚迪股份有限公司 | 数据存储以及查询方法、装置和监控系统 |
CN111125089A (zh) * | 2019-11-05 | 2020-05-08 | 远景智能国际私人投资有限公司 | 时序数据存储方法、装置、服务器及存储介质 |
CN113495903A (zh) * | 2021-09-08 | 2021-10-12 | 西安热工研究院有限公司 | 电力时序数据库缓存方法、系统、设备及可读存储介质 |
-
2021
- 2021-12-08 CN CN202111495367.1A patent/CN114205372A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033126A (zh) * | 2018-05-31 | 2018-12-18 | 广东电网有限责任公司 | 基于实时pi数据库的电网海量遥测数据查询应用方法 |
CN110019247A (zh) * | 2018-08-16 | 2019-07-16 | 比亚迪股份有限公司 | 数据存储以及查询方法、装置和监控系统 |
CN110012075A (zh) * | 2019-03-12 | 2019-07-12 | 平安科技(深圳)有限公司 | 数据传输方法及相关设备 |
CN111125089A (zh) * | 2019-11-05 | 2020-05-08 | 远景智能国际私人投资有限公司 | 时序数据存储方法、装置、服务器及存储介质 |
CN113495903A (zh) * | 2021-09-08 | 2021-10-12 | 西安热工研究院有限公司 | 电力时序数据库缓存方法、系统、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684358B (zh) | 数据查询的方法和装置 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN110515912A (zh) | 日志处理方法、装置、计算机装置及计算机可读存储介质 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN112182014A (zh) | 数据库查询方法、装置、设备及存储介质 | |
CN114157679A (zh) | 基于云原生分布式应用监控方法、装置、设备及介质 | |
CN113132267B (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN113656098A (zh) | 配置获取方法及系统 | |
CN111209333B (zh) | 数据更新方法、装置、终端及存储介质 | |
CN111475468A (zh) | 新增系统的日志接入方法、装置、设备及存储介质 | |
CN114205372A (zh) | 一种物联网的数据存储方法及装置 | |
CN115426287B (zh) | 一种系统监控和优化方法、装置、电子设备及介质 | |
CN111324459A (zh) | 基于日历的资源调度方法、装置、电子设备及存储介质 | |
CN116132585A (zh) | 信息处理方法及相关装置 | |
CN113420050B (zh) | 数据查询管理方法、装置、计算机设备及可读存储介质 | |
CN112861004B (zh) | 一种富媒体的确定方法及装置 | |
CN115526586A (zh) | 一种基于智能运算的业务流程处理方法 | |
CN113590276A (zh) | 信息推送方法及相关产品 | |
CN112559221A (zh) | 智能名单处理方法、系统、设备及存储介质 | |
CN114547184A (zh) | 人员信息同步方法、终端设备及存储介质 | |
CN111026746A (zh) | 多渠道数据调用的方法、装置、计算机设备及存储介质 | |
CN117294578B (zh) | 一种通信方法、系统、计算机设备和存储介质 | |
CN114650252B (zh) | 基于企业服务总线的路由方法、装置及计算机设备 | |
CN109828884A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220318 |