数据查询、存储方法及系统技术方案

技术编号:23401258 阅读:30 留言:0更新日期:2020-02-22 13:24
本申请公开了一种数据查询、存储方法及系统。数据存储方法包括:当约定事件被触发时,从存储设备读取一个位图,其中,每一个所述位图用于存储一段时间内所述约定事件被触发的信息,所述位图中每一个比特位对应在一个约定时间所述约定事件是否被触发;根据所述约定事件被触发的时间计算需要操作的比特位在所述位图中的位置,将所述位图中该位置的比特位设置为代表所述约定事件被触发的值;将修改后的位图写回所述存储设备,替换修改前的位图。

Data query, storage method and system

【技术实现步骤摘要】
数据查询、存储方法及系统
本说明书涉及计算机数据存储技术。
技术介绍
目前,为了提高商品的日活动量,增强用户粘度,经常遇到以下应用场景:商户需要统计用户连续执行某个动作的信息,然后根据统计信息制定不同的策略进行推广或营销。比如:根据用户连续登录的次数赠送不同数量的积分,用户连续登录7天可获取Vip试用权限,用户连续签到10天可获取某产品的折扣券等等。然而,在传统的方案中,一次打卡记录对应一条数据(例如数据库中的一条记录,或日志文件中的一行数据),这条数据包括打卡人的标识、打卡时间等信息,导致数据量较大,不但浪费存储空间,同时还导致查询时加载数据过多,查询效率下降,并发吞吐降低。
技术实现思路
本说明书提供了一种数据查询、存储方法及系统,能够节省存储空间,减少延迟,提高查询的效率。本申请公开了一种数据存储方法,包括:当约定事件被触发时,从存储设备读取一个位图,其中,每一个所述位图用于存储一段时间内所述约定事件被触发的信息,所述位图中每一个比特位对应在一个约定时间所述约定事件是否被触发;根据所述约定事件被触发的时间计算需要操作的比特位在所述位图中的位置,将所述位图中该位置的比特位设置为代表所述约定事件被触发的值;将修改后的位图写回所述存储设备,替换修改前的位图。在一个优选例中,所述约定事件是登录操作或打卡操作。在一个优选例中,所述存储设备是数据库服务器或文件存储服务器。在一个优选例中,所述当约定事件被触发时,从存储设备读取一个位图,进一步包括:指定接口被业务系统调用,该业务系统向该接口传入所述约定事件被触发的触发时间和该约定事件对应的执行主体的主体标识;根据所述主体标识在所述存储设备中查询属于所述执行主体并在时间上覆盖所述触发时间的位图,并加载该位图。本申请还公开了一种数据查询方法包括:根据查询条件,从存储设备获取一个或多个位图;将每一个所述位图解析成一段时间内约定事件被触发的信息,保存在约定的数据结构中,其中,所述位图中每一个比特位的位置被解析为所述约定事件被触发的触发时间,所述位图中每一个比特位的值被解析为在对应触发时间上所述约定事件是否被触发;对所述数据结构中的数据进行查询,返回查询结果。在一个优选例中,所述数据结构是树集合。在一个优选例中,所述对所述数据结构中的数据进行查询,进一步包括:通过对所述树集合的遍历,统计所述约定事件在所述查询条件限定的时间段内被触发的次数。在一个优选例中,所述对所述数据结构中的数据进行查询,进一步包括:通过对所述树集合的遍历,统计所述约定事件在所述查询条件限定的时间段内最长连续被触发的次数和对应触发时间。本申请还公开了一种数据存储系统包括:读取模块,用于当约定事件被触发时从存储设备读取一个位图,其中,每一个所述位图用于存储一段时间内所述约定事件被触发的信息,所述位图中每一个比特位对应在一个约定时间所述约定事件是否被触发;修改模块,用于根据所述约定事件被触发的时间计算需要操作的比特位在所述位图中的位置,将所述位图中该位置的比特位设置为代表所述约定事件被触发的值;存储模块,用于将修改后的位图写回所述存储设备,替换修改前的位图。在一个优选例中,所述约定事件是登录操作或打卡操作。在一个优选例中,所述存储设备是数据库服务器或文件存储服务器。在一个优选例中,还包括:第一接口,用于被业务系统调用,接收该业务系统传入的所述约定事件被触发的触发时间和该约定事件对应的执行主体的主体标识;所述读取模块根据所述主体标识在所述存储设备中查询属于所述执行主体并在时间上覆盖所述触发时间的位图,并加载该位图。本申请还公开了一种数据查询系统包括:查询模块,用于根据查询条件从存储设备获取一个或多个位图;解析模块,用于将每一个所述位图解析成一段时间内约定事件被触发的信息,保存在约定的数据结构中,其中,所述位图中每一个比特位的位置被解析为所述约定事件被触发的触发时间,所述位图中每一个比特位的值被解析为在对应触发时间上所述约定事件是否被触发;反馈模块,用于对所述数据结构中的数据进行查询,返回查询结果。在一个优选例中,所述数据结构是树集合。在一个优选例中,所述反馈模块通过以下方式对所述数据结构中的数据进行查询:通过对所述树集合的遍历,统计所述约定事件在所述查询条件限定的时间段内被触发的次数。在一个优选例中,所述反馈模块通过以下方式对所述数据结构中的数据进行查询:通过对所述树集合的遍历,统计所述约定事件在所述查询条件限定的时间段内最长连续被触发的次数和对应触发时间。本申请还公开了一种数据存储系统包括:存储器,用于存储计算机可执行指令;以及,处理器,与所述存储器耦合,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。本申请还公开了一种数据查询系统包括:存储器,用于存储计算机可执行指令;以及,处理器,与所述存储器耦合,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。本申请还公开了一种计算机可读存储介质所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。本说明书的实施例的数据查询、存储方法及系统,能够节省存储空间,减少延迟,提高查询的效率。本说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本说明书上述
技术实现思路
中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。附图说明图1是根据本说明书第一实施方式的数据查询方法的流程示意图;图2是根据本说明书第二实施方式的数据存储方法的流程示意图;图3是根据本说明书第三实施方式的数据查询系统的结构示意图;图4是根据本说明书第四实施方式的数据存储系统的结构示意图;图5是根据本说明书第一实施方式的数据查询方法中的位图的示意图。具体实施方式在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术本文档来自技高网
...

【技术保护点】
1.一种数据存储方法,包括:/n当约定事件被触发时,从存储设备读取一个位图,其中,每一个所述位图用于存储一段时间内所述约定事件被触发的信息,所述位图中每一个比特位对应在一个约定时间所述约定事件是否被触发;/n根据所述约定事件被触发的时间计算需要操作的比特位在所述位图中的位置,将所述位图中该位置的比特位设置为代表所述约定事件被触发的值;/n将修改后的位图写回所述存储设备,替换修改前的位图。/n

【技术特征摘要】
1.一种数据存储方法,包括:
当约定事件被触发时,从存储设备读取一个位图,其中,每一个所述位图用于存储一段时间内所述约定事件被触发的信息,所述位图中每一个比特位对应在一个约定时间所述约定事件是否被触发;
根据所述约定事件被触发的时间计算需要操作的比特位在所述位图中的位置,将所述位图中该位置的比特位设置为代表所述约定事件被触发的值;
将修改后的位图写回所述存储设备,替换修改前的位图。


2.如权利要求1所述的数据存储方法,其中,所述约定事件是登录操作或打卡操作。


3.如权利要求1所述的数据存储方法,其中,所述存储设备是数据库服务器或文件存储服务器。


4.如权利要求1所述的数据存储方法,其中,所述当约定事件被触发时,从存储设备读取一个位图,进一步包括:
指定接口被业务系统调用,该业务系统向该接口传入所述约定事件被触发的触发时间和该约定事件对应的执行主体的主体标识;
根据所述主体标识在所述存储设备中查询属于所述执行主体并在时间上覆盖所述触发时间的位图,并加载该位图。


5.一种数据查询方法,包括:
根据查询条件,从存储设备获取一个或多个位图;
将每一个所述位图解析成一段时间内约定事件被触发的信息,保存在约定的数据结构中,其中,所述位图中每一个比特位的位置被解析为所述约定事件被触发的触发时间,所述位图中每一个比特位的值被解析为在对应触发时间上所述约定事件是否被触发;
对所述数据结构中的数据进行查询,返回查询结果。


6.如权利要求1所述的数据查询方法,其中,所述数据结构是树集合。


7.如权利要求6所述的数据查询方法,其中,所述对所述数据结构中的数据进行查询,进一步包括:
通过对所述树集合的遍历,统计所述约定事件在所述查询条件限定的时间段内被触发的次数。


8.如权利要求7所述的数据查询方法,其中,所述对所述数据结构中的数据进行查询,进一步包括:
通过对所述树集合的遍历,统计所述约定事件在所述查询条件限定的时间段内最长连续被触发的次数和对应触发时间。


9.一种数据存储系统,包括:
读取模块,用于当约定事件被触发时从存储设备读取一个位图,其中,每一个所述位图用于存储一段时间内所述约定事件被触发的信息,所述位图中每一个比特位对应在一个约定时间所述约定事件是否被触发;
修改模块,用于根据所述约定事件被触发的时间计算需要操作的比特位在所述位图中的位置,将所述位图中该位置的比特位设...

【专利技术属性】
技术研发人员:黄文华王帅周家英连文珑
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1