CN114090631A - 一种数据查询方法、装置、电子设备及存储介质 - Google Patents
一种数据查询方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114090631A CN114090631A CN202111289007.6A CN202111289007A CN114090631A CN 114090631 A CN114090631 A CN 114090631A CN 202111289007 A CN202111289007 A CN 202111289007A CN 114090631 A CN114090631 A CN 114090631A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- offline
- stored
- target
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、电子设备及存储介质,用以解决查询效率低,以及无法快速查询获得查询结果的问题,接收目标对象触发的数据查询请求,确定所述数据查询请求针对的目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询获得目标查询结果,所述第一离线数据存储区域中存储有对应各个时间信息保存的,基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果。这样,能够提高了数据的查询效率,提高了数据的查询时间的可控性,能够快速响应相关对象的查询需要,提升相关对象的使用体验。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、电子设备及存储介质。
背景技术
为了更好的掌握业务的运营状态,通常可以查询业务中涉及到的各类数据各自的数量变化情况,例如,对于音乐播放业务,可以通过查询历史时间段内满足设定条件的歌曲量的数据变化情况,以确定音乐播放业务的运营状态。
相关技术下,为了统计业务中各类数据各自的数量变化情况,通常需要每天归档一份全局范围内的全量数据,并将每天归档的数据以时间为分区,存储在分布式搜索引擎中,并在进行查询的过程中,根据用户触发的查询条件,聚合该查询条件所限制的数据,得到该查询条件所对应的统计结果,其中,所述全量数据中记录有全局范围内包括最新发布的数据在内的全量数据。
然而,为了分析数据变化情况,需要长时间保存归档的全量数据,故全量数据涉及到的总数量级很高,累积归档存储的全量数据必然需要占用极大的存储空间,使得在查询条件对应的时间范围较大时,需要调用分布式搜索引擎在对应不同分区存储的全量数据中进行搜索和聚合,查询过程涉及到的数据量很大,查询效率很低,基于不同查询条件进行查询所需要的查询时间不可控,无法快速地获得查询结果。
发明内容
本公开实施例提供一种数据查询方法、装置、电子设备及存储介质,用以解决现有技术中存在查询效率低,以及无法快速查询获得查询结果的问题。
本发明实施例提供的具体技术方案如下:
第一方面,提出一种数据查询方法,包括:
接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;
确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果;
其中,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
可选的,确定所述目标存储区域为第二离线数据存储区域时,执行以下操作:
在所述第二离线数据存储区域中,查询与所述目标查询条件和所述目标时间信息匹配的目标信息查询结果;
其中,所述第二离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第二处理规则操作得到的各个存储数据,所述第二处理规则包括基于相应的离线数据库,聚合各个离线数据各自的***作信息以得到所述各个存储数据,所述离线数据中包括全局范围内数据的各类信息。
可选的,所述第一处理规则进一步包括:
周期性地采用第二引擎,从相应的离线数据库中定时地获取截止至当前时间信息处的指定历史时长内产生的离线变量数据,并将所述离线变量数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,以及调用所述第一引擎周期性地基于配置的各个查询条件,在更新后的所述历史数据中执行查询操作,统计得到所述各个查询条件各自对应的查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的查询结果的对应关系,以及将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
可选的,所述第一处理规则进一步包括:
实时监听全局范围内数据的内容描述信息的变更情况,并在确定存在内容描述信息发生变更的目标数据时,采用第三引擎,将当前时间信息下的所述目标数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,并调用所述第一引擎,基于配置的各个查询条件,在更新后的历史数据中执行查询操作,统计得到所述各个查询条件各自对应的实时查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的实时查询结果的对应关系,以及将所述各个索引关键字和对应的实时查询结果,存储至第一离线数据存储区域。
可选的,所述将所述离线变量数据处理为内容合规的待存储数据,包括:
在所述离线变量数据包括的各个数据表中,至少将对应各个数据标识信息分别存储的内容描述信息,聚合为单表形式的数据内容;
将所述数据内容中的文本内容,替换为对应的编码形式的内容,并删除所述数据内容中被标记为无效的内容,以及将处理后的数据内容,作为内容合规的待存储数据。
可选的,所述更新所述第一引擎中存储的历史数据时,包括:
确定所述离线变量数据中关联有新发布状态的各个新增数据,并将所述各个新增数据直接存储至所述第一引擎中历史数据所在的存储区域;
确定所述离线变量数据中关联有删除状态的各个无效数据,并在所述第一引擎存储的历史数据中,删除与所述各个无效数据对应的各个数据;
确定所述离线变量数据中关联信息调整状态的各个待更新数据,并基于所述各个待更新数据的内容描述信息,修改所述第一引擎存储的历史数据中,与所述各个待更新数据对应的各个数据。
可选的,所述分别针对所述各个查询条件生成对应的索引关键字,包括以下操作中的任意一项:
预先针对各种类型中的各个数据属性信息,分别配置对应的数字取值结果,并预先针对所述各种类型,分别配置对应的权重参数,以及将各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果和权重参数确定的加权结果,分别作为与各个查询条件各自所对应的索引关键字;
预先针对各种类型中的各个数据属性信息,分别配置各不相同的数字取值结果,并分别确定各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果,以及分别将受约束于同一查询条件的各个数字取值结果的二进制形式累加结果,作为对应查询条件生成的索引关键字;
预先针对各种类型的各个数据属性信息,分别配置各不相同的数字取值结果,并采用哈希算法,分别对应各个数字取值结果生成指定长度的哈希值,以及基于各个查询条件各自约束的各个数据属性信息,各自对应的哈希值,分别生成所述各个查询条件各自对应的索引关键字。
可选的,所述各个查询条件中限制有表征查询结果的统计指标,当确定所述当前时间信息为预设的时间周期的截至日期时,执行以下操作:
确定所述当前时间信息对应的时间周期内包括的各个时间信息,并基于对应所述各个时间信息各自保存的所述各个查询条件及对应的查询结果,建立相应的统计指标下,所述各个查询条件各自在所述时间周期内的数据变化结果;
建立所述各个查询条件各自对应的索引关键字,与所述时间周期内的各个数据变化结果之间的对应关系,并在所述第一离线数据存储区域中,对应所述时间周期存储所述各个查询条件对应的索引关键字和对应的数据变化结果。
可选的,所述第二处理规则进一步包括,包括:
基于相应的离线数据库,周期性地采用第二引擎,在离线数据对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据;
基于所述单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值;
将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
可选的,所述第二处理规则进一步包括:
实时监听全局范围内数据的***作信息的变更情况,并在确定存在***作信息发生变更的目标数据时,基于当前时间下的所述目标数据更新离线数据;
采用第二引擎,在更新后的所述离线数据中对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据;
基于所述单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值;
将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
可选的,所述查询与所述目标查询条件和目标时间信息匹配的目标查询结果,包括:
确定所述目标对象在第一可操作页面中触发所述数据查询请求时,基于所述目标查询条件生成目标索引关键字,并在第一离线数据存储区域中查询所述目标时间信息下,与所述目标索引关键字对应的目标查询结果;
确定所述目标对象在第二可操作页面中触发所述数据查询请求时,基于所述目标查询条件中携带的数据标识信息生成目标标识关键字,并在第二离线数据存储区域中查询所述目标时间信息下,与所述目标标识关键字对应的目标查询结果。
第二方面,提出一种数据查询装置,包括:
接收单元,接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;
查询单元,确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果;
其中,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
可选的,所述确定所述目标存储区域为第二离线数据存储区域时,所述查询单元用于执行以下操作:
在所述第二离线数据存储区域中,查询与所述目标查询条件和所述目标时间信息匹配的目标信息查询结果;
其中,所述第二离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第二处理规则操作得到的各个存储数据,所述第二处理规则包括基于相应的离线数据库,聚合各个离线数据各自的***作信息以得到所述各个存储数据,所述离线数据中包括全局范围内数据的各类信息。
可选的,所述装置进一步包括存储单元,所述存储单元用于采用所述第一处理规则进一步执行以下操作:
周期性地采用第二引擎,从相应的离线数据库中定时地获取截止至当前时间信息处的指定历史时长内产生的离线变量数据,并将所述离线变量数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,以及调用所述第一引擎周期性地基于配置的各个查询条件,在更新后的所述历史数据中执行查询操作,统计得到所述各个查询条件各自对应的查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的查询结果的对应关系,以及将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
可选的,所述装置进一步包括存储单元,所述存储单元用于采用所述第一处理规则进一步执行以下操作:
实时监听全局范围内数据的内容描述信息的变更情况,并在确定存在内容描述信息发生变更的目标数据时,采用第三引擎,将当前时间信息下的所述目标数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,并调用所述第一引擎,基于配置的各个查询条件,在更新后的历史数据中执行查询操作,统计得到所述各个查询条件各自对应的实时查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的实时查询结果的对应关系,以及将所述各个索引关键字和对应的实时查询结果,存储至第一离线数据存储区域。
可选的,所述将所述离线变量数据处理为内容合规的待存储数据时,所述存储单元用于:
在所述离线变量数据包括的各个数据表中,至少将对应各个数据标识信息分别存储的内容描述信息,聚合为单表形式的数据内容;
将所述数据内容中的文本内容,替换为对应的编码形式的内容,并删除所述数据内容中被标记为无效的内容,以及将处理后的数据内容,作为内容合规的待存储数据。
可选的,所述更新所述第一引擎中存储的历史数据时,所述存储单元用于:
确定所述离线变量数据中关联有新发布状态的各个新增数据,并将所述各个新增数据直接存储至所述第一引擎中历史数据所在的存储区域;
确定所述离线变量数据中关联有删除状态的各个无效数据,并在所述第一引擎存储的历史数据中,删除与所述各个无效数据对应的各个数据;
确定所述离线变量数据中关联信息调整状态的各个待更新数据,并基于所述各个待更新数据的内容描述信息,修改所述第一引擎存储的历史数据中,与所述各个待更新数据对应的各个数据。
可选的,所述分别针对所述各个查询条件生成对应的索引关键字时,所述存储单元用于执行以下操作中的任意一项:
预先针对各种类型中的各个数据属性信息,分别配置对应的数字取值结果,并预先针对所述各种类型,分别配置对应的权重参数,以及将各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果和权重参数确定的加权结果,分别作为与各个查询条件各自所对应的索引关键字;
预先针对各种类型中的各个数据属性信息,分别配置各不相同的数字取值结果,并分别确定各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果,以及分别将受约束于同一查询条件的各个数字取值结果的二进制形式累加结果,作为对应查询条件生成的索引关键字;
预先针对各种类型的各个数据属性信息,分别配置各不相同的数字取值结果,并采用哈希算法,分别对应各个数字取值结果生成指定长度的哈希值,以及基于各个查询条件各自约束的各个数据属性信息,各自对应的哈希值,分别生成所述各个查询条件各自对应的索引关键字。
可选的,所述各个查询条件中限制有表征查询结果的统计指标,当确定所述当前时间信息为预设的时间周期的截至日期时,所述存储单元用于执行以下操作:
确定所述当前时间信息对应的时间周期内包括的各个时间信息,并基于对应所述各个时间信息各自保存的所述各个查询条件及对应的查询结果,建立相应的统计指标下,所述各个查询条件各自在所述时间周期内的数据变化结果;
建立所述各个查询条件各自对应的索引关键字,与所述时间周期内的各个数据变化结果之间的对应关系,并在所述第一离线数据存储区域中,对应所述时间周期存储所述各个查询条件对应的索引关键字和对应的数据变化结果。
可选的,所述查询单元用于采用所述第二处理规则进一步执行以下操作:
基于相应的离线数据库,周期性地采用第二引擎,在离线数据对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据;
基于所述单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值;
将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
可选的,所述查询单元用于采用所述第二处理规则进一步执行以下操作:
实时监听全局范围内数据的***作信息的变更情况,并在确定存在***作信息发生变更的目标数据时,基于当前时间下的所述目标数据更新离线数据;
采用第二引擎,在更新后的所述离线数据中对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据;
基于所述单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值;
将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
可选的,所述查询与所述目标查询条件和目标时间信息匹配的目标查询结果时,所述查询单元用于:
确定所述目标对象在第一可操作页面中触发所述数据查询请求时,基于所述目标查询条件生成目标索引关键字,并在第一离线数据存储区域中查询所述目标时间信息下,与所述目标索引关键字对应的目标查询结果;
确定所述目标对象在第二可操作页面中触发所述数据查询请求时,基于所述目标查询条件中携带的数据标识信息生成目标标识关键字,并在第二离线数据存储区域中查询所述目标时间信息下,与所述目标标识关键字对应的目标查询结果。
第三方面,提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述方法的步骤。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,以使所述计算机程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
本发明有益效果如下:
本公开实施例中,提出了一种数据查询方法、装置、电子设备及存储介质,接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
这样,不再通过日期归档全量数据,而是直接存储数据的查询结果,在预先按照各样可能的查询条件执行查询后,仅需存储所有查询条件各自对应的查询结果,就能够满足后续的查询需求,同时,考虑到实际查询过程中的查询条件可控,因而存储查询结果的方式能够极大地降低需要存储的数据量,不仅能够提高数据的查询效率,还能够提高数据的查询时间的可控性,而且能够快速响应相关对象的查询需要,提升相关对象的使用体验。
附图说明
图1为本公开实施例中基于周期性存储操作的查询交互图;
图2a为本公开实施例中根据第一处理规则向第一离线数据存储区域存储数据的层级结构示意图;
图2b为本公开实施例中向第一离线数据存储区域存储数据的一种实现流程示意图;
图2c为本公开实施例中将离线变量数据处理为内容合规的待存储数据的流程示意图;
图3a为本公开实时例中向第一离线数据存储区域存储数据的另一种实现流程示意图;
图3b为本公开实施例中得到内容合规的待存储数据的操作过程示意图;
图4为本公开实施例中向第二离线数据存储区域存储数据的一种实现流程示意图;
图5为本公开实施例中向第二离线数据存储区域存储数据的另一种实现流程示意图;
图6a为本公开实施例中的数据查询流程示意图;
图6b为本公开实施中查询结果的显示示意图;
图6c为本公开实施例中基于查询条件显示的查询结果示意图;
图6d为本公开实施例中触发在第二离线数据存储区域进行查询的可操作页面示意图;
图6e为本公开实施例基于第二离线数据存储区域内查询到的查询结果呈现的结果示意图;
图6f为本公开实施例中基于对线上数据库中数据的监听获得的查询结果示意图;
图7为本公开实施例中数据查询装置的逻辑结构示意图;
图8为本公开实施例中数据查询装置的实体结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开技术方案的一部分实施例,而不是全部的实施例。基于本公开文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开技术方案保护的范围。
本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够在除了这里图示或描述的那些以外的顺序实施。
为了方便理解,下面对本公开实施例中涉及的名词进行解释:
离线计算:一种针对大量数据进行计算的方式,对计算过程中依据的输入数据的实时性要求不高,且计算开始前已知所有输入数据,计算过程中所依据的输入数据不会产生变化,是在针对设置的条件进行计算后就要立即得出结果的前提下进行的计算。离线计算的过程可以根据实际处理需要周期性的进行,本公开实施例中,可以周期性地针对离线数据执行离线操作,如,时效性为T+1的处理方式下,对于当天产生的数据来说,第二天才能够作为离线计算的输入数据。
离线数据库:用于存储离线数据的存储区域,存储有全局范围内数据相关的全部内容,包括数据的内容描述信息、数据的***作信息,以及数据的来源信息等内容,本公开实施例中,离线数据库可以是基于分布式***基础架构(Hadoopde)的数据仓库工具(hive),hive提供了进行数据提取、转化,以及加载等功能,是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。离线数据库可以理解为线上数据库的子集,相当于是线上数据库中在一定时间内产生的数据的备份,如,在T+1的处理方式下,离线数据库中存储有线上数据库中,在截止至T+1处理方式下的时间节点前存入的全部数据。
数据的内容描述信息:是用于描述数据的信息,且针对不同类型的数据,数据的内容描述信息包括的内容可能不同,例如,在对音频数据进行处理的场景下,线上的数据为音频数据,例如歌曲,数据的内容描述信息包括音频数据的基础信息、音频数据归属的风格、音频数据涉及的艺人信息、歌词形式等信息,所述基础信息具体如,歌曲名称、歌曲状态、歌曲别名、歌曲的语种等。
数据的***作信息:是用于表征数据被用户的操作情况的信息,如,在对音频数据进行处理的场景下,音频数据的***作信息可能包括音频数据对应的点赞量、收藏量,以及转发量等信息。
第一引擎:具体为搜索引擎,能够提供数据检索服务,能够根据被提供的查询条件执行查询操作,并能够实现实时搜索和结果聚合,换言之,搜索引擎可以理解为一门检索技术,能够根据用户需求和预设的算法逻辑,运用配置的策略从索引中检索结果并反馈。
第二引擎:具体为具有计算功能的引擎,本公开实施例中,第二引擎能够在离线数据库和第一引擎之间提供数据通道,将从离线数据库获得的数据处理为符合需要的数据后,将处理后的数据提供给第一引擎,例如,第二引擎具体可以是spark引擎,或者,能够实现上述功能的自研引擎。
第三引擎:具有计算功能的引擎,本公开实施例中,第三引擎能够在线上数据库和第一引擎之间提供数据通道,将线上数据库中的存在内容描述信息变化或者***作情况变化的数据,处理为符合需要的数据后,将处理后的数据提供给第一引擎,例如,第三引擎具体可以是Flink引擎,或者,能够实现上述功能的自研引擎。
索引关键字,也称索引,本公开实施例中,具体指第一引擎中数据的存储结构单元。
持久化:指将数据永久存储到指定的存储区域中,所述指定的存储区域可以是存储设备或者介质,如,磁盘。本公开实施例中,是指将主要指将内存中的对象存储到数据库中,其中,第一引擎中的全部数据均存储在内存中。
处理设备:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
相关技术下,为了满足相关人员对于业务的运营状态的查询需要,通常为相关人员提供能够展示数据现状的数据展示平台,以实现对业务范围内的数据情况进行集中展示,协助相关人员获得在设定的查询条件下的数据表现。
相关技术下的具体实现过程中,为了满足各样的条件下的查询需求,应对各样复杂的查询场景,通常采用诸如Elasticsearch等分布式搜索引擎作为存储介质,每天归档一份全量数据,并按天进行分区存储,进而后续根据配置的查询条件,在分区存储的全量数据中进行分区查询并聚合。
例如,假设音乐播放类应用中存在5千万首歌曲,那么相关技术下,需要每天针对全量的至少5千万首歌曲数据进行归档存储,那么近一年的存储的数据总量则为近200亿首歌曲数据,当根据配置的查询条件,确定需要统计一年内的歌曲量增长情况时,分别在按天归档的数据中,查询近一年内每天的歌曲数量,并聚合得到最终的查询结果。
这样,相关技术下的实现方案必然会存在两方面的问题,首先,由于每天需要归档全量数据,因而存储的数据量极大,需要占用极大的存储空间,其次,在相关技术的存储方式下,当基于复杂的查询条件查询一段时间内的数据表现时,需要分别在对应的各天的存储数据中,分别执行查询操作,并聚合查询结果,使得查询效率很低,且查询时间受查询的数据范围和查询条件的影响极大,查询的数据范围内的数据量越大,查询条件中包括的约束因素越多,那么得到查询结果的响应时间则越长,使得查询效率很低,查询时间不稳定,极大影响了相关对象的查询体验。
应用场景总览
本公开实施例提出的数据查询方法,能够应用于按照配置的查询条件,对数据进行查询的场景下,本公开可以应用于对各类数据进行查询的场景中,所针对的数据类型可能是音频类型数据、视频类型数据,或者,文本类型数据等数据中的至少一种或组合。另外,根据实际的查询需要,相关对象能够获得的查询结果可能是数据量的统计结果,也可能是数据的***作情况的统计结果。
例如,在对一个音乐和视频类播放应用的运营状态进行查询的场景下,当相关对象希望获知音乐数据和/或视频数据的数据量变化情况时,或者,当相关对象希望统计满足查询条件的数据量时,或者,当相关对象希望获知某数据的***作情况时,均可以依据本公开提出的技术方案,获得相应的查询结果。
在本公开一些可选的实施例中,考虑到在查询条件针对的查询结果是数据量的统计结果时,无法直接基于数据自身的信息获得结果,且涉及到的查询情况很多,故可以针对数据类型和查询需要,预先穷举出各种可能的查询条件,再基于配置的各个查询条件,分别在全量的历史数据中执行离线查询操作,并统计得到符合所述各个查询条件约束的各个查询结果,其中,查询条件中可能限制有查询结果对应的统计指标,所述统计指标用以确定以统计得到的查询结果的表现形式,本公开中可能统计指标包括指定时间粒度下的总量、指定时间粒度下的增量,以及指定时间粒度下的占比等内容。
这样,本公开提出方案改变了原有的数据存储方式,不再通过日期归档全量数据,而是直接存储数据的查询结果,在预先按照各样可能的查询条件执行查询后,仅需存储所有查询条件各自对应的查询结果,就能够满足后续的查询需求,同时,考虑到实际查询过程中的查询条件可控,因而存储查询结果的方式能够极大地降低需要存储的数据量,不仅能够提高数据的查询效率,还能够提高数据的查询时间的可控性,而且能够快速响应相关对象的查询需要,提升相关对象的使用体验。
本公开另一些可选的实施例中,当查询条件针对的查询结果是数据的***作情况的统计结果时,可以直接基于被查询的数据,获得指定的时间信息下的查询结果,因而在存储过程中,对全量数据进行清洗、加工等处理后,直接进行存储。
这样,相比于相关技术下直接存储全量数据的形式来说,这种场景下直接以key-value形式存储数据的部分信息,同样能够减少数据存储所占用的存储空间,提高数据查询效率。
参阅图1所示,其为本公开实施例中基于周期性存储操作的查询交互图,根据图1所示意的内容,在周期性执行存储操作的场景下,处理设备采用第二引擎,从离线数据库中获取离线数据执行离线计算,其中,第二引擎相当于提供了一个离线计算***。所述处理设备调用所述第二引擎,基于离线数据库中的离线数据先后执行数据查询、数据清洗,以及数据转化、加工操作,得到内容合规的数据。进而根据实际的处理需要,将内容合规的数据输入第一引擎中,以使所述第一引擎基于定时任务,将基于各个查询条件查询得到的查询结果存储至第一离线数据存储区域,或者,可以根据实际的处理需要,将内容合规的数据进行处理后,直接存储至第二离线数据存储区域。在完成数据的存储后,处理设备根据查询需要,选择性地从第一离线存储区域或第二离线存储区域中获得查询结果,其中,所述处理设备可以为相关对象提供数据展示平台,并支持相关对象发起的数据查询请求。
实际的应用场景中,为了支持相关对象的查询需要,通常周期性地在凌晨基于离线数据执行定时任务,以保证相关对象在上班前可以得到基于最新更新的离线数据处理得到的存储数据。
本公开实施例中,考虑到数据的查询过程是依赖于数据的存储过程进行的,故下面结合附图,首先对不同应用场景下的存储过程进行说明:
需要说明的是,本公开实施例中存在两种全量数据,其一是线上数据库中的全量数据,用于支持线上的数据展示,故始终存储有实时最新的数据,其二时离线数据库中的全量数据,离线数据库中的全量数据相当于是线上数据库中全量数据的子集,通常周期性的获取离线增量数据时,将线上数据库中的数据存储入离线数据库中,其中,本公开实施例中,线上数据库可以是关系数据库管理***(Relational Database Management System,RDBMS)架构下的存储区域,离线数据库通常选用hive数据库,线上数据库具体表现为RDBMS下的mysql数据库。
场景1、存储各个查询条件下统计的数据量层面的查询结果。
本公开实施例中,当应用过程中不关注数据具体的内容描述信息,而只关注指定类型的内容描述信息下数据的统计结果时,可以采用场景1所示意的处理方式,针对配置的有限数目的各个查询条件,预先查询得到查询结果,进而在存储过程中只存储各个查询条件下的查询结果,而无需存储全量数据,以实现节省存储成本,提高查询效率。
需要说明的是,在场景1限定的存储过程中,处理设备可以通过设置quartz定时器任务,定时地调度执行数据的查询和存储操作,在具体的处理过程中,所述处理设备采用第一处理规则,在截止至配置的存储时机处的历史数据中,按照配置的各个查询条件统计得到查询结果,并将各个查询结果对应所述存储时机存储至第一离线数据存储区域,其中,所述第一处理规则至少包括配置的各个查询条件,以及触发执行查询和存储操作的存储时机,所述第一离线数据存储区域具体可以是区别于内存的可持久化存储的区域,如mysql数据库。
本公开实施例中,处理设备按照第一处理规则中触发查询和存储操作的存储时机,执行具体的查询和存储操作时,按照查询时机的不同,可能存在以下两种可能的情况,其一是周期性地执行数据的查询和存储操作,其二是实时监测数据的变化情况,并在数据发生变化时则触发执行数据的查询和存储操作。
参阅图2a所示,其为本公开实施例中根据第一处理规则向第一离线数据存储区域存储数据的层级结构示意图,在基于场景1构建的层级结构中,分别包括数据加工层、数据服务层、存储层,以及业务服务层。
所述数据加工层,包括针对线上数据库和离线数据库所分别进行的数据获取操作,用于采用引擎从数据库中分别查询需要加工处理的数据,其中,所述数据加工层实现的操作包括采集需要处理的数据、对数据进行清洗、加工等操作。
所述数据服务层,用于调用所述第一引擎基于配置的各个查询条件,在所述第一引擎存储的更新后的历史数据中,执行查询操作,得到查询结果。
所述存储层,用于将基于查询条件查询得到的查询结果,映射为索引关键字与对应的查询结果的形式,并将索引关键字与查询结果之间的对应关系,存储在第一离线数据存储区域。
所述业务服务层,用于支持相关对象发起查询请求,为相关对象提供数据查询服务。
以下的描述中,将针对两种可能的触发查询和存储操作的存储时机,分别描述对应的存储过程。
场景1.1、周期性地触发执行数据的查询和存储操作。
参阅图2b所示,其为本公开实施例中向第一离线数据存储区域存储数据的一种实现流程示意图,下面结合附图2b,对本公开实施例中处理设备向第一离线数据存储区域内存储数据的过程进行说明:
步骤201:处理设备周期性地采用第二引擎,从相应的离线数据库中定时地获取截止至当前时间信息处的指定历史时长内产生的离线变量数据,并将所述离线变量数据处理为内容合规的待存储数据。
具体的,处理设备根据第一处理规则,可以周期性地采用第二引擎,从相应的离线数据库中定时地获取截止至当前时间信息处的,指定历史时长内产生的离线变量数据,并继续采用所述第二引擎,将所述离线变量数据处理为内容合规的待存储数据,其中,在周期性获取离线变量数据的情况下,所述指定历史时长指代相邻两个周期之间的时间间隔,所述当前时间信息指代当前周期对应的时间信息。
本公开实施例中,所述处理设备采用所述第二引擎,将所述离线变量数据处理为内容合规的待存储数据时,具体可以执行以下操作:
参阅图2c所示,其为本公开实施例中将离线变量数据处理为内容合规的待存储数据的流程示意图,下面结合附图2c,对离线变量数据的处理流程进行说明:
步骤201a:处理设备在离线变量数据包括的各个数据表中,至少将对应各个数据标识信息分别存储的内容描述信息,聚合为单表形式的数据内容。
具体的,考虑到目前数据的存储都是存储在数据表中,且同一数据的不同内容描述信息存储在不同的数据表中,因此,处理设备在对离线变量数据进行处理时,通常需要从不同的数据表中聚合同一数据的内容描述信息,得到单表形式的数据内容,其中,离线变量数据是离线数据库中在当前周期与前一个周期之间产生的离线数据。
需要说明的是,从多个数据表中聚合的内容根据实际处理需要设置,本公开在此不做过多限制。
例如,对于存储的数据来说,通常是多表存储的,以歌曲数据为例,存在有歌曲基础信息表(包括存储歌曲名称、状态、别名、语种等基本信息)、歌曲风格表(记录歌曲风格)、歌曲艺人表、歌曲歌词表等等,考虑到后续的第一引擎中存储的数据只有一个索引结构,故需要将不同数据表中对应同一数据存储的内容,聚合为单表形式的数据内容,换言之,将离线变量数据从多表聚合为单表形式。
这样,能够根据实际的处理需要,对数据的存储形式进行整理,聚合多个数据表中处理所关注的相同数据的不同内容,得到单表形式的数据内容。
步骤201b:处理设备将单表形式的数据内容中的文本内容,替换为对应的编码形式的内容,并删除所述数据内容中被标记为无效的内容,以及将处理后的数据内容,作为内容合规的待存储数据。
本公开实施例中,处理设备在获得单表形式的数据内容后,为了提高后续对于数据的查询过程中的查询性能,需要进一步地对所述单表形式的数据内容进行加工和清洗。
具体的,所述处理设备可以将所述数据内容中,不利于读取的文本内容转换为编码形式的内容,并针对数据的状态,删除数据内容中被标记为无效的内容,进而将处理后的数据内容,作为内容合规的待存储内容。
例如,对于歌曲数据来说,歌曲数据的语种在数据表中存储的是文本形式的内容,为了保证对于语种的准确识别,可以将文本形式的内容转换为数据形式的编码内容,如,将“华语”以数字1表示,将“英语”以数字2表示等。
又例如,考虑到数据表中针对数据存储有各种形式的数据内容信息,但是对于实际的查询过程来说可能无需关注,则可以根据实际处理需要,设置筛选规则,如,从数据内容中过滤掉已删除和无版权数据、删除数据的发布源信息等等。
这样,借助于对数据内容的处理,能够将数据的内容处理为能够正常识别的内容形式,为后续基于数据内容执行的查询操作提供了便利。
需要说明的是,本公开实施中,对于步骤201a和201b所限定的处理操作而言,本公开不具体限制两种操作的执行顺序,在实际的应用过程中根据实际的处理需要,也可以选择性地先执行步骤201b限制的数据清洗和加工操作,在执行步骤201a限制的数据聚合操作,本公开在此不做具体限制。
步骤202:处理设备基于待存储数据更新第一引擎中存储的历史数据,以及调用所述第一引擎周期性地基于配置的各个查询条件,在更新后的所述历史数据中执行查询操作,统计得到所述各个查询条件各自对应的查询结果。
具体的,处理设备获得待存储数据后,基于所述待存储数据更新第一引擎中存储的历史数据,其中,所述第一引擎中存储有全量的历史数据,所述历史数据可以理解为同样时间跨度下离线数据中全量数据的部分信息,所述第一引擎中的全部数据均可以理解为存储在内存中,所述第一引擎可以理解为自带有存储介质。
例如,假设9月16号音频数据的业务功能开始使用,且9月16日共有500w的音频数据,那么在9月17号的时候,第一引擎里面就至少存储有500w的音频数据的内容描述信息,再假设9月17号新增了20w的音频数据,则到了9月18号,第一引擎里面存在520w的音频数据的内容描述信息,同时如果9月17号500w音频数据中有100w音频数据发生了内容描述信息的更新,我们会在18号也将这100w的音频数据更新到t+1最新状态,换言之,第一引擎中始终存储有基于t+1的全量最新数据处理得到的历史数据,特殊的,极端地来讲,如果音频数据在一个月没发生过任何变化,可以理解为过去一个月内在第一引擎中存储的是同一份数据。
所述处理设备对所述第一引擎中存储的历史数据进行更新时,考虑到待存储数据相对于存储的历史数据所做出的改变和调整,故实际的更新过程中可能存储以下三种可能的更新操作:
操作一、基于待存储数据,在第一引擎存储的历史数据中进行数据的新增。
处理设备确定离线变量数据中关联有新发布状态的各个新增数据,并将所述各个新增数据直接存储至所述第一引擎中历史数据所在的存储区域。
具体的,处理设备确定所述离线变量数据中关联有新发布状态的各个新增数据时,在第一引擎存储的历史数据中新增对应的各个新增数据,换言之,将所述各个新增数据存储至所述历史数据所在的存储区域。
例如,假设设置每天凌晨0点周期性地执行数据的查询和存储操作,则每天凌晨0点定时查询获得的离线变量数据具体为:根据前一天的凌晨0点(前一个周期开始)至当前的凌晨0点(当前周期开始)之间产生的离线数据。根据离线变量数据得到待存储数据后,若确定所述待存储数据中存在新增数据,则基于各个新增数据在所述第一引擎存储的历史数据中执行数据的增加操作,其中,所述第一引擎存储的历史数据是基于截止至前一天的凌晨0点的离线数据处理得到的,历史数据可能由各个离线数据的内容描述信息组成。
操作二、基于待存储数据,在第一引擎存储的历史数据中进行数据的删除。
处理设备确定离线变量数据中关联有删除状态的各个无效数据,并在第一引擎存储的历史数据中,删除与所述各个无效数据对应的各个数据。
例如,假设设置每天凌晨0点周期性地执行数据的查询和存储操作,则每天凌晨0点后的离线变量数据具体为:根据前一天的凌晨0点(前一个周期开始)至当前的凌晨0点(当前周期开始)之间产生的离线数据。根据离线变量数据得到待存储数据后,若确定所述待存储数据中存在被删除的无效数据,则基于各个无效数据在所述第一引擎存储的历史数据中执行数据的删除操作,其中,所述第一引擎存储的历史数据是基于截止至前一天的凌晨0点的离线数据处理得到的。
操作三、基于待存储数据,在第一引擎存储的历史数据中进行数据的修改。
处理设备确定离线变量数据中关联信息调整状态的各个待更新数据,并基于所述各个待更新数据的内容描述信息,修改第一引擎存储的历史数据中,与所述各个待更新数据对应的各个数据。
例如,假设设置每天凌晨0点周期性地执行数据的查询和存储操作,则每天凌晨0点后的离线变量数据具体为:根据前一天的凌晨0点(前一个周期开始)至当前的凌晨0点(当前周期开始)之间产生的离线数据。根据离线变量数据得到待存储数据后,若确定所述待存储数据中存在被修改的待更新数据,则基于各个待更新数据在所述第一引擎存储的历史数据中执行数据的修改操作,其中,所述第一引擎存储的历史数据是基于截止至前一天的凌晨0点的离线数据处理得到的。
这样,根据待存储数据中包括的数据的状态,在第一引擎存储的历史数据中执行数据的增加、删除,以及修改中的任意一项或组合操作,使得将所述历史数据更新为当前周期下的最新状态,使得第一引擎中始终保存基于最新的离线数据处理得到的历史数据,保证后续查询操作所依据的数据的可靠性和有效性。
进一步的,处理设备对第一引擎中存储的历史数据进行更新后,所述处理设备调用所述第一引擎周期性地基于配置的各个查询条件,在更新后的所述历史数据中执行查询操作,统计得到所述各个查询条件各自对应的查询结果,其中,所述查询条件是根据查询所依据的数据属性信息进行穷举组合后获得的。
需要说明的是,数据的内容描述信息中包括各种类型的数据属性信息,考虑到在实际的查询过程中,通常根据实际查询需要,将部分或全部类型的数据属性信息作为生成查询条件的要素,因此能够生成的查询条件必然是有限的,处理设备可以根据实际查询过程中,向相关对象提供选择的各类型的数据属性信息,穷举生成各个查询条件。
例如,假设处理设备针对实际的查询过程中,针对歌曲数据配置的,生成目标查询条件的数据属性信息类型包括:歌曲数据的语种,如,“华语”、“英语”、“日语”、“韩语”,以及“全部”等语种限制;歌曲数据的风格,如,“流行”、“摇滚”、“民谣”,以及“全部”等风格限制;歌曲数据的地区,如,“中国”、“美国”、“日本”,以及“全部”等地区限制;歌曲数据的发布状态,如,“已发布”、“未发布”,以及“全部”等状态限制;歌曲数据的歌词形式,如,“文本歌词”、“逐行歌词”、“逐字歌词”,以及“全部”等歌词形式限制。基于此,处理设备可以基于多种类型的数据属性信息进行组合查询,或者,可以基于单个的数据属性信息进行查询,如,查询华语的全部歌曲时,可以将歌曲数据的语种选择为“华语”,其他的数据属性信息选择为“全部”。
又例如,继续上述假设的属性信息类型进行说明,在穷举所有可能的数据属性信息的组合,得到各个查询条件的过程中,假设歌曲数据的语种常用有10种、歌曲数据的风格有20种、歌曲数据的地区有5个、歌曲的发布状态有8个、歌词4种,其所有的组合方式为10*20*5*8*4=32000种,因而可以生成32000个查询条件。
在生成各个查询条件之后,所述处理设备调用所述第一引擎,基于所述各个查询条件,在所述更新后的历史数据中执行查询操作,并统计得到所述各个查询条件各自对应的查询结果。
这样,在查询条件数量有限的情况下,通过穷举各种可能的查询条件,并按照各个查询条件执行查询操作,能够预先基于当前周期更新后的历史数据,查询得到对应的查询结果,相当于在实际的查询操作发生之前,已经借助于定时任务,查询了各种可能的查询条件所对应的查询结果。
步骤203:处理设备分别针对各个查询条件生成对应的索引关键字,并建立各个索引关键字与当前时间信息下的查询结果的对应关系,以及将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
本公开实施例中,处理设备调用第一引擎在所述第一引擎存储的更新后的历史数据中,针对各个查询条件分别执行查询操作,得到相应的各个查询结果,并分别针对所述各个查询条件,生成对应的索引关键字,以及建立各个索引关键字与当前时间信息下的查询结果的对应关系,并将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
需要说明的是,本公开实施例中,一种可选的操作方式是所述处理设备每调用所述第一引擎基于一个查询条件执行一次查询操作,则对应的执行一次存储操作,使得能够对产生的查询结果进行及时存储,避免由于突发情况造成的数据丢失。另外,基于得到的查询结果进行一次存储操作时,存储所对应的所述当前时间信息,可以指代当前获得的离线变量数据的产生时间,同时,所述当前时间信息也可以指代更新后的历史数据所对应的截止时间。
例如,假设周期性地执行数据的查询和存储操作,并定时在每天凌晨0点获取离线变量数据,假设当前为3月26日,则在3月26日凌晨0点获得的离线变量数据,是在3月25日凌晨0点至3月26日凌晨0点之间产生的,因此基于所述离线变量数据完成查询和存储时,由于离线变量数据的产生时间为3月25日,且基于离线变量数据对第一引擎存储的历史数据进行更新后,更新后的历史数据的最新时间为3月25日的结束时间,因此,基于各个查询条件在更新后的历史数据中执行查询操作后,存储时对应的当前时间信息为3月25日。
本公开实施例中,处理设备在针对各个查询条件,生成对应的索引关键字时,按照索引关键字的不同生成形式,可能存在以下几种可能的生成方式:
生成方式一、处理设备根据通过位运算的方式,生成索引关键字。
具体的,处理设备预先针对各种类型中的各个数据属性信息,分别配置对应的数字取值结果,并预先针对所述各种类型,分别配置对应的权重参数,以及将各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果和权重参数确定的加权结果,分别作为与各个查询条件各自所对应的索引关键字。
例如,假设可以选择的歌曲数据的数据属性信息类型为:歌曲数据的语种、风格、地区,以及热度,则在生成查询条件中可以从这四类数据属性信息中,任选其中的n(n>=0)种,组合得到查询条件,其中,针对未选择的数据属性信息类型,可以默认为选择对应类型的数据属性信息中的“全部”。
假设歌曲数据的语种中具体包括可选择的5个语种,分别为华语、粤语、英语,以及日语等;歌曲数据的风格中包括可选择的20种风格;歌曲数据的热度中包括4种可选择的热度;歌曲数据的地区中包括10个可选择的地区。那么,可以预先针对歌曲数据的语种,配置权重参数为1,并针对各种可选择的语种分别配置数据取值结果占1位,如,1表示华语、2表示粤语、3表示英语等;针对歌曲数据的风格,配置权重参数为10,并配置歌曲数据的风格的数据取值结果占两位,如,12代表流行等;配置歌曲数据的热度的数据取值结果占1位,并配置权重参数为1000,如,2代表S级热度;配置视频数据的地区的数据取值结果占1位,并配置权重参数为10000,如,3代表中国大陆,那么对于“中国大陆的华语流行s级热度”这几个数据属性信息所约束的查询条件来说,对应查询条件生成的索引关键字key为:1*1+12*10+2*1000+3*10000=32121。
生成方式二、处理设备通过二进制运算的方式,生成索引关键字。
具体的,处理设备预先针对各种类型中的各个数据属性信息,分别配置各不相同的数字取值结果,并分别确定各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果,以及分别将受约束于同一查询条件的各个数字取值结果的二进制形式累加结果,作为对应查询条件生成的索引关键字。
例如,假设歌曲数据的语种中具体包括可选择的5个语种,分别为华语、粤语、英语,以及日语等;歌曲数据的风格中包括可选择的20种风格;歌曲数据的热度中包括4种可选择的热度;歌曲数据的地区中包括10个可选择的地区。那么,实际处理过程中,可以针对歌曲数据的语种设置数字取值结果,如,设置华语对应的数字取值结果为1,对应的二进制形式为0000 0001;针对歌曲数据的风格,如,设置流行对应的数字取值结果为13,对应的二进制形式为0000 1101;针对歌曲数据的热度,如,设置S级热度对应的数据取值结果为27,则对应的二进制形式为0001 1011;针对歌曲数据的地区,如,设置中国大陆对应的数字取值结果为:36,则对应的二进制形式为0010 0100,那么对于“中国大陆的华语流行s级热度”这几个数据属性信息所约束的查询条件来说,各个数据属性信息的二进制形式的叠加结果为:0000 0001+0000 1101+0001 1011+0010 0100=0100 1101,即,对应查询条件生成的索引关键字key为:0100 1101。
生成方式三、处理设备通过哈希运算的方式,生成索引关键字。
具体的,处理设备预先针对各种类型的各个数据属性信息,分别配置各不相同的数字取值结果,并采用哈希算法,分别对应各个数字取值结果生成指定长度的哈希值,以及基于各个查询条件各自约束的各个数据属性信息,各自对应的哈希值,分别生成所述各个查询条件各自对应的索引关键字。
本公开实施例中,生成查询条件对应的索引关键字时,先确定查询条件中包括的数据属性信息,进而采用哈希算法针对数据属性信息生成对应的哈希值,并可以选择性地将拼接后的哈希值作为相应的查询条件的索引关键字,或者,可以选择性地将数据属性信息对应的哈希值的叠加结果,作为相应的查询条件的索引关键字。
这样,可以借助于各样可能的生成方式,生成各个查询条件所唯一对应的索引关键字,用于对各个查询条件进行区分,相当于将复杂数据属性信息组合的查询条件,进行唯一值的映射,后续基于存储的查询结果进行查询的过程中,使用映射得到的索引关键字代替查询条件执行匹配操作,能够进一步提升查询处理性能。
进一步的,所述处理设备建立各个索引关键字与当前时间信息下的查询结果的对应关系后,将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
具体的,处理设备调用第一引擎基于构建的各个查询条件,在所述第一引擎中存储的更新后的历史数据中分别执行查询操作,统计得到查询结果,然后通过二进制、位运算或者哈希运算等索引关键字的生成方式,得到各个查询条件唯一对应的索引关键字后,对查询结果进行持久化存储,即,将索引关键字与查询结果对应存储到第一离线数据存储区域。
另外,考虑到离线数据库中的数据来自于线上数据库,故本公开场景1.1所示意的存储过程中,经由的存储介质依次为:先经由线上数据库传输至离线数据库,再由离线数据库传输至第一引擎存储数据的内存,再由第一引擎存储数据的内存传输至第一离线数据存储区域。
综合而言,本公开实施例中,所述离线数据库和所述第一离线数据存储区域属于不同的数据库,所述离线数据库具体可以是hive,而第一离线数据存储区域具体可以是RDBMS下的mysql数据库;线上数据库也可以是RDBMS下的mysql数据库,换言之,线上数据库中存储的内容,与第一离线数据存储区域内存储的内容,可以存储于mysql数据库的不同数据表中。
例如,在对歌曲数据进行查询的场景下,针对“中国大陆的华语流行s级热度”这一查询条件,对应获得的索引关键字为:key=32121,且调用第一引擎查询得到歌曲总量1800w,日期2021-03-25,故可以将key作为主键,获得的查询结果和当前日期作为对应的取值,存储至第一离线存储区域中,或者,可以将索引关键字key作为主键,并将获得的查询结果作为所述主键对应的取值,在对应日期2021-03-25所设置的存储区域中进行存储。
在本公开当前场景1.1所对应的存储方式下,处理设备需要存储的总量为:查询条件总数*天数+一份全量的历史数据。
这样,在可能的查询条件的总数有限的情况下,在每次执行数据的查询和存储操作时,仅需要将数量为所述查询条件的总数的查询结果,持久化地存储到第一离线数据存储区域中,就能够覆盖所有查询场景,相比于相关技术中每天存储全量数据的存储方式,能够极大地减少存储成本。
特殊的,本公开实施例中,考虑到在各样的查询场景下,希望获得的表征查询结果的统计指标可能不同,如,一些应用场景中,可能希望获得查询条件下对应的数据总量,另外一些应用场景中,可能希望获得查询条件下的数据总量占全量数据总量的占比,还有一些应用场景中,可能希望获得查询条件下的数据增量。因此,处理设备在存储数据时,可以依据查询条件中限定的统计指标,将查询结果整理为合适的数据形式,特殊地,查询结果中未注明统计指标的情况下,则默认为查询相应的查询条件下的数据总量。
在此基础上,本公开实施例中,为了兼顾获得不同时间粒度下的查询结果的应用场景,则需要按照预设的时间粒度,在相应的统计指标下确定所述时间粒度下的数据变化结果,并存储处理后得到的数据变化结果,其中,本公开实施例中涉及到的时间粒度借助于按照周、月、季度,以及年等时间单位设置的时间周期来表征。
具体的,所述处理设备在确定所述各个查询条件中限制有表征查询结果的统计指标,并确定所述当前时间信息为预设的时间周期的截至日期时,所述处理设备确定所述当前时间信息对应的时间周期内包括的各个时间信息,并基于对应所述各个时间信息各自保存的所述各个查询条件及对应的查询结果,建立相应的统计指标下,所述各个查询条件各自在所述时间周期内的数据变化结果,进而建立所述各个查询条件各自对应的索引关键字,与所述时间周期内的各个数据变化结果之间的对应关系,并在所述第一离线数据存储区域中,对应所述时间周期存储所述各个查询条件对应的索引关键字和对应的数据变化结果。
例如,假设查询条件中约束的统计指标为数据的增量,则周期性存储的查询结果中,具体为当前对应查询条件查询得到的数据总量和前一个周期查询得到的数据总量之间的差值,即为相应的查询条件下的数据增量,假设现需要确定每月、每周、每季度的音频数据新增情况,则可以通过每天定时执行的任务,得到了每天的数据增量后,以一周、一个月、一年分别作为时间周期,以一周为例,假设当前时间为一周的最后一天,则可以将一周内每天的数据增量进行累加,得到一周内的数据变化结果,即一周内的数据增量,并在所述第一离线数据存储区域中,对应所述当前一周分别存储各个查询条件对应的索引关键字和对应的数据变化结果。
这样,可以借助于诸如日、周、月、季度,以及年这几个时间粒度,生成数据查询的附加条件,使得查询时能够根据相关对象选择的时间粒度,直接返回数据,因而进一步地辅助提升了数据的查询性能。
与此同时,借助于本公开场景1.1所提出的数据的查询和存储过程,在基于最新产生的处理后的离线变量数据,对第一引擎中存储的历史数据进行更新后,通过定时任务去计算出各种查询条件下的查询结果,并将得到的查询结果和查询条件绑定生成唯一的索引关键字和对应的取值的形式,持久化存储到第一离线数据存储区域,使得后续所有的查询操作只需要将查询条件转化为对应的索引关键字,然后通过简单的数据查询,即可得到对应的查询结果,在节省存储成本的同时,提高了数据的查询效率。
场景1.2、实时检测数据的变化情况,并在数据发生变化时触发执行数据的查询和存储操作。
参阅图3a所示,其为本公开实时例中向第一离线数据存储区域存储数据的另一种实现流程示意图,下面结合附图3a,对本公开实施例处理设备向第一离线数据存储区域内存储数据的过程进行说明:
步骤301:处理设备实时监听全局范围内数据的内容描述信息的变更情况,并在确定存在内容描述信息发生变更的目标数据时,采用第三引擎,将当前时间信息下的所述目标数据处理为内容合规的待存储数据。
具体的,参阅图3b所示,其为本公开实施例中得到内容合规的待存储数据的操作过程示意图,处理设备可以采用数据采集***,实时监听存储在线上数据库中的全局范围范围内数据的内容描述信息的变更情况,其中,RDBMS架构的线上数据库中的数据每发生一次变更,都会实时地产生一条变更记录,记录在二进制日志(binlog)文件中。
处理设备采用数据采集***自动地监听到binlog文件的变化后,将binlog文件中变化的数据进行结构化的转换,转换为采用消息队列的传输方式能够传输的形式,进而通过消息队列将内容描述信息发生变更的目标数据传输到第三引擎,并调用所述第三引擎对消息队列中,内容描述信息发生变更的目标数据进行加工和转换,处理为内容合规的待存储数据,进而将所述待存储数据通过消息队列传输到第一引擎中,其中,所述消息队列用于不同的处理组件之间进行通讯,将数据转换为消息,通过消息在消息队列中传递,kafka是一种常用的消息队列。
需要说明的是,本公开的步骤301中涉及到的将目标数据处理为内容合规的待存储数据的过程,可以适应性地采用步骤201a-201b所示意的处理形式,本公开在此将不再具体说明。
步骤302:处理设备基于待存储数据更新第一引擎中存储的历史数据,并调用所述第一引擎,基于配置的各个查询条件,在更新后的历史数据中执行查询操作,统计得到所述各个查询条件各自对应的实时查询结果。
具体的,处理设备得到待存储数据后,基于所述待存储数据更新第一引擎中存储的历史数据后,调用所述第一引擎,基于配置的各个查询条件,在更新后的历史数据中执行查询操作,统计得到所述各个查询条件各自对应的实时查询结果,其中,步骤302中涉及到的更新历史数据的操作,以及基于所述各个查询条件执行查询操作,与场景1.1中所描述的实现方式相同,在此将不再赘述。
步骤303:处理设备分别针对各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的实时查询结果的对应关系,以及将所述各个索引关键字和对应的实时查询结果,存储至第一离线数据存储区域。
具体的,处理设备可以继续采用场景1.1中步骤203所示意的索引关键字生成方式,分别针对各个查询条件生成对应的索引关键字,并建立各个索引关键字与当前时间信息下的实时查询结果的对应关系,以及将所述各个索引关键字和对应的实时查询结果,存储至第一离线数据存储区域。
需要说明的是,本公开实施例中,场景1.1存储查询结果的第一离线存储区域,与场景1.2中存储查询结果的第一离线数据存储区域,可以分别对应一个数据库中的不同数据表,如,mysql数据库中的不同数据表。
这样,在场景1.2所公开的处理方式中,处理设备通过监听线上数据库的数据变化,并直接基于获取的线上数据库中发生变化的数据,对第一引擎中的历史数据进行更新,并调用第一引擎基于各个查询条件执行查询操作,以得到相比于周期性查询和存储来讲,更具实时性的查询结果,使得存储的查询结果能够表征线上数据的状态,为相关对象提供查询实时变化的查询结果的查询依据。
场景2、存储表征数据的***作情况的查询结果。
本公实施例中,当应用过程中关注数据的***作情况时,可以采用本公开场景2所述示意的查询结果,得到数据在设定时间范围内的***作情况,如,查询数据的播放量、点赞量、收藏量、评论量等***作情况的变化,基于场景2得到的存储内容所进行的查询过程中,查询条件可以是数据的标识信息,用于获取数据对应的***作情况,数据的标识信息和表征数据的***作情况的信息之间,可以采用key-value的形式存储,因此只需要关注数据的存储过程即可。另外,本公开实施例中,场景1的实现过程与场景2的实现过程相互独立,本公开不具体限制场景1和场景2执行的先后顺序。
需要说明的是,考虑到本公开场景2侧重于体现数据的***作情况,因而需要针对性存储的数据量相比于场景1来说较大,场景2所存储的数据仅需要进行简单的数据聚合、加工,以及转换操作,即可直接将存储至第二离线数据存储区域中,因此,考虑到场景2中需要保存的数据量较大,故第二离线数据存储区域可以与第一离线数据存储区域不同,例如,第一离线数据存储区域可以选用RDBMS作为其储存介质,具体如mysql数据库;所述第二离线数据存储区域可以选用hbase作为其储存介质,其中,hbase对海量数据存储支持较好,且仅支持key-value形式查询,不支持多条件组合查询。
本公开实施例中,处理设备按照第二处理规则中触发执行数据的处理和存储操作的存储时机,执行具体的处理和存储操作时,按照执行数据处理和存储的时机的不同,可以存在以下两种可能的情况,其一是周期性地执行数据的处理和存储操作,其二是实时检测数据的变化情况,并在数据的***作情况发生变化时,触发执行数据的处理和存储操作。以下的描述中,将针对两种可能的情况,分别描述对应的处理和存储过程:
场景2.1、周期性地触发执行数据的处理和存储操作。
参与图4所示,其为本公开实施例中向第二离线数据存储区域存储数据的一种实现流程示意图,下面结合附图4,对本公开实施例中处理设备向第二离线数据存储区域内存储数据的过程进行说明:
步骤401:处理设备基于相应的离线数据库,周期性地采用第二引擎,在离线数据对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据。
具体的,处理设备可以根据第二处理规则,周期性地采用第二引擎,在相应的离线数据库中,针对所述离线数据库中包括的全量数据执行数据的聚合、加工,以及转换操作,得到内容合规的单表数据,其中,第二引擎聚合的数据内容根据实际的处理需要设置。
例如,可以配置每天凌晨0点,从线上数据库中将数据转存至离线数据库中,并针对离线数据库中存储在多个数据表中的数据,执行聚合、加工,以及转换操作,得到内容合规的单表数据。
步骤402:处理设备基于单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值。
具体的,处理设备在将离线数据库中的数据,聚合得到内容合规的单表数据后,针对所述单表数据中的各个数据,分别执行以下操作:基于一个数据的标识信息(Identity,ID)生成一个对应的标识关键字,并至少将所述一个数据的***作信息,作为所述标识关键字对应的键值,其中,所述键值中的***作信息是指截止至当前周期为止,离线数据库中记录的各种数据***作的总量。
需要说明的是,本公开实施例中,可以根据实际的处理需要,配置关键字对应的键值中所包括的内容,一些可选的实施例中,可以选取数据的***作信息作为对应的键值,另一些可选的实施例中,为了适应于数据***的业务需要和功能扩展,可以在选取数据的***作信息的基础上,再选取数据的内容描述信息,作为对应的键值。
例如,处理设备针对一个离线数据X生成的标识关键字和对应的键值的关系形如如下所示:ID1-{离线数据X的被点赞总量;离线数据X的被转发总量;离线数据X的被播放总量;离线数据X的被收藏总量;…}。
又例如,为了满足于业务需要,处理设备针对一个离线数据Y生成的标识关键字和对应的键值的关系形如如下所示:ID2-{离线数据Y的被点赞总量;离线数据Y的被转发总量;离线数据Y的被播放总量;离线数据Y的被收藏总量;离线数据Y中包括的演艺对象信息;离线数据Y的热度信息…}。
步骤403:处理设备将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
具体的,处理设备针对当前时间下离线数据库中的各个离线数据,生成标识关键字和对应的键值之间的对应关系后,可以将当前时间下建立的各个标识关键字与键值之间的对应关系,存储至第二离线数据存储区域,其中,所述当前时间指代离线数据库中离线数据的截止时间。
另外,考虑到离线数据库中的数据来自于线上数据库,故本公开场景2.1所示意的存储过程中,经由的存储介质依次为:先经由线上数据库传输至离线数据库,再由离线数据库传输至第二离线数据存储区域。
例如,处理设备可以每天触发一次,将从离线数据中得到的标识关键字与键值之间的对应关系,写入hbase中,时间天(day)是hbase的一个基础属性,用于区分多天数据。
这样,能够将离线数据进行处理后,提取出想要关注的内容,进而进行存储,相比于直接存储全量数据的现有技术,能够一定程度的减少所需要的存储空间。
场景2.2、实时检测数据的变化情况,并在数据发生变化时触发执行数据的处理和存储操作。
参阅图5所示,其为本公开实施例中向第二离线数据存储区域存储数据的另一种实现流程示意图,下面结合附图5,对本公开实施例中处理设备向第二离线数据存储区域内存储数据的过程进行说明:
步骤501:处理设备实时监听全局范围内数据的***作信息的变更情况,并在确定存在***作信息发生变更的目标数据时,基于当前时间下的所述目标数据更新离线数据。
具体的,处理设实时监听存储在线上数据库中的全局范围内数据的***作信息的变更情况,其中,监听线上数据库中的过程与上述步骤301所示意的过程相同,本公开在此将不再具体说明。
进一步的,所述处理设备确定存在***作信息发生变更的目标数据时,基于当前时间下的所述目标数据更新离线数据,其中,由于离线数据库中的离线数据是周期性地从线上数据库中获得的,故在采用目标数据更新离线数据时,可以按照针对数据进行的增加、删除,以及修改操作,基于目标数据对离线数据库中的数据进行更新,其中,具体的更新逻辑与上述步骤202中的更新逻辑相同。
步骤502:处理设备采用第二引擎,在更新后的离线数据中对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据。
具体的,在执行步骤502时,处理设备可以采用第二引擎,基于更新后的离线数据,执行步骤401所示意的操作,得到内容合规的单表数据,本公开在此将不再赘述。
步骤503:处理设备基于单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值。
具体的,处理设备在执行步骤503时,可以采用上述步骤402的处理方式,基于单表数据,建立与各个数据的标识关键字对应的键值,本公开在此不对相关的处理过程进行赘述。
步骤504:处理设备将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
具体的,处理设备执行步骤504时,可以依据上述步骤403所限制的操作,将处理后的数据存储至第二离线数据存储区域,本公开在此不对具体的处理过程进行赘述。
这样,能够实时地根据数据的***作情况的改变,保存相应的数据信息,为后续实时的查询过程提供查询依据。
下面结合附图6a,其为本公开实施例中的数据查询流程示意图,下面结合附图6a,对具体的数据查询流程进行说明:
步骤601:处理设备接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域。
具体的,处理设备接收目标对象在可操作页面中触发的数据查询请求,并根据所述目标对象操作的可操作页面,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息,所述目标查询区域包括第一离线数据存储区域和第二离线数据存储区域。
本公开实施例中,若确定所述目标对象,在用于显示根据内容描述信息获得的数据统计结果的第一可操作页面中,触发所述数据查询请求,则确定所述数据查询请求针对的目标查询区域为第一离线数据存储区域。另外,若确定所述目标对象,在用于显示根据***作信息获得的数据变化趋势的第二可操作页面中,触发所述数据查询请求,则确定所述数据查询请求针对的目标查询区域为第二离线数据存储区域。
步骤602:处理设备确定目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果。
具体的,处理设备确定目标对象在第一可操作页面中触发所述数据查询请求时,基于所述目标查询条件生成目标索引关键字,并在第一离线数据存储区域中查询所述目标时间信息下,与所述目标索引关键字对应的目标查询结果。
需要说明的是,本公开一些可选的实施例中,当所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果时,处理设备可以先确定对应目标时间信息设置的存储区域,或者,所述处理设备可以先确定对应所述目标时间信息保存的各个查询结果,进而基于目标索引关键字在所述存储区域或者所述对应所述目标时间信息保存的各个查询结果中,查找与目标索引关键字对应的目标查询结果。
本公开另一些可选的实施例中,当所述第一离线数据存储区域中查询结果的存储形式是索引关键字为主键,时间信息和查询结果作为对应的取值时,处理设备可以先基于生成的所述索引关键字,确定对应所述索引关键字对应保存的各个取值,并获取时间信息为所述目标时间信息的目标取值,以及将所述目标取值内的查询结果作为目标查询结果。
本公开实施例中,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息,其中,向第一离线数据存储区域内存储数据的过程已经在上述场景1所示意的流程中进行详细说明,在此不再赘述。
这样,借助于前述的数据存储过程,不再采用相关技术下全量存储的存储方式,而是直接存储所有查询条件对应的查询结果,在查询条件可控的情况下可以大幅度节省存储空间成本,使得无论面对怎样复杂的查询条件,均能够实现高效率查询,使得数据的查询时间可控,进而在查询过程中,仅需要按照处理需要生成对应的索引关键字,即可获取存储的查询结果,极大降低了数据的查询时间,提高了查询效率,能够快速响应相关对象的查询需要,提高了相关对象的使用体验。
需要说明的是,本公开实施例中,所述处理设备确定所述目标存储区域为第二离线数据存储区域时,则在所述第二离线数据存储区域中,查询与所述目标查询条件和所述目标时间信息匹配的目标信息查询结果。
具体的,处理设备确定所述目标对象在第二可操作页面中触发所述数据查询请求时,基于所述目标查询条件中携带的数据标识信息生成目标标识关键字,并在第二离线数据存储区域中查询所述目标时间信息下,与所述目标标识关键字对应的目标查询结果。
需要说明的是,本公开实施例中,所述第二离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第二处理规则操作得到的各个存储数据,所述第二处理规则包括基于相应的离线数据库,聚合各个离线数据各自的***作信息以得到所述各个存储数据,所述离线数据中包括全局范围内数据的各类信息,其中,向第二离线数据存储区内存储数据的过程已将在前述场景2的描述中进行详细说明,在此将不再赘述。
这样,处理设备能够根据第二离线数据存储区域内存储的内容,在第二离线数据存储区域内查询数据的***作情况,得到对应的查询结果。
进一步的,本公开实施例中,在获得目标查询条件对应的查询结果后,可以按照预设的展示形式,将查询结果显示给相关对象,其中,所述展示形式可能是饼状图、折线图,以及柱状图等展示形式。
例如,参阅图6b所示,其为本公开实施中查询结果的显示示意图。图6b中示意性地示出了基于查询结果构建的显示内容,处理设备可以响应于相关对象构建的如图6b所示意的查询条件,并以饼图的形式,呈现查询结果,以辅助相关对象确定歌曲发布状态和歌曲数据健康度。
又例如,参阅图6c,其为本公开实施例中基于查询条件显示的查询结果示意图,根据图6c所示意的内容,处理设备可以根据相关对象选择的查询条件,呈现相应的查询结果,诸如图6c所示意的,在查询歌曲数据的场景下,相关对象选择显示发行时间在2021-09-01至2021-09-09之间的歌曲时,将发行时间作为查询条件,查询对应2021-9-1至2021-9-9中每一天存储的查询结果,并基于获得的查询结果,直观的绘制曲线图。
又例如,参阅图6d和6e所示,图6d为本公开实施例中触发在第二离线数据存储区域进行查询的可操作页面示意图,图6e为本公开实施例基于第二离线数据存储区域内查询到的查询结果呈现的结果示意图,在对音乐数据进行查询的场景下,处理设备响应于相关对象在图6d所示意的界面中,基于歌曲ID:1875246245,时间:2021-09-03至2021-09-15发起的查询请求,并向相关对象针对性地呈现图6e所示意的查询结果,以供相关人员获知歌曲ID为1875246245的歌曲数据的***作情况。
又例如,参阅图6f所示,其为本公开实施例中基于对线上数据库中数据的监听获得的查询结果示意图,根据图6f所示意的内容可知,本公开提出的技术方案可以实时监控数据的变化,并根据实际的处理需要,对数据的覆盖情况进行分析,并呈现关注的各个数据报表指标的变化情况,其中,图6f中呈现的数据报表指标是本领域常规的指标,在此不再赘述,如,GAP指标用于进行差距分析。
这样,提升了查询效率,无论面对怎样复杂的查询条件,均能够实现高效率查询,使得数据的查询时间可控,提高了数据的查询性能,能够快速响应相关对象的查询请求并快速的生成图表,并提高相关对象的使用体验。
基于同一发明构思,参阅图7所示,其为本公开实施例中数据查询装置的逻辑结构示意图,所述数据查询装置700包括:接收单元701、查询单元702,以及存储单元703,其中,
接收单元701,接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;
查询单元702,确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果;
其中,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
可选的,所述确定所述目标存储区域为第二离线数据存储区域时,所述查询单元702用于执行以下操作:
在所述第二离线数据存储区域中,查询与所述目标查询条件和所述目标时间信息匹配的目标信息查询结果;
其中,所述第二离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第二处理规则操作得到的各个存储数据,所述第二处理规则包括基于相应的离线数据库,聚合各个离线数据各自的***作信息以得到所述各个存储数据,所述离线数据中包括全局范围内数据的各类信息。
可选的,所述装置进一步包括存储单元703,所述存储单元703用于采用所述第一处理规则进一步执行以下操作:
周期性地采用第二引擎,从相应的离线数据库中定时地获取截止至当前时间信息处的指定历史时长内产生的离线变量数据,并将所述离线变量数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,以及调用所述第一引擎周期性地基于配置的各个查询条件,在更新后的所述历史数据中执行查询操作,统计得到所述各个查询条件各自对应的查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的查询结果的对应关系,以及将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
可选的,所述装置进一步包括存储单元703,所述存储单元703用于采用所述第一处理规则进一步执行以下操作:
实时监听全局范围内数据的内容描述信息的变更情况,并在确定存在内容描述信息发生变更的目标数据时,采用第三引擎,将当前时间信息下的所述目标数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,并调用所述第一引擎,基于配置的各个查询条件,在更新后的历史数据中执行查询操作,统计得到所述各个查询条件各自对应的实时查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的实时查询结果的对应关系,以及将所述各个索引关键字和对应的实时查询结果,存储至第一离线数据存储区域。
可选的,所述将所述离线变量数据处理为内容合规的待存储数据时,所述存储单元703用于:
在所述离线变量数据包括的各个数据表中,至少将对应各个数据标识信息分别存储的内容描述信息,聚合为单表形式的数据内容;
将所述数据内容中的文本内容,替换为对应的编码形式的内容,并删除所述数据内容中被标记为无效的内容,以及将处理后的数据内容,作为内容合规的待存储数据。
可选的,所述更新所述第一引擎中存储的历史数据时,所述存储单元703用于:
确定所述离线变量数据中关联有新发布状态的各个新增数据,并将所述各个新增数据直接存储至所述第一引擎中历史数据所在的存储区域;
确定所述离线变量数据中关联有删除状态的各个无效数据,并在所述第一引擎存储的历史数据中,删除与所述各个无效数据对应的各个数据;
确定所述离线变量数据中关联信息调整状态的各个待更新数据,并基于所述各个待更新数据的内容描述信息,修改所述第一引擎存储的历史数据中,与所述各个待更新数据对应的各个数据。
可选的,所述分别针对所述各个查询条件生成对应的索引关键字时,所述存储单元703用于执行以下操作中的任意一项:
预先针对各种类型中的各个数据属性信息,分别配置对应的数字取值结果,并预先针对所述各种类型,分别配置对应的权重参数,以及将各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果和权重参数确定的加权结果,分别作为与各个查询条件各自所对应的索引关键字;
预先针对各种类型中的各个数据属性信息,分别配置各不相同的数字取值结果,并分别确定各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果,以及分别将受约束于同一查询条件的各个数字取值结果的二进制形式累加结果,作为对应查询条件生成的索引关键字;
预先针对各种类型的各个数据属性信息,分别配置各不相同的数字取值结果,并采用哈希算法,分别对应各个数字取值结果生成指定长度的哈希值,以及基于各个查询条件各自约束的各个数据属性信息,各自对应的哈希值,分别生成所述各个查询条件各自对应的索引关键字。
可选的,所述各个查询条件中限制有表征查询结果的统计指标,当确定所述当前时间信息为预设的时间周期的截至日期时,所述存储单元703用于执行以下操作:
确定所述当前时间信息对应的时间周期内包括的各个时间信息,并基于对应所述各个时间信息各自保存的所述各个查询条件及对应的查询结果,建立相应的统计指标下,所述各个查询条件各自在所述时间周期内的数据变化结果;
建立所述各个查询条件各自对应的索引关键字,与所述时间周期内的各个数据变化结果之间的对应关系,并在所述第一离线数据存储区域中,对应所述时间周期存储所述各个查询条件对应的索引关键字和对应的数据变化结果。
可选的,所述查询单元702用于采用所述第二处理规则进一步执行以下操作:
基于相应的离线数据库,周期性地采用第二引擎,在离线数据对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据;
基于所述单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值;
将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
可选的,所述查询单元702用于采用所述第二处理规则进一步执行以下操作:
实时监听全局范围内数据的***作信息的变更情况,并在确定存在***作信息发生变更的目标数据时,基于当前时间下的所述目标数据更新离线数据;
采用第二引擎,在更新后的所述离线数据中对应的各个数据表中,至少将对应各个数据标识信息分别存储的***作信息,聚合为内容合规的单表数据;
基于所述单表数据中各个数据的数据标识信息,分别生成对应的标识关键字,并基于所述单表数据中对应所述各个数据分别存储的***作信息,分别建立各个标识关键字各自对应的键值;
将当前时间下建立的各个标识关键字与键值的对应关系,存储至第二离线数据存储区域。
可选的,所述查询与所述目标查询条件和目标时间信息匹配的目标查询结果时,所述查询单元702用于:
确定所述目标对象在第一可操作页面中触发所述数据查询请求时,基于所述目标查询条件生成目标索引关键字,并在第一离线数据存储区域中查询所述目标时间信息下,与所述目标索引关键字对应的目标查询结果;
确定所述目标对象在第二可操作页面中触发所述数据查询请求时,基于所述目标查询条件中携带的数据标识信息生成目标标识关键字,并在第二离线数据存储区域中查询所述目标时间信息下,与所述目标标识关键字对应的目标查询结果。
参阅图8所示,其为本公开实施例中数据查询装置的实体结构示意图。基于同一发明构思,可以包括存储器801和处理器802。
存储器801,用于存储处理器802执行的计算机程序。存储器801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。处理器802,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等。本公开实施例中不限定上述存储器801和处理器802之间的具体连接介质。本公开实施例在图8中以存储器801和处理器802之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。
处理器802,用于调用存储器801中存储的计算机程序时执行如图6a中所示的实施例提供的数据查询方法。
基于同一发明构思,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意方法实施例中的数据查询方法。
综上所述,本公开实施例中,提出了一种数据查询方法、装置、电子设备及存储介质,接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
这样,不再通过日期归档全量数据,而是直接存储数据的查询结果,在预先按照各样可能的查询条件执行查询后,仅需存储所有查询条件各自对应的查询结果,就能够满足后续的查询需求,同时,考虑到实际查询过程中的查询条件可控,因而存储查询结果的方式能够极大地降低需要存储的数据量,不仅能够提高数据的查询效率,还能够提高数据的查询时间的可控性,而且能够快速响应相关对象的查询需要,提升相关对象的使用体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;
确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果;
其中,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
2.如权利要求1所述的方法,其特征在于,确定所述目标存储区域为第二离线数据存储区域时,执行以下操作:
在所述第二离线数据存储区域中,查询与所述目标查询条件和所述目标时间信息匹配的目标信息查询结果;
其中,所述第二离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第二处理规则操作得到的各个存储数据,所述第二处理规则包括基于相应的离线数据库,聚合各个离线数据各自的***作信息以得到所述各个存储数据,所述离线数据中包括全局范围内数据的各类信息。
3.如权利要求1所述的方法,其特征在于,所述第一处理规则进一步包括:
周期性地采用第二引擎,从相应的离线数据库中定时地获取截止至当前时间信息处的指定历史时长内产生的离线变量数据,并将所述离线变量数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,以及调用所述第一引擎周期性地基于配置的各个查询条件,在更新后的所述历史数据中执行查询操作,统计得到所述各个查询条件各自对应的查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的查询结果的对应关系,以及将所述各个索引关键字和对应的查询结果,存储至第一离线数据存储区域。
4.如权利要求1或3所述的方法,其特征在于,所述第一处理规则进一步包括:
实时监听全局范围内数据的内容描述信息的变更情况,并在确定存在内容描述信息发生变更的目标数据时,采用第三引擎,将当前时间信息下的所述目标数据处理为内容合规的待存储数据;
基于所述待存储数据更新第一引擎中存储的历史数据,并调用所述第一引擎,基于配置的各个查询条件,在更新后的历史数据中执行查询操作,统计得到所述各个查询条件各自对应的实时查询结果;
分别针对所述各个查询条件生成对应的索引关键字,并建立各个索引关键字与所述当前时间信息下的实时查询结果的对应关系,以及将所述各个索引关键字和对应的实时查询结果,存储至第一离线数据存储区域。
5.如权利要求3所述的方法,其特征在于,所述将所述离线变量数据处理为内容合规的待存储数据,包括:
在所述离线变量数据包括的各个数据表中,至少将对应各个数据标识信息分别存储的内容描述信息,聚合为单表形式的数据内容;
将所述数据内容中的文本内容,替换为对应的编码形式的内容,并删除所述数据内容中被标记为无效的内容,以及将处理后的数据内容,作为内容合规的待存储数据。
6.如权利要求3所述的方法,其特征在于,所述更新所述第一引擎中存储的历史数据时,包括:
确定所述离线变量数据中关联有新发布状态的各个新增数据,并将所述各个新增数据直接存储至所述第一引擎中历史数据所在的存储区域;
确定所述离线变量数据中关联有删除状态的各个无效数据,并在所述第一引擎存储的历史数据中,删除与所述各个无效数据对应的各个数据;
确定所述离线变量数据中关联信息调整状态的各个待更新数据,并基于所述各个待更新数据的内容描述信息,修改所述第一引擎存储的历史数据中,与所述各个待更新数据对应的各个数据。
7.如权利要求3、5-6任一项所述的方法,其特征在于,所述分别针对所述各个查询条件生成对应的索引关键字,包括以下操作中的任意一项:
预先针对各种类型中的各个数据属性信息,分别配置对应的数字取值结果,并预先针对所述各种类型,分别配置对应的权重参数,以及将各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果和权重参数确定的加权结果,分别作为与各个查询条件各自所对应的索引关键字;
预先针对各种类型中的各个数据属性信息,分别配置各不相同的数字取值结果,并分别确定各个查询条件各自约束的各个数据属性信息,各自对应的数字取值结果,以及分别将受约束于同一查询条件的各个数字取值结果的二进制形式累加结果,作为对应查询条件生成的索引关键字;
预先针对各种类型的各个数据属性信息,分别配置各不相同的数字取值结果,并采用哈希算法,分别对应各个数字取值结果生成指定长度的哈希值,以及基于各个查询条件各自约束的各个数据属性信息,各自对应的哈希值,分别生成所述各个查询条件各自对应的索引关键字。
8.一种数据查询装置,其特征在于,包括:
接收单元,接收目标对象在可操作页面中触发的数据查询请求,确定所述数据查询请求针对的目标查询区域,其中,所述数据查询请求中包括用以进行数据查询的目标查询条件和目标时间信息;
查询单元,确定所述目标查询区域为第一离线数据存储区域时,在所述第一离线数据存储区域中,查询与所述目标查询条件和目标时间信息匹配的目标查询结果;
其中,所述第一离线数据存储区域中存储有对应各个时间信息保存的,按照预设的第一处理规则操作得到的查询结果,所述第一处理规则包括基于配置的各个查询条件,在相应的历史数据中执行查询操作以统计得到所述查询结果,所述目标查询条件包含于所述各个查询条件中,所述历史数据中至少包括全局范围内数据的内容描述信息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111289007.6A CN114090631A (zh) | 2021-11-02 | 2021-11-02 | 一种数据查询方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111289007.6A CN114090631A (zh) | 2021-11-02 | 2021-11-02 | 一种数据查询方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090631A true CN114090631A (zh) | 2022-02-25 |
Family
ID=80298658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111289007.6A Pending CN114090631A (zh) | 2021-11-02 | 2021-11-02 | 一种数据查询方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090631A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115203276A (zh) * | 2022-09-15 | 2022-10-18 | 江苏银承网络科技股份有限公司 | 承兑汇票的数据处理方法、***以及装置 |
WO2024093211A1 (zh) * | 2022-10-31 | 2024-05-10 | 青岛海尔空调器有限总公司 | 用于获取离线数据的方法及装置、无线通信模组、存储介质 |
-
2021
- 2021-11-02 CN CN202111289007.6A patent/CN114090631A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115203276A (zh) * | 2022-09-15 | 2022-10-18 | 江苏银承网络科技股份有限公司 | 承兑汇票的数据处理方法、***以及装置 |
WO2024093211A1 (zh) * | 2022-10-31 | 2024-05-10 | 青岛海尔空调器有限总公司 | 用于获取离线数据的方法及装置、无线通信模组、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和*** | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和*** | |
US9361344B2 (en) | System and method for distributed database query engines | |
CN114090631A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN111046034A (zh) | 管理内存数据及在内存中维护数据的方法和*** | |
WO2018095299A1 (zh) | 一种时序数据管理方法、设备和装置 | |
CN103336849A (zh) | 一种数据库检索***中提高检索速度的方法及装置 | |
CN107103068A (zh) | 业务缓存的更新方法及装置 | |
CN103353901B (zh) | 基于Hadoop分布式文件***的表数据的有序管理方法以及*** | |
CN109299115A (zh) | 一种数据存储方法、装置、服务器及存储介质 | |
CN113312376B (zh) | 一种用于Nginx日志实时处理分析的方法及终端 | |
CN111459900B (zh) | 大数据生命周期设置方法、装置、存储介质及服务器 | |
CN114328759A (zh) | 一种数据仓库的数据构建与管理方法及终端 | |
El Alami et al. | Supply of a key value database redis in-memory by data from a relational database | |
CN111752945A (zh) | 一种基于容器和层次模型的时序数据库数据交互方法和*** | |
CN111125045B (zh) | 一种轻量级etl处理平台 | |
CN117520270A (zh) | 一种hdfs小文件优化及分析处理的方法及装置 | |
US20190266163A1 (en) | System and method for behavior-on-read query processing | |
CN115168389A (zh) | 请求处理方法以及装置 | |
CN115599871A (zh) | 基于湖仓一体的数据处理***和方法 | |
CN109063201B (zh) | 一种基于混合存储方案的impala在线交互式查询方法 | |
CN103365897A (zh) | 一种支持Bigtable数据模型的片段缓存方法 | |
CN113157716A (zh) | 一种数据处理方法、装置、设备及介质 | |
JP2006092409A (ja) | 複合データベース検索システムおよび複合データベース検索方法ならびにそのためのプログラム | |
Singh | NoSQL: A new horizon in big data |
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 |