CN113297248B - 数据处理、资源分配方法、装置、设备及可读存储介质 - Google Patents
数据处理、资源分配方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113297248B CN113297248B CN202010730076.5A CN202010730076A CN113297248B CN 113297248 B CN113297248 B CN 113297248B CN 202010730076 A CN202010730076 A CN 202010730076A CN 113297248 B CN113297248 B CN 113297248B
- Authority
- CN
- China
- Prior art keywords
- input data
- query
- tables
- driving
- conversion
- 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.)
- Active
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/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/2453—Query optimisation
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开实施例提供数据处理、资源分配方法、装置、设备及可读存储介质。数据处理方法包括:获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对N个输入数据表进行连接,其中,N为大于1的正整数;将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询;基于并行查询结果生成输出数据表。本公开的实施例可以通过相同长度的转换值和并行查询提高多表连接查询的效率。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及数据处理、资源分配方法、装置、设备及可读存储介质。
背景技术
在数据库使用场景中,多表连接查询是非常关键且频率极高的一种查询场景。这种查询涉及的数据量大且计算复杂,因此查询时间较长,通常采用离线计算的方式得到查询结果,无法满足实时交互式查询分析的需求。
发明内容
为了解决相关技术中的问题,本公开实施例提供数据处理、资源分配方法、装置、设备及可读存储介质。
第一方面,本公开实施例中提供一种数据处理方法,包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
结合第一方面,本公开在第一方面的第一种实现方式中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
结合第一方面或第一方面的第一种实现方式,本公开在第一方面的第二种实现方式中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
结合第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
结合第一方面或第一方面的第一种实现方式,本公开在第一方面的第四种实现方式中,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
结合第一方面或第一方面的第一种实现方式,本公开在第一方面的第五种实现方式中,还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
结合第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
结合第一方面的第六种实现方式,本公开在第一方面的第七种实现方式中,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
结合第一方面或第一方面的第一种实现方式,本公开在第一方面的第八种实现方式中,还包括:
在所述并行查询操作结束之前,基于一部分并行查询结果确定与所述部分并行查询结果相关的第一存储资源;
基于所述部分并行查询结果和所述第一存储资源估计所述并行查询操作结束时所估计的第一输出数据表所需的第二存储资源。
结合第一方面的第八种实现方式,本公开在第一方面的第九种实现方式中,还包括:
响应于并行查询操作结束时的输出数据表所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的第一输出数据表的元素写入第二输出数据表;
将所述第一输出数据表和所述第二输出数据表合并为所述输出数据表。
第二方面,本公开实施例中提供一种数据处理装置,包括:获取模块,被配置为获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
转换模块,被配置为将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
并行查询模块,被配置为对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
生成模块,被配置为基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
结合第二方面,本公开在第二方面的第一种实现方式中,所述并行查询模块还被配置为:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
结合第二方面或第二方面的第一种实现方式,本公开在第二方面的第二种实现方式中,所述并行查询模块还被配置为:
以多维数组形式存储并行查询过程的中间结果和最终结果。
结合第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述生成模块还被配置为:
基于所述并行查询过程的最终结果生成输出数据表。
结合第二方面或第二方面的第一种实现方式,本公开在第二方面的第四种实现方式中,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
结合第二方面或第二方面的第一种实现方式,本公开在第二方面的第五种实现方式中,还包括:
数据偏斜检测模块,被配置为检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
高频元素统计模块,被配置为基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
高频元素存储模块,被配置为将与所述高频元素相关的信息存储到高频元素查找表。
结合第二方面的第五种实现方式,本公开在第二方面的第六种实现方式中,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
结合第二方面的第六种实现方式,本公开在第二方面的第七种实现方式中,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
结合第二方面或第二方面的第一种实现方式,本公开在第二方面的第八种实现方式中,还包括:
第一存储资源确定模块,被配置为在所述并行查询操作结束之前,基于一部分并行查询结果确定与所述部分并行查询结果相关的第一存储资源;
第二存储资源估计模块,被配置为基于所述部分并行查询结果和所述第一存储资源估计所述并行查询操作结束时所估计的第一输出数据表所需的第二存储资源。
结合第一方面的第八种实现方式,本公开在第一方面的第九种实现方式中,还包括:
第二输出数据表写入模块,被配置为响应于并行查询操作结束时的输出数据表所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的第一输出数据表的元素写入第二输出数据表;
输出数据表合并模块,被配置为将所述第一输出数据表和所述第二输出数据表合并为所述输出数据表。
第三方面,本公开实施例中提供一种存储资源分配方法,包括:
在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;
基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源。
结合第三方面,本公开在第三方面的第一种实现方式中,还包括:
响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;
将所述第一数据输出结果和所述第二数据输出结果合并为目标数据输出结果。
结合第三方面或第三方面的第一种实现方式,本公开在第三方面的第二种实现方式中,所述数据处理操作包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
结合第三方面的第二种实现方式,本公开在第三方面的第三种实现方式中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
结合第三方面的第三种实现方式,本公开在第三方面的第四种实现方式中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
结合第三方面的第四种实现方式,本公开在第三方面的第五种实现方式中,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
结合第三方面的第三种实现方式,本公开在第三方面的第六种实现方式中,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
结合第三方面的第三种实现方式,本公开在第三方面的第七种实现方式中,所述数据处理操作还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
结合第三方面的第七种实现方式,本公开在第三方面的第八种实现方式中,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
结合第三方面的第八种实现方式,本公开在第三方面的第九种实现方式中,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
第四方面,本公开实施例中提供一种存储资源分配装置,包括:
确定模块,被配置为在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;
估计模块,被配置为基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源。
结合第四方面,本公开在第四方面的第一种实现方式中,还包括:
写入模块,被配置为响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;
合并模块,被配置为将所述第一数据输出结果和所述第二数据输出结果合并为目标数据输出结果。
结合第四方面或第四方面的第一种实现方式,本公开在第四方面的第二种实现方式中,所述数据处理操作包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
结合第四方面的第二种实现方式,本公开在第四方面的第三种实现方式中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
结合第四方面的第三种实现方式,本公开在第四方面的第四种实现方式中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
结合第四方面的第四种实现方式,本公开在第四方面的第五种实现方式中,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
结合第四方面的第三种实现方式,本公开在第四方面的第六种实现方式中,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
结合第四方面的第三种实现方式,本公开在第四方面的第七种实现方式中,所述数据处理操作还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
结合第四方面的第七种实现方式,本公开在第四方面的第八种实现方式中,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
结合第四方面的第八种实现方式,本公开在第四方面的第九种实现方式中,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
第五方面,本公开实施例中提供一种电子设备,包括:存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面、第一方面的第一种实现方式到第九种实现方式、第三方面、第三方面的第一种实现方式到第九种实现方式任一项所述的方法。
第六方面,本公开实施例中提供了一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一种实现方式到第九种实现方式、第三方面、第三方面的第一种实现方式到第九种实现方式任一项所述的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的技术方案,通过获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
根据本公开实施例提供的技术方案,通过所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,从而提高并行查询的效率。
根据本公开实施例提供的技术方案,通过所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:以多维数组形式存储并行查询过程的中间结果和最终结果,从而按照输入数据表的顺序逐次进行查询并得到中间结果和最终结果,节约存储空间,提高查询效率。
根据本公开实施例提供的技术方案,通过所述基于并行查询结果生成输出数据表,包括:基于所述并行查询过程的最终结果生成输出数据表,从而通过逐次汇总得到最后结果,提高查询效率。
根据本公开实施例提供的技术方案,通过所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组,从而实现元素组的顺序存储,提高查询和存储的效率。
根据本公开实施例提供的技术方案,通过检测所述N个输入数据表之间的连接属性是否存在数据偏斜;基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;将与所述高频元素相关的信息存储到高频元素查找表,从而通过高频元素查找表的方式提高查询效率。
根据本公开实施例提供的技术方案,通过所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量,从而详细定义高频元素的各项特征,方便高频元素的使用,提高查询效率。
根据本公开实施例提供的技术方案,通过所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果,从而利用高频元素避免重复计算,提高查询效率。
根据本公开实施例提供的技术方案,通过在所述并行查询操作结束之前,基于一部分并行查询结果确定与所述部分并行查询结果相关的第一存储资源;基于所述部分并行查询结果和所述第一存储资源估计所述并行查询操作结束时所估计的第一输出数据表所需的第二存储资源,从而通过部分并行查询的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
根据本公开实施例提供的技术方案,通过响应于并行查询操作结束时的输出数据表所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的第一输出数据表的元素写入第二输出数据表;将所述第一输出数据表和所述第二输出数据表合并为所述输出数据表,从而在估计的整体存储资源不足时进行例外处理,保证输出数据表的完整和正确,提高执行效率。
根据本公开实施例提供的技术方案,通过获取模块,被配置为获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;转换模块,被配置为将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;并行查询模块,被配置为对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;生成模块,被配置为基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
根据本公开实施例提供的技术方案,通过在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源,从而通过部分数据处理的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
根据本公开实施例提供的技术方案,通过响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;将所述第一数据输出结果和所述第二数据输出结果合并为目标数据输出结果,从而在估计的整体存储资源不足时进行例外处理,保证目标数据输出结果的完整和正确,提高执行效率。
根据本公开实施例提供的技术方案,通过所述数据处理操作包括:获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
根据本公开实施例提供的技术方案,通过所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,从而提高并行查询的效率。
根据本公开实施例提供的技术方案,通过所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:以多维数组形式存储并行查询过程的中间结果和最终结果,从而按照输入数据表的顺序逐次进行查询并得到中间结果和最终结果,节约存储空间,提高查询效率。
根据本公开实施例提供的技术方案,通过所述基于并行查询结果生成输出数据表,包括:基于所述并行查询过程的最终结果生成输出数据表,从而通过逐次汇总得到最后结果,提高查询效率。
根据本公开实施例提供的技术方案,通过所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组,从而实现元素组的顺序存储,提高查询和存储的效率。
根据本公开实施例提供的技术方案,通过所述数据处理操作还包括:检测所述N个输入数据表之间的连接属性是否存在数据偏斜;基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;将与所述高频元素相关的信息存储到高频元素查找表,从而通过高频元素查找表的方式提高查询效率。
根据本公开实施例提供的技术方案,通过所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量,从而详细定义高频元素的各项特征,方便高频元素的使用,提高查询效率。
根据本公开实施例提供的技术方案,通过所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果,从而利用高频元素避免重复计算,提高查询效率。
根据本公开实施例提供的技术方案,通过确定模块,被配置为在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;估计模块,被配置为基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源,从而通过部分数据处理的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
本公开的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对示例性实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些示例性实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出根据本公开一实施方式的数据处理方法的流程图;
图2示出根据图1所示的数据处理方法的示例性逻辑框图;
图3示出根据本公开另一实施方式的数据处理方法的流程图;
图4a示出根据图3所示的高频元素查找表的示例性示意图;
图4b示出使用图4a所示的高频元素查找表的示例性有向无环图;
图5示出根据本公开又一实施方式的数据处理方法的流程图;
图6示出根据本公开一实施方式的数据处理装置的结构框图;
图7示出根据本公开一实施方式的存储资源分配方法的流程图;
图8示出根据本公开一实施方式的存储资源分配装置的结构框图;
图9示出根据本公开一实施方式的设备的结构框图;
图10是适于用来实现根据本公开一实施方式的数据处理方法或资源分配方法的计算机系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述。
在本公开的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
根据本公开实施例提供的技术方案,通过获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对N个输入数据表进行连接,其中,N为大于1的正整数;将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询;基于并行查询结果生成输出数据表,输出数据表包括元素组,元素组包括驱动元素以及基于驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
图1示出根据本公开一实施方式的数据处理方法的流程图。如图1所示,数据处理方法包括步骤S101~S104。
在步骤S101中,获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对N个输入数据表进行连接,其中,N为大于1的正整数。
在步骤S102中,将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数。
在步骤S103中,对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询。
在步骤S104中,基于并行查询结果生成输出数据表,输出数据表包括元素组,元素组包括驱动元素以及基于驱动元素查询到的元素。
在本公开的一个实施例中,可以对存储有数据的多个输入数据表进行多表连接查询。例如,表A是“学生成绩表”,其中具有元素“学生姓名”、“成绩”;表B是“家长联系方式表”,其中具有元素“学生姓名”、“家长姓名”;表C是“家长工作单位表”,其中具有元素“家长姓名”、“家长工作单位”。对表A、表B、表C进行多表连接查询,得到“学生姓名”、“成绩”、“家长姓名”、“家长工作单位”的综合信息时,可以获取表A、表B、表C,并依据表A与表B间的共有元素“学生姓名”、表B与表C间的共有元素“家长姓名”,按照表A、表B、表C的顺序进行连接。在对表A和表B进行连接查询的过程中,表A和表B中的共有元素“学生姓名”长度不一致(例如,学生姓名可能由两个字、三个字或更多字组成),查询效率较低。可以对“学生姓名”元素进行转换,例如哈希变换,得到相同长度的哈希变换后的“学生姓名”元素。由于变换后的元素长度相等,无论采用软件方式还是硬件方式实现,都可以提高表A和表B间的连接查询效率。类似的,可以对表B和表C中的共有元素“家长姓名”元素进行哈希变换,得到相同长度的哈希变换后的“家长姓名”元素,提高表B和表C间的连接查询效率。在表A、表B、表C中,表A是多表连接查询最前端的驱动表,“学生姓名”元素是表A和表B进行连接查询的驱动元素。在对表A和表B进行连接查询时,可以采用并行查询的方式,对驱动元素“学生姓名”元素的哈希变换值进行并行访问,从而提高查询效率。类似的,在对表B和表C进行连接查询时,可以将表B和表C的共有元素“家长姓名”作为驱动元素,并采用并行查询的方式,对“家长姓名”元素的哈希变换值进行并行访问,从而提高查询效率。在依次进行表A与表B间、表B与表C间的并行连接查询后,可以由并行查询结果生成输出表,输出表中包括元素组,元素组中包括驱动元素“学生姓名”元素、“家长姓名”元素,还包括由驱动元素查询得到的其它元素,“成绩”元素和“家长工作单位”元素,最终完成对表A、表B、表C的多表连接查询。本领域技术人员可以理解,采用哈希变化对数据表中的元素进行变换仅仅是示例,还可以采用其他变换后的元素长度相等的变换方式对数据表中的元素进行转换。
在本公开的一个实施例中,并行查询可以采用多线程的方式实现,例如使用诸如GPU(图形处理器)之类的可以执行多线程的处理器进行查询。在是使用GPU进行查询情况下的情况下,可以使用GPU Wrap中的多个线程实现并行查询。例如,在前述对表A、表B、表C进行多表连接查询的示例性实施例中,可以针对变换(例如,哈希变换)后的“学生姓名”元素,按照相同的姓在一个桶中的划分方式将表B分成多个桶(例如,哈希桶,Hash Bucket)。例如在表A和表B的连接查询的过程中,可以先根据表A中“学生姓名”元素为“王xx”的变换,在表B中查询“王”姓的桶,再在此桶中使用GPU Wrap中的多个线程进行并行查询,得到“王xx”的所有“家长姓名”元素。在前述表B和表C的连接查询中,也可以采用类似的多线程并行查询方式。采用多线程的方式,可以使用较少的资源消耗实现并行查询,从而提高并行查询的效率。
根据本公开实施例提供的技术方案,通过对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:利用并行执行的多个线程,对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,从而提高并行查询的效率。
在本公开的一个实施例中,可以采用多维数组的方式存储并行查询的中间结果,例如前述表A和表B进行连接查询后的“学生姓名”元素和“家长姓名”元素、表B和表C进行连接查询后的“家长姓名”元素和“家长工作单位”元素,还可以采用存储查询的最终结果,例如前述表A、表B、表C连接查询后的结果“学生姓名”、“成绩”、“家长姓名”、“家长工作单位”元素。多维数据是较为简洁的数据结构,可以按照输入数据表的顺序逐次进行查询并将中间结果和最终结果存储于多维数组中,从而节约存储空间,提高查询效率。
根据本公开实施例提供的技术方案,通过对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:以多维数组形式存储并行查询过程的中间结果和最终结果,从而按照输入数据表的顺序逐次进行查询并得到中间结果和最终结果,节约存储空间,提高查询效率。
在本公开的一个实施例中,通过对多个数据表的逐次并行连接查询逐渐得到最终结果,最后生成输出数据表。例如,前述对表A和表B的并行连接查询得到“学生姓名”、“成绩”、“家长姓名”元素;在表B和表C的并行连接查询后得到“学生姓名”、“成绩”、“家长姓名”、“家长工作单位”元素,为最终结果,得到输出数据表。基于逐次汇总的最终结果生成输出数据表,节约了存储空间,提高了查询效率。
根据本公开实施例提供的技术方案,通过基于并行查询结果生成输出数据表,包括:基于所述并行查询过程的最终结果生成输出数据表,从而通过逐次汇总得到最后结果,提高查询效率。
在本公开的一个实施例中,在前述对表A、表B、表C的多表连接查询中,表B中“王xx”的“家长姓名”可以是按照“父亲姓名”、“母亲姓名”、“祖父姓名”、“祖母姓名”、“外祖父姓名”、“外祖母姓名”的顺序出现的,在查询过程中可以按此顺序得到查询结果。而在输出数据表的元素组中,也可以按照“家长姓名”为“父亲姓名”、“母亲姓名”、“祖父姓名”、“祖母姓名”、“外祖父姓名”、“外祖母姓名”的顺序进行存储,与查询结果的顺序保持一致,从而提高查询和存储的效率。
根据本公开实施例提供的技术方案,通过输出数据表按照并行查询结果中元素组的出现顺序存储元素组,从而实现元素组的顺序存储,提高查询和存储的效率。
图2示出根据图1所示的数据处理方法的示例性逻辑框图。
在图2中,对输入数据表T0(a,b)201、T1(b,c)202、T2(c,d)203、T3(d,e)204进行多表连接查询,T0(a,b)201是驱动表,表T0(a,b)201和T1(b,c)202间连接查询的中间结果存储于二维数组表Iter[0]205中;T1(b,c)202和T2(c,d)203间连接查询的中间结果存储于二维数组表Iter[1]206中;由Iter[0]205、Iter[1]206等汇总得到的结果存储于多维数组表iRes 207中,iRes 207可以在多表连接查询的过程中随着表的增加而逐渐扩展;所有表连接查询完毕后,完成最终扩展的iRes 207存储到输出数据表Tout(a,b,c,d,e)208。
在本公开的一个实施例中,以驱动表T0(a,b)201中的(a0,b0)作为驱动元素,驱动对T1(b,c)202、T2(c,d)203、T3(d,e)204的多表连接查询。例如,在步骤S210中,对T1(b,c)202的第一列进行哈希变换,并对T1(b,c)202中哈希变换后为H(b0)的桶采用GPU Wrap中的多线程进行并行查询,并行的线程数w1=4,查询的中间结果存储于二维数组表Iter[0]205中;T0(a,b)201中的驱动元素(a0,b0)和Iter[0]205中的结果存储于iRes 207中,得到例如(a0,b0,c2)的a、b、c列。又例如,针对二维数组表Iter[0]205中的第一个中间结果(b0,c2),对T2(c,d)203的第一列进行哈希变换,并对T2(c,d)203中哈希变换后为H(c2)的桶采用GPUWrap中的多线程进行并行查询,并行的线程数w2=4,查询的中间结果存储于二维数组表Iter[1]206中;对于Iter[0]205中例如(b0,c3)的其它中间结果,也对T2(c,d)203进行类似的连接查询,查询的中间结果存储于二维数组表Iter[1]206中;基于Iter[1]206中的中间结果对iRes 207进行扩展,得到例如(a0,b0,c2,d1)的a、b、c、d列。又例如,针对二维数组表Iter[1]206中的第一个中间结果(c2,d1),对T3(d,e)204的第一列进行哈希变换,并对T3(d,e)204中哈希变换后为H(d1)的桶采用GPU Wrap中的多线程进行并行查询,并行的线程数w3=4;对于Iter[1]206中例如(c2,d2)的其它中间结果,也对T3(d,e)204进行类似的连接查询;基于对T3(d,e)进行连接查询的结果,对iRes 207进行扩展,得到例如(a0,b0,c2,d1,e2)的a、b、c、d、e列。在对所有输入数据表T0(a,b)201、T1(b,c)202、T2(c,d)203、T3(d,e)204进行多表连接查询后,将完全扩展后的iRes 207存储到输出数据表Tout(a,b,c,d,e)中,得到最终的输出结果。在上述示例性实施例中,通过例如哈希变换的变换方式得到等长的变换后数据,通过对变换后的等长数据进行查询提高了查询效率;通过例如GPU Wrap中的多线程进行并行查询,进一步提高了查询效率。双表连接查询的中间结果通过二维数组存储于Iter[0]205、Iter[1]206中,多表连接查询的中间结果通过多维数组存储于iRes 207中,节约了存储空间,提高了查询效率。iRes 207随着查询中表的增加而逐渐扩展,并在查询完所有表、扩展完毕后存储到输出数据表Tout(a,b,c,d,e),提高了查询效率。中间结果表Iter[0]205、Iter[1]206、iRes 207和输出数据表Tout(a,b,c,d,e)中的元素组均按照查询结果的顺序存储,实现了元素组的顺序存储,提高了查询和存储的效率。本领域技术人员可以理解,图2所示的各个数据表中采取两列多行的结构仅仅是示例,本公开的实施例可以采用各种形式的数据表。
图3示出根据本公开另一实施方式的数据处理方法的流程图。如图3所示,数据处理方法除了包括和图1相同的步骤S101~S104,还包括步骤S301、S302、S303。
在步骤S301中,检测N个输入数据表之间的连接属性是否存在数据偏斜。
在步骤S302中,基于检测到数据偏斜,在输出数据表中统计出现频率高于预设阈值的元素作为高频元素。
在步骤S303中,将与高频元素相关的信息存储到高频元素查找表。
在本公开的一个实施例中,N个输入数据表可以是相对静态的数据表,其中的数据变动较少,而对N个输入数据表的多表连接查询可能需要反复执行。在第一次连接查询完成后,当检测到输入数据表中存在数据偏斜时,在输出数据表中统计出现频率高于预定阈值的高频元素,并将与高频元素相关的信息存储到高频元素查找表中,充分利用了第一次连接查询的结果,从而提高后续连接查询的效率。
根据本公开实施例提供的技术方案,通过检测N个输入数据表之间的连接属性是否存在数据偏斜;基于检测到数据偏斜,在输出数据表中统计出现频率高于预设阈值的元素作为高频元素;将与高频元素相关的信息存储到高频元素查找表,从而通过高频元素查找表的方式提高查询效率。
在本公开的一个实施例中,高频元素查找表中存储的与高频元素相关的信息包括以下至少之一:高频元素在输入数据表中所属的项,例如所属的列;高频元素的值;高频元素在输出数据表中首次出现的序号,用于标识高频元素首次出现时在输出数据表中的地址偏移;与高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至高频元素的查询路径相同的第一查询路径的元素组的数量,用于标识后续不同查询路径中可以拷贝的元素组的数量。通过详细定义与高频元素相关的各项信息,清楚定义了高频元素的特征,方便了第一次连接查询后的查询中对高频元素的使用,提高了查询效率。
根据本公开实施例提供的技术方案,通过与高频元素相关的信息包括以下至少之一:高频元素在输入数据表中所属的项、高频元素的值、高频元素在输出数据表中首次出现时的序号、包括与高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至高频元素的查询路径相同的第一查询路径的元素组的数量,从而详细定义高频元素的各项特征,方便高频元素的使用,提高查询效率。
在本公开的一个实施例中,可以用有向无环图表征输出数据表中各元素间的连接关系。相对高频元素,高频元素后的各元素的查询路径是相同的,而从第一特定驱动元素到高频元素则可以存在多个不同的查询路径。当从第一特定驱动元素到高频元素得到第一查询路径后,响应于不同于第一查询路径的第二查询路径,由于高频元素后的各元素的查询路径相同,因此可以从高频元素查找表获得第二查询路径中高频元素之后的元素的查询结果,并且可以在基于第一查询路径的完整查询结果中仅引入第二查询路径和第一查询路径的差别即可得到基于第二查询路径的完整查询结果,从而避免了重复查询的繁琐计算,提高了查询效率。
本领域技术人员可以理解,预设阈值可以根据需要任意设置,本公开对此不作限制。
根据本公开实施例提供的技术方案,通过基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:响应于从不同于第一查询路径的第二查询路径对高频元素的重复访问,基于高频元素查找表所存储的与高频元素相关的信息获取第二查询路径中高频元素之后的元素的查询结果,从而利用高频元素避免重复计算,提高查询效率。
图4a示出根据图3所示的高频元素查找表的示例性示意图。
在图4a中,包括输入数据表T0(a,b)、T1(b,c)、T2(c,d)401,输出数据表Tout(a,b,c,d)402和高频元素查找表403。
例如,输出数据表Tout(a,b,c,d)402由输入数据表T0(a,b)、T1(b,c)、T2(c,d)401进行多表连接查询得到,查询时b=1或者5。T0(a,b)和T1(b,c)间的连接存在数据偏斜,在输出数据表Tout(a,b,c,d)402中b=5的出现次数较多为6次,例如大于阈值4次,可以认定为高频元素。在输出数据表Tout(a,b,c,d)402中b=5第一次出现的地址偏移量(数据偏斜)为4,(0,5,x,x)共出现3次。由此,可以得到高频元素查找表403中与高频元素相关的信息:层=b,标识在b中出现高频元素;取值=5,标识高频元素的值为5;偏斜=4,标识b=5第一次出现的地址偏移量为4;次数=3,标识第一查询路径(0,5)上高频元素5出现3次。
图4b示出使用图4a所示的高频元素查找表的示例性有向无环图。
在图4b中,第一特定驱动元素R标识连接查询的初始状态;层a、b、c、d分别对应图4a的401、402中的a、b、c、d,标识多表连接查询中的各层。有向无环图可以标识多表连接查询时输出数据表的生成过程。针对层b中的高频元素5 406,层a到层b间的第一查询路径是0404-5 406。层b、c、d间存在查询路径:5 406-4 407-4 410、5 406-7 408-3 409、5 406-7408-8411。层a和层b间的第一查询路径和层b、c、d间的查询路径构成了图4a中输出数据表Tout(a,b,c,d)402里偏斜为4~6的3个元素组(0,5,4,4)、(0,5,7,3)、(0,5,7,8)。在第一次连接查询后的后续连接查询中,基于第一查询路径的元素组(0,5,4,4)、(0,5,7,3)、(0,5,7,8)可以通过查询计算的方式完成。而针对区别于第一查询路径的第二查询路径1 405-5406,由于高频元素5 406后的查询路径不变,因此可以将元素组(0,5,4,4)、(0,5,7,3)、(0,5,7,8)中的第一个元素0变更为1,得到(1,5,4,4)、(1,5,7,3)、(1,5,7,8),即图4a中输出数据表Tout(a,b,c,d)402里偏斜为7~9的3个元素组。这种输出数据表中的元素组生成方式仅使用了数据变更和简单拷贝,无需繁琐的查询和重复计算,提高了查询效率。
图5示出根据本公开又一实施方式的数据处理方法的流程图。如图5所示,数据处理方法除了包括和图1相同的步骤S101~S104,还包括步骤S501、S502、S503、S504。
在步骤S501中,在并行查询操作结束之前,基于一部分并行查询结果确定与部分并行查询结果相关的第一存储资源。
在步骤S502中,基于部分并行查询结果和第一存储资源估计并行查询操作结束时所估计的第一输出数据表所需的第二存储资源。
在步骤S503中,响应于并行查询操作结束时的输出数据表所需的第三存储资源大于第二存储资源,将无法写入占用第二存储资源的第一输出数据表的元素写入第二输出数据表。
在步骤S504中,将第一输出数据表和第二输出数据表合并为输出数据表。
在本公开的一个实施例中,在并行连接查询操作结束之前,可以预估存储输出数据表所需要的存储资源,并相应分配存储空间,以利于多维数组的存储。为了节约计算存储资源的运算量,无需执行完整的并行连接查询,而采取抽样的方式,例如抽取1/10的输入数据进行并行连接查询计算,得到1/10数据所需要的存储资源,即为第一存储资源。通过第一存储资源和采样率1/10得到第二存储资源=10*第一存储资源,并按照第二存储资源的大小分配存储空间。在并行连接查询中,将查询结果写入占用第二存储资源的第一输出数据表。由于输入数据的分布可能不均匀,导致预估的第二存储资源可能不能满足整体查询需求。在并行连接查询结束时,如果发现输出数据表所需要的实际存储资源,即第三存储资源大于第二存储资源时,则再分配一块与第一输出数据表不同的第二输出数据表,将无法写入第一输出数据表的元素写入第二输出数据表。最后将第一输出数据表和第二输出数据表合并,得到完整的输出数据表。通过这种方式,以基于采样的部分并行查询得到第一存储资源,并按照采样率预测整体所需要的第二存储资源,降低了存储资源分配的计算复杂度,提高了存储资源分配的执行效率。而在第二存储资源预测不足时通过第二输出数据表进行补足,并与第一输出数据表合并得到完整的输出数据表,通过例外处理的方式保证了输出数据表的完整和正确,提高了整体的执行效率。
在本公开的一个实施例中,存储中间数据所需要的存储资源,也可以通过相同的方式得到。
根据本公开实施例提供的技术方案,通过在并行查询操作结束之前,基于一部分并行查询结果确定与部分并行查询结果相关的第一存储资源;基于部分并行查询结果和第一存储资源估计并行查询操作结束时所估计的第一输出数据表所需的第二存储资源,从而通过部分并行查询的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
根据本公开实施例提供的技术方案,通过响应于并行查询操作结束时的输出数据表所需的第三存储资源大于第二存储资源,将无法写入占用第二存储资源的第一输出数据表的元素写入第二输出数据表;将第一输出数据表和第二输出数据表合并为输出数据表,从而在估计的整体存储资源不足时进行例外处理,保证输出数据表的完整和正确,提高执行效率。
图6示出根据本公开一实施方式的数据处理装置的结构框图。如图6所示,数据处理装置600包括:获取模块601、转换模块602、并行查询模块603和生成模块604。
获取模块601被配置为获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对N个输入数据表进行连接,其中,N为大于1的正整数。
转换模块602被配置为将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数。
并行查询模块603被配置为对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询。
生成模块604被配置为基于并行查询结果生成输出数据表,输出数据表包括元素组,元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
根据本公开实施例提供的技术方案,通过获取模块被配置为获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对N个输入数据表进行连接,其中,N为大于1的正整;转换模块被配置为将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;并行查询模块被配置为对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询;生成模块被配置为基于并行查询结果生成输出数据表,输出数据表包括元素组,元素组包括所述驱动元素以及基于所述驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
根据本公开实施例提供的技术方案,通过所述并行查询模块还被配置为:利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,从而提高并行查询的效率。
根据本公开实施例提供的技术方案,通过所述并行查询模块还被配置为:以多维数组形式存储并行查询过程的中间结果和最终结果,从而按照输入数据表的顺序逐次进行查询并得到中间结果和最终结果,节约存储空间,提高查询效率。
根据本公开实施例提供的技术方案,通过所述生成模块还被配置为:基于所述并行查询过程的最终结果生成输出数据表,从而通过逐次汇总得到最后结果,提高查询效率。
根据本公开实施例提供的技术方案,通过输出数据表按照并行查询结果中元素组的出现顺序存储元素组,从而实现元素组的顺序存储,提高查询和存储的效率。
在本公开的一个实施例中,数据处理装置600还包括:数据偏斜检测模块,被配置为检测所述N个输入数据表之间的连接属性是否存在数据偏斜;高频元素统计模块,被配置为基于检测到数据偏斜,在输出数据表中统计出现频率高于预设阈值的元素作为高频元素;高频元素存储模块,被配置为将与高频元素相关的信息存储到高频元素查找表。
根据本公开实施例提供的技术方案,通过数据偏斜检测模块,被配置为检测所述N个输入数据表之间的连接属性是否存在数据偏斜;高频元素统计模块,被配置为基于检测到数据偏斜,在输出数据表中统计出现频率高于预设阈值的元素作为高频元素;高频元素存储模块,被配置为将与高频元素相关的信息存储到高频元素查找表,从而通过高频元素查找表的方式提高查询效率。
根据本公开实施例提供的技术方案,通过与高频元素相关的信息包括以下至少之一:高频元素在输入数据表中所属的项、高频元素的值、高频元素在输出数据表中首次出现时的序号、包括与高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至高频元素的查询路径相同的第一查询路径的元素组的数量,从而详细定义高频元素的各项特征,方便高频元素的使用,提高查询效率。
根据本公开实施例提供的技术方案,通过基于驱动元素的转换值按照预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:响应于从不同于所述第一查询路径的第二查询路径对高频元素的重复访问,基于高频元素查找表所存储的与高频元素相关的信息获取第二查询路径中高频元素之后的元素的查询结果,从而利用高频元素避免重复计算,提高查询效率。
在本公开的一个实施例中,数据处理装置600还包括:第一存储资源确定模块,被配置为在并行查询操作结束之前,基于一部分并行查询结果确定与部分并行查询结果相关的第一存储资源;第二存储资源估计模块,被配置为基于部分并行查询结果和第一存储资源估计并行查询操作结束时所估计的第一输出数据表所需的第二存储资源。
根据本公开实施例提供的技术方案,通过第一存储资源确定模块,被配置为在并行查询操作结束之前,基于一部分并行查询结果确定与部分并行查询结果相关的第一存储资源;第二存储资源估计模块,被配置为基于部分并行查询结果和第一存储资源估计并行查询操作结束时所估计的第一输出数据表所需的第二存储资源,从而通过部分并行查询的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
在本公开的一个实施例中,数据处理装置600还包括:第二输出数据表写入模块,被配置为响应于并行查询操作结束时的输出数据表所需的第三存储资源大于第二存储资源,将无法写入占用第二存储资源的第一输出数据表的元素写入第二输出数据表;输出数据表合并模块,被配置为将第一输出数据表和第二输出数据表合并为输出数据表。
根据本公开实施例提供的技术方案,通过第二输出数据表写入模块,被配置为响应于并行查询操作结束时的输出数据表所需的第三存储资源大于第二存储资源,将无法写入占用第二存储资源的第一输出数据表的元素写入第二输出数据表;输出数据表合并模块,被配置为将第一输出数据表和第二输出数据表合并为输出数据表,从而在估计的整体存储资源不足时进行例外处理,保证输出数据表的完整和正确,提高执行效率。
以下参照图7描述根据本公开一实施方式的存储资源分配方法的示例。
图7示出根据本公开一实施方式的存储资源分配方法的流程图。如图7所示,存储资源分配方法包括步骤S701和S702。
在步骤S701中,在数据处理操作结束之前,基于一部分数据处理结果确定与部分数据处理结果相关的第一存储资源。
在步骤S702中,基于部分数据处理结果和第一存储资源估计数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源。
在本公开的一个实施例中,在数据处理结束之前,可以预估存储目标处理结果所需要的存储资源,并相应分配存储空间,以利于处理结果的存储。为了节约计算存储资源的运算量,无需执行完整的数据处理,而采取抽样的方式,例如抽取1/10的输入数据进行数据处理计算,得到1/10数据所需要的存储资源,即为第一存储资源。通过第一存储资源和采样率1/10得到第二存储资源=10*第一存储资源,并按照第二存储资源的大小分配存储空间。在数据处理中,将查询结果写入占用第二存储资源的第一数据输出结果。由于输入数据的分布可能不均匀,导致预估的第二存储资源可能不能满足整体查询需求。在数据处理结束时,如果发现目标数据输出结果所需要的实际存储资源,即第三存储资源大于第二存储资源时,则再分配一块与第一数据输出结果不同的第二数据输出结果,将无法写入第一数据输出结果的元素写入第二数据输出结果。最后将第一数据输出结果和第二数据输出结果合并,得到完整的目标数据输出结果。通过这种方式,以基于采样的部分并行查询得到第一存储资源,并按照采样率预测整体所需要的第二存储资源,降低了存储资源分配的计算复杂度,提高了存储资源分配的执行效率。而在第二存储资源预测不足时通过第二数据输出结果进行补足,并与第一数据输出结果合并得到完整的目标数据输出结果,通过例外处理的方式保证了输出数据表的完整和正确,提高了整体的执行效率。
在本公开的一个实施例中,存储中间数据所需要的存储资源,也可以通过相同的方式得到。
根据本公开实施例提供的技术方案,通过在数据处理操作结束之前,基于一部分数据处理结果确定与部分数据处理结果相关的第一存储资源;基于部分数据处理结果和第一存储资源估计数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源,从而通过部分数据处理的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
在本公开的一个实施例中,存储资源分配方法还包括:响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用第二存储资源的第一数据输出结果的元素写入第二数据输出结果;将第一数据输出结果和第二数据输出结果合并为目标数据输出结果。
根据本公开实施例提供的技术方案,通过响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于第二存储资源,将无法写入占用第二存储资源的第一数据输出结果的元素写入第二数据输出结果;将第一数据输出结果和第二数据输出结果合并为目标数据输出结果,从而在估计的整体存储资源不足时进行例外处理,保证输出数据表的完整和正确,提高执行效率。
根据本公开实施例提供的技术方案,通过数据处理操作包括:获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询;基于并行查询结果生成输出数据表,输出数据表包括元素组,元素组包括驱动元素以及基于驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
根据本公开实施例提供的技术方案,通过对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:利用并行执行的多个线程,对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,从而提高并行查询的效率。
根据本公开实施例提供的技术方案,通过对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照所述预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:以多维数组形式存储并行查询过程的中间结果和最终结果,从而按照输入数据表的顺序逐次进行查询并得到中间结果和最终结果,节约存储空间,提高查询效率。
根据本公开实施例提供的技术方案,通过基于并行查询结果生成输出数据表,包括:基于并行查询过程的最终结果生成输出数据表,从而通过逐次汇总得到最后结果,提高查询效率。
根据本公开实施例提供的技术方案,通过输出数据表按照并行查询结果中元素组的出现顺序存储元素组,从而实现元素组的顺序存储,提高查询后的存储效率。
根据本公开实施例提供的技术方案,通过所述数据处理操作还包括:检测N个输入数据表之间的连接属性是否存在数据偏斜;基于检测到数据偏斜,在输出数据表中统计出现频率高于预设阈值的元素作为高频元素;将与高频元素相关的信息存储到高频元素查找表,从而通过高频元素查找表的方式提高查询效率。
根据本公开实施例提供的技术方案,通过与高频元素相关的信息包括以下至少之一:高频元素在输入数据表中所属的项、高频元素的值、高频元素在输出数据表中首次出现时的序号、包括与高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至高频元素的查询路径相同的第一查询路径的元素组的数量,从而详细定义高频元素的各项特征,方便高频元素的使用,提高查询效率。
根据本公开实施例提供的技术方案,通过基于驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:响应于从不同于所述第一查询路径的第二查询路径对高频元素的重复访问,基于高频元素查找表所存储的与高频元素相关的信息获取第二查询路径中高频元素之后的元素的查询结果,从而利用高频元素避免重复计算,提高查询效率。
本领域技术人员可以理解,参照图7描述的实施例中的存储资源分配方法可以采用参照图1至图6描述的实施例中的数据处理方案,从而使得本实施例中的存储资源分配方法具备参照图1至图6描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至图6进行的描述,其具体内容在此不再赘述。
图8示出根据本公开一实施方式的存储资源分配装置800的结构框图。如图8所示,存储资源分配装置800包括:确定模块801和估计模块802。
确定模块801被配置为在数据处理操作结束之前,基于一部分数据处理结果确定与部分数据处理结果相关的第一存储资源;
估计模块802被配置为基于部分数据处理结果和第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源。
根据本公开实施例提供的技术方案,通过确定模块被配置为在数据处理操作结束之前,基于一部分数据处理结果确定与部分数据处理结果相关的第一存储资源;估计模块被配置为基于部分数据处理结果和第一存储资源估计数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源,从而通过部分数据处理的存储资源估计整体存储资源需求,降低存储资源分配的计算复杂度,提高存储资源分配的执行效率。
在本公开的一个实施例中,存储资源分配装置800还包括:写入模块,被配置为响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;合并模块,被配置为将第一数据输出结果和第二数据输出结果合并为目标数据输出结果。
根据本公开实施例提供的技术方案,通过写入模块被配置为响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;合并模块被配置为将第一数据输出结果和第二数据输出结果合并为目标数据输出结果,从而在估计的整体存储资源不足时进行例外处理,保证输出数据表的完整和正确,提高执行效率。
根据本公开实施例提供的技术方案,通过数据处理操作包括:获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对N个输入数据表进行连接,其中,N为大于1的正整数;将N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询;基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素,从而通过相同长度的转换值和并行查询提高多表连接查询的查询效率。
根据本公开实施例提供的技术方案,通过对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照所述预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:利用并行执行的多个线程,对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,从而提高并行查询的效率。
根据本公开实施例提供的技术方案,通过对N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:以多维数组形式存储并行查询过程的中间结果和最终结果,从而按照输入数据表的顺序逐次进行查询并得到中间结果和最终结果,节约存储空间,提高查询效率。
根据本公开实施例提供的技术方案,通过基于并行查询结果生成输出数据表,包括:基于并行查询过程的最终结果生成输出数据表,从而通过逐次汇总得到最后结果,提高查询效率。
根据本公开实施例提供的技术方案,通过输出数据表按照并行查询结果中元素组的出现顺序存储元素组,从而实现元素组的顺序存储,提高查询和存储的效率。
根据本公开实施例提供的技术方案,通过数据处理操作还包括:检测所述N个输入数据表之间的连接属性是否存在数据偏斜;基于检测到数据偏斜,在输出数据表中统计出现频率高于预设阈值的元素作为高频元素;将与高频元素相关的信息存储到高频元素查找表,从而通过高频元素查找表的方式提高查询效率。
根据本公开实施例提供的技术方案,通过与高频元素相关的信息包括以下至少之一:高频元素在输入数据表中所属的项、高频元素的值、高频元素在输出数据表中首次出现时的序号、包括与高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至高频元素的查询路径相同的第一查询路径的元素组的数量,从而详细定义高频元素的各项特征,方便高频元素的使用,提高查询效率。
根据本公开实施例提供的技术方案,通过基于驱动元素的转换值按照预设连接顺序依次对N个输入数据表中驱动表以外的输入数据表的转换表进行并行查询,包括:响应于从不同于所述第一查询路径的第二查询路径对高频元素的重复访问,基于高频元素查找表所存储的与高频元素相关的信息获取第二查询路径中高频元素之后的元素的查询结果,从而利用高频元素避免重复计算,提高查询效率。
本领域技术人员可以理解,参照图8描述的实施例中的存储资源分配装置可以采用参照图1至图7描述的实施例中的方案,从而使得本实施例中的存储资源分配方法具备参照图1至图7描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至图7进行的描述,其具体内容在此不再赘述。
图9示出根据本公开一实施方式的设备的结构框图。
前述实施例描述了数据处理装置或资源分配装置的内部功能和结构,在一个可能的设计中,前述数据处理装置或资源分配装置的结构可实现为电子设备,如图9中所示,该电子设备900可以包括处理器901和存储器902。
所述存储器902用于存储支持处理器执行上述任一实施例中数据处理方法或者资源分配方法的程序,所述处理器901被配置为用于执行所述存储器902中存储的程序。
所述存储器902用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器901执行以实现以下步骤:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
在本公开的一个实施例中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
在本公开的一个实施例中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
在本公开的一个实施例中,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
在本公开的一个实施例中,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
在本公开的一个实施例中,所述步骤还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
在本公开的一个实施例中,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
在本公开的一个实施例中,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
在本公开的一个实施例中,所述步骤还包括:
在所述并行查询操作结束之前,基于一部分并行查询结果确定与所述部分并行查询结果相关的第一存储资源;
基于所述部分并行查询结果和所述第一存储资源估计所述并行查询操作结束时所估计的第一输出数据表所需的第二存储资源。
在本公开的一个实施例中,所述步骤还包括:
响应于并行查询操作结束时的输出数据表所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的第一输出数据表的元素写入第二输出数据表;
将所述第一输出数据表和所述第二输出数据表合并为所述输出数据表。
所述存储器902用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令还可以被所述处理器901执行以实现以下步骤:
在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;
基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源。
在本公开的一个实施例中,所述步骤还包括:
响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;
将所述第一数据输出结果和所述第二数据输出结果合并为目标数据输出结果。
在本公开的一个实施例中,所述数据处理操作包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
在本公开的一个实施例中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
在本公开的一个实施例中,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
在本公开的一个实施例中,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
在本公开的一个实施例中,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
在本公开的一个实施例中,所述数据处理操作还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
在本公开的一个实施例中,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
在本公开的一个实施例中,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
图10是适于用来实现根据本公开一实施方式的数据处理方法或资源分配方法的计算机系统的结构示意图。
如图10所示,计算机系统1000包括处理器(诸如CPU、GPU、FPGA等)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行上述附图所示的实施方式中的部分或全部处理。在RAM1003中,还存储有系统1000操作所需的各种程序和数据。处理器1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本公开的实施方式,上文参考附图描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行附图中的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (22)
1.一种数据处理方法,包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
2.根据权利要求1所述的方法,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
3.根据权利要求1或2所述的方法,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
4.根据权利要求3所述的方法,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
5.根据权利要求1或2所述的方法,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
6.根据权利要求1或2所述的方法,还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
7.根据权利要求6所述的方法,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
8.根据权利要求7所述的方法,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
9.根据权利要求1或2所述的方法,还包括:
在所述并行查询操作结束之前,基于一部分并行查询结果确定与所述部分并行查询结果相关的第一存储资源;
基于所述部分并行查询结果和所述第一存储资源估计所述并行查询操作结束时所估计的第一输出数据表所需的第二存储资源。
10.根据权利要求9所述的方法,还包括:
响应于并行查询操作结束时的输出数据表所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的第一输出数据表的元素写入第二输出数据表;
将所述第一输出数据表和所述第二输出数据表合并为所述输出数据表。
11.一种数据处理装置,包括:
获取模块,被配置为获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
转换模块,被配置为将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
并行查询模块,被配置为对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
生成模块,被配置为基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
12.一种存储资源分配方法,包括:
在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;
基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源,
响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;
将所述第一数据输出结果和所述第二数据输出结果合并为目标数据输出结果,
其中,所述数据处理操作包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
13.根据权利要求12所述的方法,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
利用并行执行的多个线程,对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询。
14.根据权利要求13所述的方法,所述对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
以多维数组形式存储并行查询过程的中间结果和最终结果。
15.根据权利要求14所述的方法,所述基于并行查询结果生成输出数据表,包括:
基于所述并行查询过程的最终结果生成输出数据表。
16.根据权利要求13所述的方法,所述输出数据表按照所述并行查询结果中所述元素组的出现顺序存储所述元素组。
17.根据权利要求13所述的方法,所述数据处理操作还包括:
检测所述N个输入数据表之间的连接属性是否存在数据偏斜;
基于检测到数据偏斜,在所述输出数据表中统计出现频率高于预设阈值的元素作为高频元素;
将与所述高频元素相关的信息存储到高频元素查找表。
18.根据权利要求17所述的方法,所述与所述高频元素相关的信息包括以下至少之一:所述高频元素在输入数据表中所属的项、所述高频元素的值、所述高频元素在输出数据表中首次出现时的序号、包括与所述高频元素在输出数据表中首次出现时所在的元素组中从第一特定驱动元素至所述高频元素的查询路径相同的第一查询路径的元素组的数量。
19.根据权利要求18所述的方法,所述基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询,包括:
响应于从不同于所述第一查询路径的第二查询路径对所述高频元素的重复访问,基于所述高频元素查找表所存储的与所述高频元素相关的信息获取所述第二查询路径中所述高频元素之后的元素的查询结果。
20.一种存储资源分配装置,包括:
确定模块,被配置为在数据处理操作结束之前,基于一部分数据处理结果确定与所述部分数据处理结果相关的第一存储资源;
估计模块,被配置为基于所述部分数据处理结果和所述第一存储资源估计所述数据处理操作结束时所估计的第一数据输出结果所需的第二存储资源,
写入模块,被配置为响应于数据处理操作结束时的存储输出数据所需的第三存储资源大于所述第二存储资源,将无法写入占用所述第二存储资源的所述第一数据输出结果的元素写入第二数据输出结果;
合并模块,被配置为将所述第一数据输出结果和所述第二数据输出结果合并为目标数据输出结果,
其中,所述数据处理操作包括:
获取分别存储有多个数据的N个输入数据表并按照预设连接顺序对所述N个输入数据表进行连接,其中,N为大于1的正整数;
将所述N个输入数据表中的M个元素组中的元素转换为具有相同长度的转换值,以获取包括转换值的N个转换表,其中,M为大于1的正整数;
对所述N个输入数据表中的处于预设连接顺序最前端的驱动表中的驱动元素进行并行访问,并基于所述驱动元素的转换值按照所述预设连接顺序依次对所述N个输入数据表中所述驱动表以外的输入数据表的转换表进行并行查询;
基于并行查询结果生成输出数据表,所述输出数据表包括元素组,所述元素组包括所述驱动元素以及基于所述驱动元素查询到的元素。
21.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1-10、12-19任一项所述的方法。
22.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如权利要求1-10、12-19任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010730076.5A CN113297248B (zh) | 2020-07-27 | 2020-07-27 | 数据处理、资源分配方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010730076.5A CN113297248B (zh) | 2020-07-27 | 2020-07-27 | 数据处理、资源分配方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297248A CN113297248A (zh) | 2021-08-24 |
CN113297248B true CN113297248B (zh) | 2022-04-26 |
Family
ID=77318232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010730076.5A Active CN113297248B (zh) | 2020-07-27 | 2020-07-27 | 数据处理、资源分配方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297248B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930294B2 (en) * | 2008-08-12 | 2011-04-19 | International Business Machines Corporation | Method for partitioning a query |
US8166022B2 (en) * | 2009-08-18 | 2012-04-24 | International Business Machines Corporation | System, method, and apparatus for parallelizing query optimization |
CN109656946B (zh) * | 2018-09-29 | 2022-12-16 | 创新先进技术有限公司 | 一种多表关联查询方法、装置及设备 |
CN110263038B (zh) * | 2019-06-11 | 2021-06-15 | 中国人民大学 | 一种基于分组向量的哈希多表连接实现方法 |
-
2020
- 2020-07-27 CN CN202010730076.5A patent/CN113297248B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113297248A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710618A (zh) | 知识图谱数据关系分离的混合存储方法及系统 | |
CN106095951B (zh) | 基于负载均衡和查询日志的数据空间多维索引方法 | |
Li et al. | Bounded approximate query processing | |
CN103309975A (zh) | 一种重复数据删除方法和设备 | |
US20230161765A1 (en) | System and method for disjunctive joins using a lookup table | |
US20230205769A1 (en) | System and method for disjunctive joins | |
Liroz-Gistau et al. | Dynamic workload-based partitioning for large-scale databases | |
Lee et al. | MRDataCube: Data cube computation using MapReduce | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
CN113297248B (zh) | 数据处理、资源分配方法、装置、设备及可读存储介质 | |
CN110442754B (zh) | 标签更新方法及装置、分布式存储系统 | |
CN116595302A (zh) | 一种不规则矩阵spmv在gpu上的实现方法、电子设备及介质 | |
CN113822768A (zh) | 社区网络的处理方法、装置、设备及存储介质 | |
CN106446039B (zh) | 聚合式大数据查询方法及装置 | |
Yang et al. | A dynamic balanced quadtree for real-time streaming data | |
CN109992687B (zh) | 人脸数据的搜索方法、装置、电子设备及可读存储介质 | |
CN115563103B (zh) | 一种多维度聚合方法、系统、电子设备及存储介质 | |
CN111159218B (zh) | 数据处理方法、装置及可读存储介质 | |
Liu et al. | The optimization of apriori algorithm based on array and its application in the analysis of insurance clients | |
CN114969913B (zh) | 一种三维模型构件实例化方法、系统、设备及介质 | |
Fu | An improved parallel collaborative filtering algorithm based on Hadoop | |
Yuan et al. | Optimization and realization of parallel frequent item set mining algorithm | |
CN118035278A (zh) | 一种数据库查询方法、装置、电子设备及存储介质 | |
Rafailidis et al. | Indexing media storms on flink | |
CN117290383A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058629 Country of ref document: HK |