CN111723115A - 基于多级缓存的数据统计方法、装置、终端及存储介质 - Google Patents

基于多级缓存的数据统计方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN111723115A
CN111723115A CN202010589637.4A CN202010589637A CN111723115A CN 111723115 A CN111723115 A CN 111723115A CN 202010589637 A CN202010589637 A CN 202010589637A CN 111723115 A CN111723115 A CN 111723115A
Authority
CN
China
Prior art keywords
data
message
cache
message data
level
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
Application number
CN202010589637.4A
Other languages
English (en)
Inventor
冯鹏
周维康
陈洁丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202010589637.4A priority Critical patent/CN111723115A/zh
Publication of CN111723115A publication Critical patent/CN111723115A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及金融科技技术领域,公开了一种基于多级缓存的数据统计方法、装置、终端设备及计算机存储介质。该基于多级缓存的数据统计方法通过根据采集到的关键数据和所述关键数据的数据类型构建消息数据;检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;在所述存储空间中对所述消息数据进行批量上传并删除。本发明能够实现针对消息数据进行多级缓存,有效降低数据丢失率,此外,本发明在不同缓存层级的存储空间当中,批量的对消息数据进行整合上传,提高了数据的上传效率,且,避免了数据对终端内存的大量和长时间占用,保证了终端运行性能。

Description

基于多级缓存的数据统计方法、装置、终端及存储介质
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种基于多级缓存的数据统计方法、装置、终端设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
如图5所示,现有的数据统计架构通常可以由数据收集模块、数据格式化整合模块以及数据发送模块三个部分组成。这其中,数据收集模块是数据统计SDK(SoftwareDevelopment Kit,软件开发工具包)对外提供的API(Application Interface,应用程序接口),开发者在APP(Application,应用软件程序)中进行业务埋点以后,待用户操作该APP时便会触发数据统计API从而构造消息-Message,然后,将构造得到的消息-Message再通过数据格式化模块进行整合处理,最后,通过数据发送模块将经过整合处理之后的消息-Message发送到后台服务器。
然而在实际的应用场景中,由于消息-Message构造产生的速度太快,使得数据发送无法及时完成以致消息-Message严重占用终端存储空间或者造成数据丢失,从而影响终端系统的运行以及数据统计的性能。
发明内容
本发明的主要目的在于提供一种基于多级缓存的数据统计方法、装置、终端设备及计算机存储介质,旨在解决现有数据统计的架构会对终端存储空间以及造成数据丢失,严重影响终端运行和数据统计性能指标的技术问题。
为实现上述目的,本发明提供一种基于多级缓存的数据统计方法,所述基于多级缓存的数据统计方法包括:
根据采集到的关键数据和所述关键数据的数据类型构建消息数据;
检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;
按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;
在所述存储空间中对所述消息数据进行批量上传并删除。
可选地,在所述根据采集到的关键数据和所述关键数据的数据类型构建消息数据的步骤之前,还包括:
基于预设应用程序接口收集关键数据和所述关键数据的数据类型;
或者,基于预设数据埋点采集关键数据并检测所述预设数据埋点的重要程度,根据所述重要程度确定所述关键数据的数据类型。
可选地,所述数据类型包括:重要类型、一般类型和非必要类型,
所述根据采集到的关键数据和所述关键数据的数据类型构建消息数据的步骤包括:
将所述关键数据进行组装并和所述重要类型、所述一般类型或者所述非必要类型结合,以构建得到类型属性为重要消息、一般消息或者非必要消息的消息数据。
可选地,所述缓存层级包括:内存缓存和数据库缓存,
所述检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级的步骤包括:
检测所述消息数据的类型属性是否为重要消息、一般消息或者非必要消息;
若检测到所述类型属性为重要消息,则确定所述消息数据对应的缓存层级为数据库缓存;
若检测到所述类型属性为一般消息或者为非必要消息,则确定所述消息数据对应的缓存层级为内存缓存。
可选地,所述按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存的步骤包括:
若检测到所述消息数据的缓存层级为数据库缓存,则基于所述消息数据生成重要消息上传任务;
执行所述重要消息上传任务将所述消息数据存储至数据库中并对所述数据库中的消息数据量进行更新;
或者,若检测到所述消息数据的缓存层级为内存缓存,则将所述消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新。
可选地,所述内存中的消息数据量包括:一般消息数据量,
在所述将所述消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新的步骤之后,还包括:
在检测到所述一般消息数据量超过预设批量数据组装阈值时,提取类型属性为一般消息的消息数据的公共参数;
将所述公共参数格式化成为消息组,并基于所述消息组生成重要消息上传任务;
执行所述重要消息上传任务将所述消息组存储至数据库中并对所述数据库中的消息组数据量进行更新。
可选地,所述在所述存储空间中对所述消息数据进行批量上传并删除的步骤包括:
在所述消息数据对应的存储空间中分别读取目标消息数据,其中,所述目标消息数据的数量大于或者等于一;
将所述目标消息数据打包封装后同步上传至预设后台接口,并在上传成功后删除所述存储空间中的所述目标消息数据。
此外,为实现上述目的,本发明还提供一种基于多级缓存的数据统计装置,所述基于多级缓存的数据统计装置包括:
构建模块,用于根据采集到的关键数据和所述关键数据的数据类型构建消息数据;
确定模块,用于检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;
缓存模块,用于按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;
上传模块,用于在所述存储空间中对所述消息数据进行批量上传并删除。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于多级缓存的数据统计程序,所述基于多级缓存的数据统计程序被所述处理器执行时实现如上所述的基于多级缓存的数据统计方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有基于多级缓存的数据统计程序,所述基于多级缓存的数据统计程序被处理器执行时实现如上所述的基于多级缓存的数据统计方法的步骤。
本发明提供一种基于多级缓存的数据统计方法、装置、终端设备及计算机存储介质,通过根据采集到的关键数据和所述关键数据的数据类型构建消息数据;检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;在所述存储空间中对所述消息数据进行批量上传并删除。
本发明基于数据的类型构建得到不同级别的消息数据,然后基于不同级别的消息数据的类型属性确定该消息数据的缓存层级,并按照确定的缓存层级将消息数据存储至对应级别的存储空间当中,实现了针对消息数据进行多级缓存,以将重要数据优先存放至缓存层级高的存储空间中,而不是直接发送,有效的降低了重要数据的丢失率,此外,本发明在不同缓存层级的存储空间当中,批量的对消息数据进行整合上传进行统计,提高了数据的上传效率,且,避免了数据对终端内存的大量和长时间占用,保证了终端运行性能。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明基于多级缓存的数据统计方法第一实施例的流程示意图;
图3为本发明基于多级缓存的数据统计方法一实施例所涉及的应用场景示意图;
图4(a)和图4(b)分别为本发明基于多级缓存的数据统计方法一实施例所涉及的另一应用场景示意图;
图5为本发明基于多级缓存的数据统计方法背景技术所述现有数据统计架构示意图;
图6为本发明基于多级缓存的数据统计装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例终端设备可以是智能手机,也可以是PC(Personal Computer,个人计算机)、平板电脑、便携计算机等终端设备。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于多级缓存的数据统计程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于多级缓存的数据统计程序,并执行以下基于多级缓存的数据统计方法的操作。
基于上述硬件结构,提出本发明基于多级缓存的数据统计方法的各实施例。
需要说明的是,现有技术中,最常见的数据统计的架构如附图5所示,大都是数据收集模块、数据格式化整合模块以及数据发送模块三个部分组成。其中,数据收集模块是数据统计SDK对外提供的API,开发者在APP中进行业务埋点以后,在终端用户操作APP的时候会触发数据统计API,此时构造消息-Message,然后,构造的消息-Message一般需要通过数据格式化模块,对不同的数据进行处理,最后,数据发送模块会将消息-Message发送到后台服务器。但是在实际的应用场景中,消息`Message`有可能产生得太快,而网络上送又较慢,如果不加处理可能会导致严重的问题(如终端由于内存被大量或者长时间占用而导致运行崩溃或者重要数据丢失)。除此之外,在网络上报数据的阶段,如果没有良好的框架(数据统计框架)支持,也会影响到数据的消费(数据上传至后台服务器),从而最终影响数据统计功能的各项性能指标(数据丢失率和数据同步上传的实时性)。
针对上述现象,本发明提供一种基于多级缓存的数据统计方法。请参照图2,图2为本发明基于多级缓存的数据统计方法第一实施例的流程示意图。
在本实施例中,该基于多级缓存的数据统计方法包括:
步骤S10,根据采集到的关键数据和所述关键数据的数据类型构建消息数据;
本发明实施例中,新设计数据统计架构,终端设备通过数据统计架构的数据采集模块采集到关键数据以及该关键数据的数据类型之后,将该关键数据和数据类型进行结合从而构建得到不同类型属性的消息数据。
进一步地,在一种可行的实施例中,在步骤S10之前,本发明基于多级缓存的数据统计方法,还可以包括:
步骤A,基于预设应用程序接口收集关键数据和所述关键数据的数据类型;
终端设备通过数据统计架构上预留的预设应用程序接口接收调用者传入的关键数据,并确定该关键数据的数据类型。
需要说明的是,在本实施例中,关键数据的数据类型包括但不限于:重要类型、一般类型和非必要类型。
具体地,例如,在如图3所示的应用场景当中,终端设备通过数据统计框架-SDK对外暴露的SDK API,接收调用者通过该API传入的关键数据以及在传入该关键数据的同时传入的数据类型(重要类型、一般类型和非必要类型)。
需要说明的是,在本实施例中,整个数据统计架构-SDK的结构如图3所示,按照该结构从上至下的顺序可分成基础SDK API、数据生成、数据封装与内存缓存、数据库缓存、以及数据网络上报。在整个SDK架构中,定义需要统计的关键数据(也可称为有效数据)为Payload,然后将Payload数据与其他的SDK内部生成的非关键数据结合构造成消息数据(本文使用Message来表示消息数据),在该SDK架构的内存缓存层中,定义使用的内存缓存管理者为CacheManager,并在该SDK架构的数据库缓存层,定义数据库缓存管理者为DBManager,最后,在该SDK架构的数据网络上报层,定义执行数据上报服务的管理者为UploadManager。
进一步地,在另一种可行的实施例中,在步骤S10之前,本发明基于多级缓存的数据统计方法,还可以包括:
步骤B,基于预设数据埋点采集关键数据并检测所述预设数据埋点的重要程度,根据所述重要程度确定所述关键数据的数据类型。
需要说明的是,在本实施例中,预设数据埋点为终端软件应用程序APP的开发者为采集用户行为数据而预先设置的,且开发者在设置该预设数据埋点的同时,基于采集用户行为数据的必要性考虑,会定义下该预设数据埋点各自的重要程度:重要埋点、一般埋点或者非必要埋点。
具体地,例如,终端设备通过数据统计架构-SDK对外暴露的SDK API,接收终端用户在使用APP时,该APP的开发者预先设置的一个或者多个数据埋点所采集到的关键数据(用户行为数据),然后分别检测该采集关键数据的一个或者多个数据埋点各自的重要程度是否为重要埋点、一般埋点或者非必要埋点,从而在检测到数据埋点为重要埋点时,即确定通过该重要埋点采集到的关键数据的数据类型为重要类型,或者,在检测到数据埋点为一般埋点时,即确定通过该一般埋点所采集到的关键数据的数据类型为一般类型,又或者,在检测到数据埋点为非必要埋点时,即确定该非必要埋点采集到的关键数据的数据类型为非必要类型。
在本实施例中,通过终端应用程序的开发者在设置埋点时候定义该埋点的重要程度,或者基于检测开发者设置埋点的位置来自动确定埋点的重要程度,从而可对重要埋点所采集到的重要数据在后续缓存时,不是将该重要数据也放置在终端内存当中,而是将该重要数据及时落入到数据库中进行存储,确保了该重要数据不会因缓存在内存中而存在丢失风险,有效降低了数据的丢失率,此外,将其他非重要埋点采集到的非重要数据在后续缓存时直接使用内存缓存,如此,针对数据进行分级缓存还可以提高终端运行性能和数据统计效率。
进一步地,在一种可行的实施例中,上述步骤S10,可以包括:
步骤S101,将所述关键数据进行组装并和所述重要类型、所述一般类型或者所述非必要类型结合,以构建得到类型属性为重要消息、一般消息或者非必要消息的消息数据。
需要说明的是,在本实施例中,在终端设备基于数据统计架构-SDK的SDK API收集到关键数据以后,需要在SDK内部封装成Payload和Message,其中,payload有很多类型,例如KVPayload,KVPayload可以额外存储关键的Key-Value键值对,但是所有类型的payload都有如下成员变量:
1、sessionId:APP在最近一次进入前台时的时间戳(如果消息有相同的sessionId标识说明是一组关联消息);
2、timestamp:Payload产生时的时间戳;
3、messageId:消息的唯一标识,具体的生成规则是时间和设备相关的唯一标志
4、其他特定的有效内容,常见例如数据采集有KVPayload,那么关键数据就是Key和Value,其他类型的Payload用来存储不同的上报信息内容。
在Payload的基础上封装成消息(在下文称为Message),该Message的结构由以下成员变量组成:
1、payload:消息的关键数据;
2、type:描述消息的类型属性,该类型属性按照重要程度可以将消息简单分成三类,分别是重要消息Important、一般消息Info以及非必要消息Verbose。这其中,重要消息Important的丢失率最低、网络上报最及时、一般消息Info其次,而非必要消息Verbose的丢失率较大且网络上报最慢,此外,并且非必要消息Verbose不会自动上报,而是需要通过调用者在外部触发调用flush方法刷新API时才会进行网络上报;
3、commonInfos:其他附加公共数据,例如设备唯一识别号vendorId、用户关联信息userInfo、消息产生时网络信息netInfo等长时间不变或者变化极少的数据信息。
具体地,例如,终端设备在接收到调用者通过SDK API接口传入的关键数据以及该关键数据的数据类型(重要类型、一般类型或者非必要类型)之后,终端设备首先自动生成sessionId、timestamp、messageId以及其他特定的有效内容,从而将该关键数据组装成Payload,然后,将该Payload与数据类型-重要类型、一般类型或者非必要类型进行结合,从而得到对应类型属性为重要消息、一般消息或者非必要消息的消息-Message,并自动生成commonInfos。
步骤S20,检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;
终端设备在基于结合关键数据和关键数据的数据类型构建得到不同类型属性的消息数据之后,检测该消息数据的类型属性并基于该类型属性确定对应消息数据的缓存层级。
具体地,例如,终端设备在将接收到的关键数据组装成Payload,然后,将该Payload与数据类型-重要类型、一般类型或者非必要类型进行结合,从而得到对应类型属性为重要消息、一般消息或者非必要消息的消息-Message之后,终端设备进一步逐一检测各消息-Message的类型属性,从而确定后续在针对消息-Message进行缓存时,该类型属性分别为重要消息、一般消息以及非必要消息的消息-Message各自的缓存层级。
需要说明的是,在本实施例中,消息数据的缓存层级包括但不限于:内存缓存和数据库缓存,终端设备可以通过数据统计架构-SDK的开发者自主定义,确定类型属性为重要消息的消息数据的缓存层级为数据库缓存,并确定类型属性为一般消息和非必要消息数据的缓存层级为内存缓存。
步骤S30,按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;
终端设备在确定出消息数据的缓存层级之后,通过调用数据统计架构的内存缓存层中,该缓存层级对应的内存缓存管理者或者数据库缓存管理者,将该消息数据对应存储至终端设备的内存或者独立于内存的数据库当中,以针对该消息数据进行网络上报之前的缓存。
需要说明的是,在本实施例中,由于在后续数据统计架构将在基于网络上报服务将缓存的该消息数据上传后删除缓存的存储空间中的该消息数据,从而,此时,数据统计架构针对消息数据进行的缓存可以是临时性缓存或者也可以是永久性的驻存。
具体地,例如,在如图3所示的应用场景当中,终端设备在对关键数据进行封装得到Payload并在Payload的基础上结合数据类型(重要类型、一般类型或者非必要类型)构建得到不同类型属性的消息-Message,然后根据该消息-Message的类型属性(重要消息、一般消息或者非必要消息)确定其对应的缓存层级为数据库缓存或者为内存缓存之后,若该消息-Message的缓存层级为内存缓存,则终端设备通过调用数据统计框架的内存缓存层中的内存缓存管理者-Cache Manager,将该消息数据对应存储至终端设备的内存当中,或者,若消息数据的缓存层级为数据库缓存,则终端设备通过调用数据统计框架的内存缓存层中的数据库缓存管理者-DBManager,将该消息数据对应存储至终端设备的数据库当中。
进一步地,在一种可行的实施例当中,终端设备在将消息数据存储至对应的存储空间当中之后,还会同步在该存储空间当中针对所存储消息数据的数据量进行更新。
步骤S40,在所述存储空间中对所述消息数据进行批量上传并删除。
终端设备基于数据统计架构数据网络上报层中的数据上报服务,在检测到不同缓存层级对应的存储空间当中缓存的消息数据满足预设数据上报条件时,调用该数据上报服务将消息数据打包并上送至后台服务器以供后台服务器进行后续的数据统计,然后在将该消息数据上送至后台服务器成功之后,同步将存储空间当中缓存的该消息数据进行删除。
需要说明的是,在本实施例中,预设数据上报条件具体可以由数据统计架构的开发者预先自主进行定义,例如,定义终端设备的网络状态符合数据上报需求带宽,且存储空间中缓存的消息数据的数据量大于零时,即时对该存储空间当中的消息数据上送至后台服务器。
具体地,例如,终端设备通过周期性的轮询系统以检测网络状态,并在检测到网络状态符合数据上报需求带宽时,同步或者异步检测存储消息-Messages的内存以及数据库当中,消息-Messages的数据库量是否大于0,若是,则终端设备即时调用数据统计架构-SDK数据网络上报层执行数据上送服务的管理者-UploadManager,优先批量(如一次读取10条消息-Messages)读取数据库当中的消息-Messages,并对读取到的批量的消息-Messages进行打包封装并上送至后台服务器,然后在接收待该后台服务器针对上送的该批量的消息-Messages反馈的上送成功指令时,将数据库当中存储的该批量的消息-Messages进行删除。
终端设备在将数据库中缓存的消息-Messages全部上送至服务器当中之后,开始调用管理者-UploadManager批量(如一次读取10条消息-Messages)读取内存当中的消息-Messages,并对读取到的批量的消息-Messages进行打包封装并上送至后台服务器由该后台服务器进行消息-Messages的统计,然后在接收待该后台服务器针对上送的该批量的消息-Messages反馈的上送成功指令时,将内存当中存储的该批量的消息-Messages进行删除。
进一步地,在一种可行的实施例中,终端设备在将存储空间当中的消息数据成功上送至后台服务器并对该存储空间当中相同的消息数据进行删除之后,终端设备同步针对该存储空间当中存储的消息数据的数据量进行更新。
本发明实施例提供一种基于多级缓存的数据统计方法,通过终端设备通过数据统计架构的数据采集模块采集到关键数据以及该关键数据的数据类型之后,将该关键数据和数据类型进行结合从而构建得到不同类型属性的消息数据;检测该消息数据的类型属性并基于该类型属性确定对应消息数据的缓存层级;调用数据统计架构的内存缓存层中,该缓存层级对应的内存缓存管理者或者数据库缓存管理者,将该消息数据对应存储至终端设备的内存或者独立于内存的数据库当中,以针对该消息数据进行网络上报之前的缓存;基于数据统计架构数据网络上报层中的数据上报服务,在检测到不同缓存层级对应的存储空间当中缓存的消息数据满足预设数据上报条件时,调用该数据上报服务将消息数据打包并上送至后台服务器,然后在将该消息数据上送至后台服务器成功之后,同步将存储空间当中缓存的该消息数据进行删除。
本发明基于数据的类型对构建得到消息数据从而对消息数据进行分级,然后基于不同级别消息数据的类型属性确定该消息数据的缓存层级,并按照确定的缓存层级将消息数据存储至对应缓存级别的内存或者数据库当中,实现了针对消息数据的多级缓存,将重要数据存储在缓存层级高的数据库中,然后在针对消息数据进行上报时,优先上报缓存级别高的数据库当中缓存的消息数据,有效的降低了重要数据的丢失率。
此外,本发明通过在不同缓存层级所对应存储空间当中,批量的对消息数据进行上传,避免了数据对终端存储空间的大量和长时间占用,保证了终端运行性能。
进一步的,基于上述第一实施例,提出本发明基于多级缓存的数据统计方法的第二实施例,在本实施例中,不同属性类型的消息数据各自对应的缓存层级包括但不限于内存缓存和数据库缓存。步骤S20,检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级,可以包括:
步骤S201,检测所述消息数据的类型属性是否为重要消息、一般消息或者非必要消息;
步骤S202,若检测到所述类型属性为重要消息,则确定所述消息数据对应的缓存层级为数据库缓存;
终端设备在构建得到不同类型属性的消息数据之后,检测该消息数据的类型属性是否为重要消息,一般消息或者为非必要消息,若终端设备检测到该消息数据的类型属性为重要消息,为了降低消息数据的丢失率,确保重要消息不被丢失考虑,确定该消息数据对应的换成层级为数据库缓存,以便于后续针对该类型属性为重要消息的消息数据进行缓存时,会将该消息数据存储在独立于终端设备内存的数据库当中。
步骤S203,若检测到所述类型属性为一般消息或者为非必要消息,则确定所述消息数据对应的缓存层级为内存缓存。
终端设备在检测该消息数据的类型属性是否为重要消息,一般消息或者为非必要消息时,若终端设备检测到该消息数据的类型属性为一般消息或者为非必要消息,则直接确定该消息数据对应的换成层级为内存缓存,并在后续针对该类型属性为一般消息或者为非必要消息的消息数据进行缓存时,直接将该消息数据存储在终端设备内存当中。
进一步地,在一种可行的实施例中,上述步骤S30按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存,可以包括:
步骤S301,若检测到所述消息数据的缓存层级为数据库缓存,则基于所述消息数据生成重要消息上传任务;
步骤S302,执行所述重要消息上传任务将所述消息数据存储至数据库中并对所述数据库中的消息数据量进行更新;
终端设备在针对消息数据进行缓存时,若检测到该消息数据对应缓存层级为数据库缓存,则终端设备随即调用数据统计架构中的数据库缓存管理者,生成该消息数据的重要消息上传任务。
终端设备通过数据库缓存管理者执行该重要消息上传任务,以将该消息数据直接写入到独立于终端设备内存的数据库中进行缓存,并在该数据库当中针对存储的消息数据的数据量进行更新。
需要说明的是,在本实施例中,由于本实施例提出数据统计架构针对消息数据存在内存缓存和数据库缓存两种缓存方式,因此,终端设备在针对构建得到的消息数据进行缓存之前,需要先检测已经确定的该消息数据各自对应的缓存层级。
具体地,例如,终端设备在构建得到消息-Message以后,调用数据统计架构-SDK数据缓存层中的内存缓存管理者-CacheManager的消息数据增加缓存方法(addMessage),该方法会构造一个缓存任务-CacheOperation的可执行块,然后直接将该缓存任务-CacheOperation的可执行块使用异步添加至任务队列的方法-dispatch_async添加到缓存任务队列-CacheOperationQueue中进行异步执行。缓存任务-CacheOperation的可执行代码块逻辑是执行添加缓存-addCache和处理缓存-processCache两个方法,其中,添加缓存-addCache方法的处理逻辑为:
1、首先判断缓存任务-CacheOperation的可执行块加入的消息-Message的类型属性;
2、判断到该类型属性是重要消息important,即该消息-Message是重要消息,则需要完全保证该消息-Message极低的丢失率,因此针对该消息-Message进行数据库缓存,从而,终端设备会直接调用数据库缓存管理者DBManger的增加单条消息数据-addSimple方法,通过该addSimple方法将消息-Message直接写入数据库中进行数据库缓存,并同时构造创建一个重要消息任务-ImportantOperation的可执行代码块,并将该可执行代码块发送给数据统计架构-SDK中执行数据上报服务的管理者-UploadManager,以便于该UploadManager将消息-Message上传至后台服务器。
需要说明的是,在本实施例中,数据库缓存管理者DBManager中会存储单条消息数据simple和消息组Group两大类的消息数据,该simple和Group分别对应的是单条的消息-Message和消息组-MessageGroup,数据库缓存管理者DBManager的对外功能API分别是添加、查询和删除对应的内容,且数据库缓存管理者DBManager还有两个成员变量单条消息数据条数simpleCount和消息组条数groupCount,用于分别存储单条消息数据simple和消息组Group两种消息数据在数据库中的数据量,数据库缓存管理者DBManager在每次添加和删除消息数据时都需要更新对应单条消息数据simple和消息组Group的数据数量单条消息数据条数simpleCount和消息组条数groupCount。
步骤S303,若检测到所述消息数据的缓存层级为内存缓存,则将所述消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新。
终端设备在针对消息数据进行缓存时,若检测到该消息数据对应缓存层级为内存缓存,则终端设备随即调用数据统计架构中的内存缓存管理者,直接将该消息数据添加至设置在终端设备内存当中,与该消息数据的类型属性对应的缓存队列当中,然后针对终端设备内存中存储消息数据的数据量进行更新。
需要说明的是,在本实施例中,数据统计架构SDK数据缓存层中的内存缓存管理者CacheManager缓存模块的接口,内存缓存管理者CacheManager使用异步的方式对传入的消息-Message进行处理。内存缓存管理者CacheManager内部由两个缓存队列构成,该两个缓存队列分别是infoQueue(一般消息缓存队列)和verboseQueue(非必要消息缓存队列),该两个缓存队列分别用来缓存属性类型是一般消息-info和非必要消息-verbose的消息-Message,此外,内存缓存管理者CacheManager拥有两个属性的一般消息数据条数infoCount和非必要消息数据条数verboseCount,用于分别记录两个缓存队列一般消息缓存队列infoQueue和非必要消息缓存队列verboseQueue中存储管理的消息-Message数量;而且,内存缓存管理者CacheManager的内部还拥有一个缓存任务队列CacheOperationQueue,这是一个NSOperationQueue(基于IOS系统的任务队列)的对象,缓存任务队列CacheOperationQueue是一个顺序执行的队列用于执行缓存任务CacheOperation的可执行代码块;内存缓存管理者CacheManager拥有消息数据增加缓存addMessage,增加缓存任务addCache和处理缓存任务processCache和清理缓存任务flushCache等方法。
具体地,例如,终端设备通过在调用内存缓存管理者CacheManager针对缓存层级为内存缓存的消息-Message进行缓存时,若内存缓存管理者CacheManager检测到该消息-Message的类型属性为一般消息-info,则该内存缓存管理者CacheManager调用一般消息队列infoQueue的增加目标addObject将该消息-Message添加到一般消息队列infoQueue的队列尾部,并更新一般消息数据条数infoCount的数量(加一);或者,若内存缓存管理者CacheManager检测到该消息-Message的类型属性为非必要消息-verbose,则该内存缓存管理者CacheManager调用非必要消息队列verboseQueue的增加目标addObject将消息-Message添加到非必要消息队列verboseQueue的队尾然后更新非必要消息数据条数verboseCount的数量(加一)。
进一步地,在另一种可行的实施例中,在上述步骤S303之后,本发明基于多级缓存的数据统计方法,还可以包括:
步骤S304,在检测到所述一般消息数据量超过预设批量数据组装阈值时,提取类型属性为一般消息的消息数据的公共参数;
步骤S305,将所述公共参数格式化成为消息组,并基于所述消息组生成重要消息上传任务;
步骤S306,执行所述重要消息上传任务将所述消息组存储至数据库中并对所述数据库中的消息组数据量进行更新。
终端设备在将消息数据添加至设置在终端设备内存当中与该消息数据的类型属性对应的缓存队列当中,并针对终端设备内存中存储消息数据的数据量进行更新之后,终端设备检测内存中存储的一般消息的数据量,并在检测到该一般消息的数据量大于预设批量数据组装阈值时,提取数量为预设批量数据组装阈值的一组一般消息,并提取该组一般消息的公共参数,将该公共参数格式成为消息组之后,生成重要消息上传任务并执行,以将该消息组按照重要消息的缓存层级存储至数据库当中,在上传该消息组成功之后,针对数据库中存储的消息组的数据量进行更新。
需要说明的是,在本实施例中,预设批量数据组装阈值可以基于数据统计框架的开发者基于实际应用的设计需要,自主定义该预设批量数据组装阈值的具体数据,例如设置为threshold1。
具体地,例如,终端设备通过在调用内存缓存管理者CacheManager针对缓存层级为内存缓存的消息-Message进行缓存之后,内存缓存管理者CacheManager基于处理缓存任务processCache方法检测终端设备内存当中存储的类型属性为一般消息的消息-Message的数据量大小(即一般消息条数infoCount),并判断该一般消息条数infoCount是否大于批量数据组装阈值-threshold1,如果该一般消息条数infoCount大于或者等于threshold1,则内存缓存管理者CacheManager从一般消息队列infoQueue自队首开始读取并且删除threshold1数量的消息-Message,然后针对读取到的这一组消息-Message提取公共参数,然后将该公共参数格式化成一个称为MessageGroup的消息组,将该消息组MessageGroup写入到数据库中并在执行数据上送服务的管理者-UploadManager上传模块中增加一般消息上传任务infoUploadOperation的可执行代码块。
此外,若是内存缓存管理者CacheManager判断到该一般消息条数infoCount小于threshold1,或者在内存缓存管理者CacheManager将消息组MessageGroup写入到数据库中并在执行数据上送服务的管理者-UploadManager上传模块中增加一般消息上传任务infoUploadOperation的可执行代码块之后,内存缓存管理者CacheManager进一步判断类型属性为非必要消息的消息-Message的数据量-非必要消息条数verboseCount是否大于丢失阈值-threashold2,如果非必要消息条数verboseCount大于threashold2,则内存缓存管理者CacheManager直接删除非必要消息队列verboseQueue中首部的消息-Message。
在本实施例中,通过检测消息数据的类型属性是否为重要消息、一般消息或者非必要消息;若检测到类型属性为重要消息,则确定消息数据对应的缓存层级为数据库缓存;若检测到类型属性为一般消息或者为非必要消息,则确定消息数据对应的缓存层级为内存缓存。
针对消息数据的数据库缓存或者内存缓存,检测到消息数据的缓存层级为数据库缓存,则基于消息数据生成重要消息上传任务;执行重要消息上传任务将消息数据存储至数据库中并对数据库中的消息数据量进行更新;或者,若检测到消息数据的缓存层级为内存缓存,则将消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新。
在将消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新之后,要是检测到一般消息数据量超过预设批量数据组装阈值,则提取类型属性为一般消息的消息数据的公共参数;将公共参数格式化成为消息组,并基于消息组生成重要消息上传任务;执行重要消息上传任务以将消息组存储至数据库中并对数据库中的消息组数据量进行更新。
实现了针对消息数据的多级缓存,将重要数据存储在缓存层级高的数据库中,有效的降低了重要数据的丢失率,且通过提取内存中一般消息数据的公共参数,以将该公共参数存储至数据库并对应删除内存中的原一般消息数据,以及针对超过丢失阈值的非必要消息数据进行丢失处理,实现了针对不同重要级别的消息数据进行不同的丢失策略,从而在保证了数据丢失率的前提下,进一步避免了内存被大量和长时间占用而严重影响运行的问题,提高了终端设备的运行性能。
进一步的,基于上述第一实施例,提出本发明基于多级缓存的数据统计方法的第三实施例,在本实施例中,上述步骤S40,在所述存储空间中对所述消息数据进行批量上传并删除,可以包括:
步骤S401,在所述消息数据对应的存储空间中分别读取目标消息数据,其中,所述目标消息数据的数量大于或者等于一;
步骤S402,将所述目标消息数据打包封装后同步上传至预设后台接口,并在上传成功后删除所述存储空间中的所述目标消息数据。
终端设备在将消息数据缓存在缓存层级为内存缓存所对应的终端设备内存,或者存储在缓存层级为数据库缓存所对应的数据库当中之后,终端设备通过调用数据统计框架数据网络上报层中执行数据上报服务的管理者,首先在数据库中读取预设数量的目标消息数据,然后针对读取到的消息数据进行打包封装处理并同步上传至预设后台接口,已通过该预设后台接口将消息数据上送至后台服务器,最后,终端设备在接收到该后台服务器所反馈的消息数据上送成功的指令之后,对读取的该数据库当中存储的目标消息数据进行删除。
在数据库中的消息数据全部上传预设后台接口以完成上送至后台服务器之后,执行数据上报服务的管理者进一步批量读取终端设备内存当中的消息数据,并按照同样的方式将该终端设备内存当中存储的消息数据上送至后台服务器,并在上送成功之后,同步删除该终端设备内存当中存储的消息数据。
需要说明的是,在本实施例中,数据统计框架数据SDK网络上报层中执行数据上报服务的管理者UploadManager包括两个关键的属性,该属性分别是单条消息数据条数simpleCount和消息组条数groupCount,以分别表示数据库中当前存储的单条消息数据simple和消息组group Message的数量。
除此之外,该执行数据上报服务的管理者UploadManager还有两个关键的方法:初始化init和增加上传任务addOperation方法。其中,初始化init方法需要在整个数据统计架构-SDK启动的时候调用,该初始化init方法通过查询终端设备数据库中单条消息数据simple和消息组group Message,并给单条消息数据条数simpleCount和消息组条数groupCount赋值;且该初始化init方法的内部会维护一个消息上传任务队列UploadOperationQueue,消息上传任务队列UploadOperationQueue是一个NSOperationQueue的子类对象,如果有消息任务Operation对象添加到消息上传任务队列UploadOperationQueue,该消息任务Operation的可执行代码块会异步按照添加顺序在子线程中执行。此外,增加上传任务addOpertaion方法是向消息上传任务队列UploadOperationQueue中添加可执行任务,并且在添加可执行任务之前,该增加上传任务addOpertaion方法会先判断是否有同类型的任务正在等待执行,如果有则不添加任务进入消息上传任务队列UploadOperationQueue中。
具体地,例如,请参照如图4(a)所示的可执行任务-重要消息上传任务ImportantUploadOperation的应用场景,终端设备通过调用执行数据上报服务的管理者UploadManager执行该可执行任务-重要消息上传任务ImportantUploadOperation先判断终端设备的网络状态,如果网络状态符合网络上传的需求带宽(不符合则直接返回),则再判断单条消息数据条数simpleCount是否大于0,若单条消息数据条数simpleCount大于0则调用数据库缓存管理者DBMananger的询问单条消息数据querySimples方法,一次最多读取10条单条消息数据simple消息-Message(若单条消息数据条数simpleCount等于0则直接返回,或者,单条消息数据simple消息-Message不足10条时全部读取);然后,对读取的消息-Message进行打包封装并同步使用网络上传服务将打包结果发送到对应的后台接口以上送至后台服务器,如果接收到后台服务器反馈的数据上送成功指令,则在数据库中删除已经上送成功的消息-Messages并修改单条消息数据条数simpleCount;最后,继续调用增加上传任务addOperation方法,向消息上传任务队列uploadOperationQueue中增加重要消息上传任务importantUploadOperation以循环执行直至单条消息数据simple消息-Message全部被上送至后台服务器。
此外,请参照如图4(a)所示的可执行任务-一般消息上传任务InfoUploadOperation的应用场景,终端设备通过调用执行数据上报服务的管理者UploadManager执行该可执行任务-一般消息上传任务InfoUploadOperation先判断终端设备的网络状态,如果网络状态符合网络上传的需求带宽(不符合则直接返回),则再判断消息组条数groupCount是否大于0,若消息组条数groupCount大于0则调用数据库缓存管理者DBMananger的询问单条消息数据querySimples方法,读取最旧(基于时间戳判断)的消息组-MessageGroup并同步使用网络上传服务将该消息组-MessageGroup发送到对应的后台接口以上送至后台服务器,如果接收到后台服务器反馈的数据上送成功指令,则在数据库中删除已经上送成功的消息组-MessageGroup并修改消息组条数groupCount;最后,继续调用增加上传任务addOperation方法,向消息上传任务队列uploadOperationQueue中增加一般消息上传任务infoUploadOperation以循环执行直至消息组-MessageGroup全部被上送至后台服务器。
此外,在本实施例中,终端设备还通过调用清理flush方法在执行数据上报服务的管理者UploadManager中添加一个非必要消息上传任务verboseUploadOperation的可执行代码块,从而执行数据上报服务的管理者UploadManager先判断终端设备的网络状态,如果网络状态符合网络上传的需求带宽(不符合则直接返回),直接从内存缓存管理者CacheManager的非必要消息队列verboseQueue中读取全部的类型属性为非必要消息-verbose的消息-Message,然后对读取到的该消息-Message进行整合打包并将打包结果同步用网络上传服务发送到后台以上送至后台服务器,如果接收到后台服务器反馈的数据上送成功指令,则清空非必要消息队列verboseQueue中已经上传的消息-Message。
在本实施例中,通过终端设备在将消息数据缓存在缓存层级为内存缓存所对应的终端设备内存,或者存储在缓存层级为数据库缓存所对应的数据库当中之后,终端设备通过调用数据统计框架数据网络上报层中执行数据上报服务的管理者,首先在数据库中读取预设数量的目标消息数据,然后针对读取到的消息数据进行打包封装处理并同步上传至预设后台接口,已通过该预设后台接口将消息数据上送至后台服务器,最后,终端设备在接收到该后台服务器所反馈的消息数据上送成功的指令之后,对读取的该数据库当中存储的目标消息数据进行删除。如此,实现了按照消息数据的重要程度,优先上传重要数据,并且,在数据上传成功以后才删除缓存的原消息数据,能够避免数据的丢失风险,有效的降低了数据丢失率;此外,针对不同类型的数据整合打包还能够提升数据发送的整体效率。
本发明还提供一种基于多级缓存的数据统计装置。
请参照图6,图6为本发明基于多级缓存的数据统计装置一实施例的功能模块示意图。如图6所示,所述基于多级缓存的数据统计装置包括:
构建模块10,用于根据采集到的关键数据和所述关键数据的数据类型构建消息数据;
确定模块20,用于检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;
缓存模块30,用于按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;
上传模块40,用于在所述存储空间中对所述消息数据进行批量上传并删除。
进一步地,本发明基于多级缓存的数据统计装置还包括:
采集模块,用于基于预设应用程序接口收集关键数据和所述关键数据的数据类型;或者,用于基于预设数据埋点采集关键数据并检测所述预设数据埋点的重要程度,根据所述重要程度确定所述关键数据的数据类型。
进一步地,所述数据类型包括:重要类型、一般类型和非必要类型,构建模块10,还用于将所述关键数据进行组装并和所述重要类型、所述一般类型或者所述非必要类型结合,以构建得到类型属性为重要消息、一般消息或者非必要消息的消息数据。
进一步地,所述缓存层级包括:内存缓存和数据库缓存,确定模块20包括:
第一确定单元,用于若检测到所述类型属性为重要消息,则确定所述消息数据对应的缓存层级为数据库缓存;
第二确定单元,用于若检测到所述类型属性为一般消息或者为非必要消息,则确定所述消息数据对应的缓存层级为内存缓存。
进一步地,缓存模块30包括:
第一任务生成单元,用于若检测到所述消息数据的缓存层级为数据库缓存,则基于所述消息数据生成重要消息上传任务;
数据库缓存单元,用于执行所述重要消息上传任务将所述消息数据存储至数据库中并对所述数据库中的消息数据量进行更新;
内存缓存单元,用于若检测到所述消息数据的缓存层级为内存缓存,则将所述消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新。
进一步地,所述内存中的消息数据量包括:一般消息数据量,缓存模块30还包括:
参数提取单元,用于在检测到所述一般消息数据量超过预设批量数据组装阈值时,提取类型属性为一般消息的消息数据的公共参数;
第二任务生成单元,用于将所述公共参数格式化成为消息组,并基于所述消息组生成重要消息上传任务;
缓存更新单元,用于执行所述重要消息上传任务将所述消息组存储至数据库中并对所述数据库中的消息组数据量进行更新。
进一步地,上传模块40包括:
读取单元,用于在所述消息数据对应的存储空间中分别读取目标消息数据,其中,所述目标消息数据的数量大于或者等于一;
上送单元,用于将所述目标消息数据打包封装后同步上传至预设后台接口,并在上传成功后删除所述存储空间中的所述目标消息数据。
其中,上述基于多级缓存的数据统计装置中各个模块的功能实现与上述基于多级缓存的数据统计方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机存储介质,该计算机存储介质上存储有基于多级缓存的数据统计程序,所述基于多级缓存的数据统计程序被处理器执行时实现如以上任一项实施例所述的基于多级缓存的数据统计方法的步骤。
本发明计算机存储介质的具体实施例与上述基于多级缓存的数据统计方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于多级缓存的数据统计方法,其特征在于,所述基于多级缓存的数据统计方法包括:
根据采集到的关键数据和所述关键数据的数据类型构建消息数据;
检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;
按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;
在所述存储空间中对所述消息数据进行批量上传并删除。
2.如权利要求1所述的基于多级缓存的数据统计方法,其特征在于,在所述根据采集到的关键数据和所述关键数据的数据类型构建消息数据的步骤之前,还包括:
基于预设应用程序接口收集关键数据和所述关键数据的数据类型;
或者,基于预设数据埋点采集关键数据并检测所述预设数据埋点的重要程度,根据所述重要程度确定所述关键数据的数据类型。
3.如权利要求1所述的基于多级缓存的数据统计方法,其特征在于,所述数据类型包括:重要类型、一般类型和非必要类型,
所述根据采集到的关键数据和所述关键数据的数据类型构建消息数据的步骤包括:
将所述关键数据进行组装并和所述重要类型、所述一般类型或者所述非必要类型结合,以构建得到类型属性为重要消息、一般消息或者非必要消息的消息数据。
4.如权利要求1所述的基于多级缓存的数据统计方法,其特征在于,所述缓存层级包括:内存缓存和数据库缓存,
所述检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级的步骤包括:
检测所述消息数据的类型属性是否为重要消息、一般消息或者非必要消息;
若检测到所述类型属性为重要消息,则确定所述消息数据对应的缓存层级为数据库缓存;
若检测到所述类型属性为一般消息或者为非必要消息,则确定所述消息数据对应的缓存层级为内存缓存。
5.如权利要求4所述的基于多级缓存的数据统计方法,其特征在于,所述按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存的步骤包括:
若检测到所述消息数据的缓存层级为数据库缓存,则基于所述消息数据生成重要消息上传任务;
执行所述重要消息上传任务将所述消息数据存储至数据库中并对所述数据库中的消息数据量进行更新;
或者,若检测到所述消息数据的缓存层级为内存缓存,则将所述消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新。
6.如权利要求5所述的基于多级缓存的数据统计方法,其特征在于,所述内存中的消息数据量包括:一般消息数据量,
在所述将所述消息数据添加至对应的缓存队列并对内存中的消息数据量进行更新的步骤之后,还包括:
在检测到所述一般消息数据量超过预设批量数据组装阈值时,提取类型属性为一般消息的消息数据的公共参数;
将所述公共参数格式化成为消息组,并基于所述消息组生成重要消息上传任务;
执行所述重要消息上传任务将所述消息组存储至数据库中并对所述数据库中的消息组数据量进行更新。
7.如权利要求1-6任一项所述的基于多级缓存的数据统计方法,其特征在于,所述在所述存储空间中对所述消息数据进行批量上传并删除的步骤包括:
在所述消息数据对应的存储空间中分别读取目标消息数据,其中,所述目标消息数据的数量大于或者等于一;
将所述目标消息数据打包封装后同步上传至预设后台接口,并在上传成功后删除所述存储空间中的所述目标消息数据。
8.一种基于多级缓存的数据统计装置,其特征在于,所述基于多级缓存的数据统计装置包括:
构建模块,用于根据采集到的关键数据和所述关键数据的数据类型构建消息数据;
确定模块,用于检测所述消息数据的类型属性,并基于所述类型属性确定所述消息数据对应的缓存层级;
缓存模块,用于按照所述缓存层级将所述消息数据添加至对应的存储空间进行缓存;
上传模块,用于在所述存储空间中对所述消息数据进行批量上传并删除。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于多级缓存的数据统计程序,所述基于多级缓存的数据统计程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于多级缓存的数据统计方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有基于多级缓存的数据统计程序,所述基于多级缓存的数据统计程序被处理器执行时实现如权利要求1至7中任一项所述的基于多级缓存的数据统计方法的步骤。
CN202010589637.4A 2020-06-24 2020-06-24 基于多级缓存的数据统计方法、装置、终端及存储介质 Pending CN111723115A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010589637.4A CN111723115A (zh) 2020-06-24 2020-06-24 基于多级缓存的数据统计方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010589637.4A CN111723115A (zh) 2020-06-24 2020-06-24 基于多级缓存的数据统计方法、装置、终端及存储介质

Publications (1)

Publication Number Publication Date
CN111723115A true CN111723115A (zh) 2020-09-29

Family

ID=72568727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010589637.4A Pending CN111723115A (zh) 2020-06-24 2020-06-24 基于多级缓存的数据统计方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN111723115A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114595117A (zh) * 2022-03-07 2022-06-07 北京思明启创科技有限公司 埋点数据采集方法、装置、介质及电子设备
CN114640904A (zh) * 2022-05-17 2022-06-17 杭州芝兰健康有限公司 一种数据传输方法以及用药监测系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439934A (zh) * 2011-01-24 2012-05-02 华为技术有限公司 一种cdn中边缘服务器的多级缓存管理方法与系统
CN102508789A (zh) * 2011-10-14 2012-06-20 浪潮电子信息产业股份有限公司 一种系统分级存储的方法
CN104951410A (zh) * 2014-03-27 2015-09-30 北京兆易创新科技股份有限公司 一种芯片信息的访问方法和装置
WO2016107339A1 (zh) * 2014-12-30 2016-07-07 北京奇虎科技有限公司 一种批量发送消息的方法和装置
JP5992592B1 (ja) * 2015-09-16 2016-09-14 株式会社東芝 キャッシュメモリシステム
CN107608627A (zh) * 2017-08-21 2018-01-19 云宏信息科技股份有限公司 一种远端数据分级存储方法、电子设备及存储介质
CN109215170A (zh) * 2017-07-04 2019-01-15 百度在线网络技术(北京)有限公司 行车数据的存储方法、装置和设备
CN109614347A (zh) * 2018-10-22 2019-04-12 中国平安人寿保险股份有限公司 多级缓存数据的处理方法、装置、存储介质及服务器
CN109947367A (zh) * 2019-03-15 2019-06-28 维沃移动通信有限公司 一种文件的处理方法及终端
CN110750494A (zh) * 2019-09-06 2020-02-04 浙江无极互联科技有限公司 一种计算机领域中文件的分级存储系统
CN111131084A (zh) * 2019-12-06 2020-05-08 湖南工程学院 一种QoS感知的OpenFlow流表分级存储架构及应用
CN111177166A (zh) * 2019-12-25 2020-05-19 山东公链信息科技有限公司 一种基于多源数据的区块链存储方法和系统
CN111263934A (zh) * 2017-10-23 2020-06-09 超威半导体公司 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439934A (zh) * 2011-01-24 2012-05-02 华为技术有限公司 一种cdn中边缘服务器的多级缓存管理方法与系统
CN102508789A (zh) * 2011-10-14 2012-06-20 浪潮电子信息产业股份有限公司 一种系统分级存储的方法
CN104951410A (zh) * 2014-03-27 2015-09-30 北京兆易创新科技股份有限公司 一种芯片信息的访问方法和装置
WO2016107339A1 (zh) * 2014-12-30 2016-07-07 北京奇虎科技有限公司 一种批量发送消息的方法和装置
JP5992592B1 (ja) * 2015-09-16 2016-09-14 株式会社東芝 キャッシュメモリシステム
CN109215170A (zh) * 2017-07-04 2019-01-15 百度在线网络技术(北京)有限公司 行车数据的存储方法、装置和设备
CN107608627A (zh) * 2017-08-21 2018-01-19 云宏信息科技股份有限公司 一种远端数据分级存储方法、电子设备及存储介质
CN111263934A (zh) * 2017-10-23 2020-06-09 超威半导体公司 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略
CN109614347A (zh) * 2018-10-22 2019-04-12 中国平安人寿保险股份有限公司 多级缓存数据的处理方法、装置、存储介质及服务器
CN109947367A (zh) * 2019-03-15 2019-06-28 维沃移动通信有限公司 一种文件的处理方法及终端
CN110750494A (zh) * 2019-09-06 2020-02-04 浙江无极互联科技有限公司 一种计算机领域中文件的分级存储系统
CN111131084A (zh) * 2019-12-06 2020-05-08 湖南工程学院 一种QoS感知的OpenFlow流表分级存储架构及应用
CN111177166A (zh) * 2019-12-25 2020-05-19 山东公链信息科技有限公司 一种基于多源数据的区块链存储方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李志昌,谢刚生: "采用多级缓存消息数据方法的国土资源移动执法监察系统", 《测绘通报》, no. 3, 25 March 2013 (2013-03-25), pages 102 - 105 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114595117A (zh) * 2022-03-07 2022-06-07 北京思明启创科技有限公司 埋点数据采集方法、装置、介质及电子设备
CN114640904A (zh) * 2022-05-17 2022-06-17 杭州芝兰健康有限公司 一种数据传输方法以及用药监测系统

Similar Documents

Publication Publication Date Title
US20200285514A1 (en) Automated reconfiguration of real time data stream processing
US11573725B2 (en) Object migration method, device, and system
CN107786623B (zh) 消息异步处理方法和装置
CN111723115A (zh) 基于多级缓存的数据统计方法、装置、终端及存储介质
CN109525495B (zh) 一种数据处理装置、方法和fpga板卡
US20190095385A1 (en) Method for Recognizing Infrequently-Used Data and Terminal
CN109039817B (zh) 一种用于流量监控的信息处理方法、装置、设备及介质
CN108415962A (zh) 一种云存储系统
CN101217449B (zh) 远程调用管理方法
CN113656357A (zh) 文件管理方法、装置、系统及存储介质
CN112069195A (zh) 基于数据库的消息传输方法、装置、电子设备及存储介质
US20240129251A1 (en) Data processing method and apparatus, computer device, and readable storage medium
CN112688885B (zh) 一种报文处理方法及装置
CN114020529A (zh) 一种流表数据的备份方法、装置、网络设备和存储介质
CN113157609A (zh) 存储系统、数据处理方法、装置、电子设备及存储介质
CN112347355A (zh) 数据处理方法、装置、服务器及存储介质
CN113296987B (zh) 调用模块的接口调用方法、装置、计算机设备及存储介质
WO2021139044A1 (zh) 一种基于时间窗口的资源处理方法、装置、介质以及系统
CN112099736A (zh) 数据存储方法、装置、电子设备及存储介质
CN113572854B (zh) 基于Kafka组件的数据传输方法及系统
CN117573397B (zh) 内存优化方法、系统和存储介质
CN115604667B (zh) 消息发送方法、装置、计算机设备和存储介质
CN114448976B (zh) 网络报文的组装方法、装置、设备、介质和程序产品
WO2023201638A1 (zh) 文件的操作方法、装置、计算机设备和可读存储介质
CN115587390B (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