CN117033142A - 用户存储空间的计算方法、装置、物联网平台及介质 - Google Patents
用户存储空间的计算方法、装置、物联网平台及介质 Download PDFInfo
- Publication number
- CN117033142A CN117033142A CN202311223595.2A CN202311223595A CN117033142A CN 117033142 A CN117033142 A CN 117033142A CN 202311223595 A CN202311223595 A CN 202311223595A CN 117033142 A CN117033142 A CN 117033142A
- Authority
- CN
- China
- Prior art keywords
- storage
- user
- record
- storage space
- distributed
- 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 47
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 230000002776 aggregation Effects 0.000 claims abstract description 18
- 238000004220 aggregation Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims 1
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y30/00—IoT infrastructure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种用户存储空间的计算方法、装置、物联网平台及介质,其中方法包括:当设备消息写入存储服务后,将每条设备消息的存储记录信息发送到分布式消息队列中;按照用户和时间维度对设备消息的存储记录信息进行聚合统计,将第一统计结果存储到分布式小文件系统中,且更新分布式缓存中的当前存储空间占用值;按照预设时间间隔从分布式小文件系统中获取已过期记录文件,并按照用户维度对已过期记录文件进行聚合统计,且更新分布式缓存中的当前存储空间占用值;若接收到存储空间查询指令,则基于存储空间查询指令中的用户ID从分布式缓存获取用户ID对应的当前存储空间。本申请提高了对存储空间的统计效率和提高存储服务稳定性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种用户存储空间的计算方法、装置、物联网平台及介质。
背景技术
物联网平台是为物联网应用开发者提供快速开发、部署以及应用管理的平台,开发者无需考虑下层基础设施扩展、数据管理和归集、通信协议、通信安全等问题,降低开发成本、大大缩短开发时间。物联网平台具备设备接入、设备管理、消息存储、指令下发等通用基础能力。物联网终端接入物联网平台后,平台存储服务会对设备上报消息进行存储,并通过能力网关开放设备消息查询能力。
大型物联网平台一般承载亿级以上设备、十万级以上用户,为了节约海量设备消息的存储成本,会部署一套或多套大数据存储服务(如HBase),对所有用户设备消息进行共享存储。一个存储服务中会存储数以万计用户的设备消息,对每个用户的存储空间使用情况进行统计会大量占用存储服务资源,影响存储服务稳定性,造成用户使用体验下降,且统计结果会有较大延迟。如果将用户存储信息单独存储到数据库后进行用户存储量统计查询,则10万用户即使每分钟记录1条存储统计信息,存储半年也会达到约260亿条记录,数据库性能会急剧下降,占用大量资源且无法满足及时计算的需求。平台运营方无法基于用户空间使用情况进行实时的存储配额限制,给平台存储产品化运营带来巨大挑战。故现亟需一种用户存储空间的计算方法,以提高对存储空间的统计效率和提高存储服务稳定性,提高用户使用体验。
发明内容
本申请实施例的目的在于提出一种用户存储空间的计算方法、装置、物联网平台及介质,以提高对存储空间的统计效率和提高存储服务稳定性,提高用户使用体验。
为了解决上述技术问题,本申请实施例提供一种用户存储空间的计算方法,包括:
当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;
按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;
按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;
若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。
为了解决上述技术问题,本申请实施例提供一种用户存储空间的计算装置,包括:
存储记录信息发送单元,用于当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;
增量数据统计单元,用于按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;
过期数据统计单元,用于按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;
数据空间查询单元,用于若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种物联网平台,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的用户存储空间的计算方法。
为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的用户存储空间的计算方法。
本发明实施例提供了一种用户存储空间的计算方法、装置、物联网平台及介质。其中,方法包括:当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。本发明实施例能够在不影响物联网平台存储服务性能和稳定性,且占用资源较少的前提下,实现海量用户设备高并发上报消息时用户存储空间的近实时统计,有利于提高对存储空间的统计效率和提高存储服务稳定性,提高用户使用体验。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的用户存储空间的计算方法流程的实现流程图;
图2是本申请实施例提供的用户存储空间的计算方法中子流程的实现流程图;
图3是本申请实施例提供的用户存储空间的计算方法中子流程的实现流程图;
图4是本申请实施例提供的用户存储空间的计算方法中子流程的实现流程图;
图5是本申请实施例提供的用户存储空间的计算方法中子流程的实现流程图;
图6是本申请实施例提供的用户存储空间的计算方法中子流程的实现流程图;
图7是本申请实施例提供的用户存储空间的计算方法中子流程的实现流程图;
图8是本申请实施例提供的用户存储空间的计算装置示意图;
图9是本申请实施例提供的物联网平台的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面结合附图和实施方式对本发明进行详细说明。
需要说明的是,本申请实施例所提供的用户存储空间的计算方法一般由物联网平台执行,相应地,用户存储空间的计算装置一般配置于物联网平台中。
请参阅图1,图1示出了用户存储空间的计算方法的一种具体实施方式。
需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,该方法包括如下步骤:
S1:当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中。
具体地,在实施步骤S1之前需要先部署好分布式缓存Redis Cluster、分布式消息队列Pulsar、分布式小文件系统minio以及流处理引擎Flink;同时在分布式消息队列上创建第一消息队列mTopic和第二消息队列rTopic,该第一消息队列mTopic用于接收增量存储记录消息,第二消息队列rTopic用于接收已过期存储记录消息。
本申请实施例中,当设备消息正常写入存储服务(如NoSql、分布式数据库等各类存储服务)后,将每条设备消息的存储记录信息发送到分布式消息队列,存储记录信息包括:用户ID:uId、消息大小:mSize、存储时间:mTime。
请参阅图2,图2示出了步骤S1之前的一种具体实施方式,详叙如下:
S1A:获取不同数据类型的用户存储周期。
S1B:在所述分布式小文件系统中创建每一所述用户存储周期对应的存储数据目录。
S1C:对每一所述存储数据目录下在固定时间间隔构建一个目录,其中,所述目录用于存储所述固定时间间隔内的分数级统计记录文件。
具体地,按照用户存储需求,给用户设立固定的几类数据存储周期;在分布式小文件系统中,给每个存储周期分别构建相应的存储数据目录sDataX(如30天:sData30、90天:sData90、180天:sData180等),每个存储数据目录下,每天建立一个目录,用于存储固定时间间隔内的分钟级统计记录文件。
需要说明的是,固定时间间隔内根据实际情况进行设定,此处不作限定。在一具体实施例中,目录用于保存当天的分数级统计记录文件。
S2:按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值。
请参阅图3,图3示出了步骤S2的一种具体实施方式,详叙如下:
S21:从所述分布式消息队列中获取所述存储记录信息。
具体地,分布式消息队列中的第一消息队列接收着增量存储记录消息,所以在计算增量存储记录消息时,通过流计算服务,从分布式消息队列的第一消息队列中获取存储记录信息。
S22:基于设定的计算窗口,按照用户和时间维度对各用户的存储记录信息的消息大小进行流式计算,得到所述第一统计结果。其中,所述第一统计结果包括用户ID、时间、分钟级存储累加值以及记录列表。
具体地,设定计算窗口为1分钟,将各存储记录信息中的存储时间精确到分钟级,按照用户和时间维度,对窗口内存储记录信息的消息大小进行累加,得到第一统计结果,其中,第一统计结果包括用户uId、时间mMin、分钟级存储累加值aSize和记录列表oList。
S23:在所述分布式缓存中将所述记录列表对应的当前存储空间占用值与所述分钟级存储累加值进行相加,以生成新的当前存储空间占用值。
S24:基于所述用户存储周期和所述预设文件时间索引方式将所述记录列表中的所有存储记录进行分类和合并,得到合并结果,并将所述合并结果写入所述分布式小文件系统中。
具体地,将记录列表oList中的各条存储记录信息,根据各用户设定的存储周期和时间mMin进行分类和合并后,建立文件时间索引,写入分布式小文件系统。
请参阅图4,图4示出了步骤S24的一种具体实施方式,详叙如下:
S241:按照所述用户存储周期将所述记录列表中的所有存储记录进行分类,得到每一用户存储周期的存储记录。
S242:将每一所述用户存储周期的存储记录按照时间维度进行分类,得到每一时间维度的存储记录,并将所述时间维度的存储记录作为待写入记录。
S243:判断所述分布式小文件系统在固定时间间隔内是否存在的所述待写入记录,若否,则将所述待写入记录进行合并,得到所述合并结果,并将所述合并结果写入所述分布式小文件系统中。
具体地,按照用户设定的存储周期类型,对记录列表的所有存储记录进行分类,得到每一用户存储周期的存储记录;针对每个存储周期分类中的记录,按照时间维度进行分类,得到每一时间维度的存储记录,并将所述时间维度的存储记录作为待写入记录。判断所述分布式小文件系统在固定时间间隔内是否存在的所述待写入记录,若否,则将所述待写入记录进行合并,得到所述合并结果,并将所述合并结果写入所述分布式小文件系统中。若存在,则不需要重新写入该待写入记录。其中,目录路径格式为:/sDataX/yyyyMMdd/,yyyyMMdd代表年月日,例如,存储周期为30天的目录路径格式为:/sData30/20230614。
请参阅图5,图5示出了步骤S243的一种具体实施方式,详叙如下:
S2431:基于所述待写入记录的所述时间分类和存储记录,判断所述分布式小文件系统在固定时间间隔内是否存在相同的所述待写入记录。
S2432:若不存在相同的所述待写入记录,则将每一所述待写入记录中的用户ID和分钟级存储累加值进行拼接与合并,得到所述合并结果。
S2433:将所述合并结果进行压缩,得到压缩结果,并将所述压缩结果写入预设格式文件中,以将所述压缩结果写入所述分布式小文件系统中。
具体地,基于待写入记录的时间分类和存储记录,判断分布式小文件系统在固定时间间隔内是否存在相同的待写入记录;若不存在相同的待写入记录,则将每一待写入记录中的用户ID和分钟级存储累加值进行拼接与合并,得到合并结果。例如,按照uId1:aSize1,uId2:aSize2…的格式进行拼接。然后将合并结果进行压缩,得到压缩结果,并将所述压缩结果写入预设格式文件中,以将所述压缩结果写入所述分布式小文件系统中。该预设格式文件为/sDataX/yyyyMMdd/HHmm,HHmm代表时和分。本申请实施例中,可按文件名建立时间索引,快速定位和批量获取某个分钟段的所有记录,且可避免在每条记录中存储时间信息,可降低约30%的存储占用。
S3:按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值。
本申请实施例中,按照预设时间间隔从各周期存储目录中获取所有已过期文件,解析出用户存储记录消息,按照用户维度进行聚合统计,并基于统计结果更新分布式缓存中相应用户当前存储空间占用值。需要说明的是,预设时间间隔根据实际情况进行设定,此处不作限定。
请参阅图6,图6示出了步骤S3的一种具体实施方式,详叙如下:
S31:按照所述预设时间间隔从所述分布式小文件系统的每一存储数据目录中获取所述已过期记录文件,并对所述已过期记录文件进行解析,得到已过期解析信息。
其中,所述已过期解析信息包括所述已过期记录文件中的所有的用户ID和分钟级存储累加值。
请参阅图7,图7示出了步骤S31的一种具体实施方式,详叙如下:
S311:获取所述存储数据目录对应的存储周期作为目标存储周期。
具体地,根据存储目录DataX获取目标存储周期duration(如sData30代表存储周期为30天)。
S312:从所述存储数据目录中获取所述目标存储周期之前的子目录列表。
具体地,在该存储目录中,按照子目录名(yyyyMMdd),获取子目录名的时间小于或等于当前时间(取年月日)减去目标存储周期duration的子目录列表。
S313:基于所述目标存储周期和子目录列表中文件名的时间获取所述已过期记录文件。
具体地,对子目录列表中的各子目录,若子目录文件名的时间<当前时间(取年月日)-duration,则获取子目录中的所有文件;若子目录文件名的时间=当前时间-duration,则获取该子目录中的文件名的时间<当前时间(取小时分钟)的文件,从而得到所有已过期记录文件。
S314:对所述已过期记录文件进行解析,得到所述已过期解析信息。
具体地,对已过期记录文件进行解析,得到所述已过期解析信息,其中,已过期解析信息包括已过期记录文件中的所有用户ID和分钟级存储累加值。
S315:从所述子目录列表的子目录中删除所述已过期记录文件,得到文件处理后的子目录。
S316:若所述文件处理后的子目录中未存在文件,则将所述文件处理后的子目录进行删除。
具体地,从子目录列表的子目录中删除已过期记录文件,得到文件处理后的子目录;若文件处理后的子目录中未存在文件,则将文件处理后的子目录进行删除。
S32:将所述已过期解析信息发送到所述分布式消息队列中。
具体地,将解析后的所有用户ID和分钟级存储累加值发送到分布式消息消息队列中。
S33:从所述分布式消息队列中获取已过期的存储记录信息。
具体地,通过流计算服务,从分布式消息队列的第二消息队列rTopic中获取存储记录信息,并设定计算窗口为1分钟。
S34:基于设定的计算窗口,按照用户维度对各用户的所述已过期的存储记录信息的消息大小进行流式计算,得到所述第二统计结果。
S35:基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值。
具体地,按照用户维度,对窗口内数据大小进行累加,得到各用户释放空间值,也即得到第二统计结果。然后在分布式缓存中,将相应用户当前存储空间值设置为当前存储空间减去用户释放空间值。其中,用户释放空间值为已过期的存储记录信息的消息大小。
S4:若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。
具体地,若需要查询存储空间,则生成包括用户ID的存储空间查询指令发送到物联网平台,则物联网平台基于存储空间查询指令中的用户ID从分布式缓存获取所述用户ID对应的当前存储空间。
本申请实施例中,当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。本发明实施例能够在不影响物联网平台存储服务性能和稳定性,且占用资源较少的前提下,实现海量用户设备高并发上报消息时用户存储空间的近实时统计,有利于提高对存储空间的统计效率和提高存储服务稳定性,提高用户使用体验。本申请实施例采用按照时间建立文件索引的方式,对用户存储分钟级聚合信息进行合并存储,支持过期数据的快速定位和批量获取,大大提高了计算过期消息释放存储空间的效率。和基于数据库存储用户分钟级存储信息相比,解决了海量数据查询的性能问题,并且大大降低了资源占用。
请参考图8,作为对上述图1所示方法的实现,本申请提供了一种用户存储空间的计算装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种物联网平台中。
如图8所示,本实施例的用户存储空间的计算装置包括:存储记录信息发送单元51、增量数据统计单元52、过期数据统计单元53及数据空间查询单元54,其中:
存储记录信息发送单元51,用于当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;
增量数据统计单元52,用于按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;
过期数据统计单元53,用于按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;
数据空间查询单元54,用于若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。
进一步地,存储记录信息发送单元51之前,所述方法还包括:
用户存储周期获取单元,用于获取不同数据类型的用户存储周期;
存储数据目录创建单元,用于在所述分布式小文件系统中创建每一所述用户存储周期对应的存储数据目录;
目录构建单元,用于对每一所述存储数据目录下在固定时间间隔构建一个目录,其中,所述目录用于存储所述固定时间间隔内的分数级统计记录文件。
进一步地,增量数据统计单元52包括:
存储记录信息获取单元,用于从所述分布式消息队列中获取所述存储记录信息;
第一计算单元,用于基于设定的计算窗口,按照用户和时间维度对各用户的存储记录信息的消息大小进行流式计算,得到所述第一统计结果,其中,所述第一统计结果包括用户ID、时间、分钟级存储累加值以及记录列表;
当前存储空间占用值生成单元,用于在所述分布式缓存中将所述记录列表对应的当前存储空间占用值与所述分钟级存储累加值进行相加,以生成新的当前存储空间占用值;
合并结果生成单元,用于基于所述用户存储周期和所述预设文件时间索引方式将所述记录列表中的所有存储记录进行分类和合并,得到合并结果,并将所述合并结果写入所述分布式小文件系统中。
进一步地,合并结果生成单元包括:
存储记录分类单元,用于按照所述用户存储周期将所述记录列表中的所有存储记录进行分类,得到每一用户存储周期的存储记录;
待写入记录生成单元,用于将每一所述用户存储周期的存储记录按照时间维度进行分类,得到每一时间维度的存储记录,并将所述时间维度的存储记录作为待写入记录;
相同记录判断单元,用于判断所述分布式小文件系统在固定时间间隔内是否存在的所述待写入记录,若否,则将所述待写入记录进行合并,得到所述合并结果,并将所述合并结果写入所述分布式小文件系统中。
进一步地,重复记录判断单元包括:
判断单元,用于基于所述待写入记录的所述时间分类和存储记录,判断所述分布式小文件系统在固定时间间隔内是否存在相同的所述待写入记录;
拼接单元,用于若不存在相同的所述待写入记录,则将每一所述待写入记录中的用户ID和分钟级存储累加值进行拼接与合并,得到所述合并结果;
压缩单元,用于将所述合并结果进行压缩,得到压缩结果,并将所述压缩结果写入预设格式文件中,以将所述压缩结果写入所述分布式小文件系统中。
进一步地,过期数据统计单元53包括:
已过期记录文件获取单元,用于按照所述预设时间间隔从所述分布式小文件系统的每一存储数据目录中获取所述已过期记录文件,并对所述已过期记录文件进行解析,得到已过期解析信息,其中,所述已过去解析信息包括所述已过期记录文件中的所有的用户ID和分钟级存储累加值;
已过期解析信息发送单元,用于将所述已过期解析信息发送到所述分布式消息队列中;
已过期存储记录信息获取单元,用于从所述分布式消息队列中获取已过期的存储记录信息;
第二计算单元,用于基于设定的计算窗口,按照用户维度对各用户的所述已过期的存储记录信息的消息大小进行流式计算,得到所述第二统计结果;
更新单元,用于基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值。
进一步地,已过期记录文件获取单元包括:
目标存储周期获取单元,用于获取所述存储数据目录对应的存储周期作为目标存储周期;
子目录列表获取单元,用于从所述存储数据目录中获取所述目标存储周期之前的子目录列表;
基于所述目标存储周期和子目录列表中文件名的时间获取所述已过期记录文件;
文件解析单元,用于对所述已过期记录文件进行解析,得到所述已过期解析信息;
文件删除单元,用于从所述子目录列表的子目录中删除所述已过期记录文件,得到文件处理后的子目录;
目录删除单元,用于若所述文件处理后的子目录中未存在文件,则将所述文件处理后的子目录进行删除。
为解决上述技术问题,本申请实施例还提供物联网平台。具体请参阅图9,图9为本实施例物联网平台基本结构框图。
物联网平台6包括通过系统总线相互通信连接存储器61、处理器62、网络接口63。需要指出的是,图中仅示出了具有三种组件存储器61、处理器62、网络接口63的物联网平台6,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的物联网平台是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field -Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
物联网平台可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。物联网平台可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器61至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器61可以是物联网平台6的内部存储单元,例如该物联网平台6的硬盘或内存。在另一些实施例中,存储器61也可以是物联网平台6的外部存储设备,例如该物联网平台6上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器61还可以既包括物联网平台6的内部存储单元也包括其外部存储设备。本实施例中,存储器61通常用于存储安装于物联网平台6的操作系统和各类应用软件,例如用户存储空间的计算方法的程序代码等。此外,存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器62在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制物联网平台6的总体操作。本实施例中,处理器62用于运行存储器61中存储的程序代码或者处理数据,例如运行上述用户存储空间的计算方法的程序代码,以实现用户存储空间的计算方法的各种实施例。
网络接口63可包括无线网络接口或有线网络接口,该网络接口63通常用于在物联网平台6与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种用户存储空间的计算方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种用户存储空间的计算方法,其特征在于,包括:
当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;
按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;
按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;
若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。
2.根据权利要求1所述的用户存储空间的计算方法,其特征在于,所述当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中之前,所述方法还包括:
获取不同数据类型的用户存储周期;
在所述分布式小文件系统中创建每一所述用户存储周期对应的存储数据目录;
对每一所述存储数据目录下在固定时间间隔构建一个目录,其中,所述目录用于存储所述固定时间间隔内的分数级统计记录文件。
3.根据权利要求1所述的用户存储空间的计算方法,其特征在于,所述按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值,包括:
从所述分布式消息队列中获取所述存储记录信息;
基于设定的计算窗口,按照用户和时间维度对各用户的存储记录信息的消息大小进行流式计算,得到所述第一统计结果,其中,所述第一统计结果包括用户ID、时间、分钟级存储累加值以及记录列表;
在所述分布式缓存中将所述记录列表对应的当前存储空间占用值与所述分钟级存储累加值进行相加,以生成新的当前存储空间占用值;
基于所述用户存储周期和所述预设文件时间索引方式将所述记录列表中的所有存储记录进行分类和合并,得到合并结果,并将所述合并结果写入所述分布式小文件系统中。
4.根据权利要求3所述的用户存储空间的计算方法,其特征在于,所述基于所述用户存储周期和所述预设文件时间索引方式将所述记录列表中的所有存储记录进行分类和合并,得到合并结果,并将所述合并结果写入所述分布式小文件系统中,包括:
按照所述用户存储周期将所述记录列表中的所有存储记录进行分类,得到每一用户存储周期的存储记录;
将每一所述用户存储周期的存储记录按照时间维度进行分类,得到每一时间维度的存储记录,并将所述时间维度的存储记录作为待写入记录;
判断所述分布式小文件系统在固定时间间隔内是否存在的所述待写入记录,若否,则将所述待写入记录进行合并,得到所述合并结果,并将所述合并结果写入所述分布式小文件系统中。
5.根据权利要求4所述的用户存储空间的计算方法,其特征在于,所述判断所述分布式小文件系统在固定时间间隔内是否存在的所述待写入记录,若否,则将所述待写入记录进行合并,得到所述合并结果,并将所述合并结果写入所述分布式小文件系统中,包括:
基于所述待写入记录的所述时间分类和存储记录,判断所述分布式小文件系统在固定时间间隔内是否存在相同的所述待写入记录;
若不存在相同的所述待写入记录,则将每一所述待写入记录中的用户ID和分钟级存储累加值进行拼接与合并,得到所述合并结果;
将所述合并结果进行压缩,得到压缩结果,并将所述压缩结果写入预设格式文件中,以将所述压缩结果写入所述分布式小文件系统中。
6.根据权利要求1至5任一项所述的用户存储空间的计算方法,其特征在于,所述按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值,包括:
按照所述预设时间间隔从所述分布式小文件系统的每一存储数据目录中获取所述已过期记录文件,并对所述已过期记录文件进行解析,得到已过期解析信息,其中,所述已过去解析信息包括所述已过期记录文件中的所有的用户ID和分钟级存储累加值;
将所述已过期解析信息发送到所述分布式消息队列中;
从所述分布式消息队列中获取已过期的存储记录信息;
基于设定的计算窗口,按照用户维度对各用户的所述已过期的存储记录信息的消息大小进行流式计算,得到所述第二统计结果;
基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值。
7.根据权利要求6所述的用户存储空间的计算方法,其特征在于,所述按照所述预设时间间隔从所述分布式小文件系统的每一存储数据目录中获取所述已过期记录文件,并对所述已过期记录文件进行解析,得到已过期解析信息,包括:
获取所述存储数据目录对应的存储周期作为目标存储周期;
从所述存储数据目录中获取所述目标存储周期之前的子目录列表;
基于所述目标存储周期和子目录列表中文件名的时间获取所述已过期记录文件;
对所述已过期记录文件进行解析,得到所述已过期解析信息;
从所述子目录列表的子目录中删除所述已过期记录文件,得到文件处理后的子目录;
若所述文件处理后的子目录中未存在文件,则将所述文件处理后的子目录进行删除。
8.一种用户存储空间的计算装置,其特征在于,包括:
存储记录信息发送单元,用于当设备消息写入存储服务后,将每条所述设备消息的存储记录信息发送到分布式消息队列中;
增量数据统计单元,用于按照用户和时间维度对所述设备消息的存储记录信息进行聚合统计,得到第一统计结果,并将所述第一统计结果基于用户存储周期和预设文件时间索引方式存储到分布式小文件系统中,且基于所述第一统计结果更新分布式缓存中的当前存储空间占用值;
过期数据统计单元,用于按照预设时间间隔从所述分布式小文件系统中获取已过期记录文件,并按照用户维度对所述已过期记录文件进行聚合统计,得到第二统计结果,且基于所述第二统计结果更新所述分布式缓存中的所述当前存储空间占用值;
数据空间查询单元,用于若接收到存储空间查询指令,则基于所述存储空间查询指令中的用户ID从所述分布式缓存获取所述用户ID对应的当前存储空间。
9.一种物联网平台,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的用户存储空间的计算方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的用户存储空间的计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311223595.2A CN117033142A (zh) | 2023-09-21 | 2023-09-21 | 用户存储空间的计算方法、装置、物联网平台及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311223595.2A CN117033142A (zh) | 2023-09-21 | 2023-09-21 | 用户存储空间的计算方法、装置、物联网平台及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117033142A true CN117033142A (zh) | 2023-11-10 |
Family
ID=88643390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311223595.2A Pending CN117033142A (zh) | 2023-09-21 | 2023-09-21 | 用户存储空间的计算方法、装置、物联网平台及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033142A (zh) |
-
2023
- 2023-09-21 CN CN202311223595.2A patent/CN117033142A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271411B (zh) | 报表生成方法、装置、计算机设备及存储介质 | |
CN111124917B (zh) | 公共测试用例的管控方法、装置、设备及存储介质 | |
CN112394908A (zh) | 埋点页面自动生成的方法、装置、计算机设备及存储介质 | |
CN112989156A (zh) | 一种基于大数据的政策与企业匹配的方法和系统 | |
US10750031B2 (en) | Tariff data determining method and apparatus for creating the same | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN112860662B (zh) | 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN112631879A (zh) | 数据采集方法、装置、计算机可读介质及电子设备 | |
US10346281B2 (en) | Obtaining and analyzing a reduced metric data set | |
CN113449339A (zh) | 日志收集方法、系统、计算机设备及计算机可读存储介质 | |
CN110807050B (zh) | 性能分析方法、装置、计算机设备及存储介质 | |
CN109634649B (zh) | 页面流程实验方法、系统、设备及可读存储介质 | |
CN111258819A (zh) | MySQL数据库备份文件的数据获取方法、装置和系统 | |
CN109586970B (zh) | 资源分配方法、装置及系统 | |
CN110990350A (zh) | 日志的解析方法及装置 | |
CN111221711A (zh) | 用户行为数据处理方法、服务器及存储介质 | |
CN113094248A (zh) | 用户行为数据分析方法、装置、电子设备及介质 | |
CN114625407A (zh) | 一种ab实验的实现方法、系统、设备及存储介质 | |
CN110737691B (zh) | 用于处理访问行为数据的方法和装置 | |
CN117033142A (zh) | 用户存储空间的计算方法、装置、物联网平台及介质 | |
CN114791914A (zh) | 基于Bitmap位图的用户行为统计方法、装置、设备及介质 | |
CN113010852B (zh) | 数据的计量统计方法、装置、电子设备及存储介质 | |
EP4209933A1 (en) | Data processing method and apparatus, and electronic device and storage medium | |
CN110020166A (zh) | 一种数据分析方法及相关设备 | |
CN111131393B (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 |