CN115422205A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115422205A CN115422205A CN202211262636.4A CN202211262636A CN115422205A CN 115422205 A CN115422205 A CN 115422205A CN 202211262636 A CN202211262636 A CN 202211262636A CN 115422205 A CN115422205 A CN 115422205A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- redistribution
- target
- column
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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
- 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
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质,涉及数据库技术领域。该方法包括:接收数据查询请求,并确定数据查询请求对应的目标数据表;从多个重分布索引中确定与目标数据表对应的目标索引;其中,重分布索引中的数据是基于重分布索引的索引列分布存储在分布式数据库中的;当针对数据查询请求的操作指向目标索引的索引列时,根据目标索引,对原始执行计划进行优化,生成目标执行计划;针对数据查询请求的操作包括单表聚合操作和/或多表关联操作;运行目标执行计划,得到数据查询请求对应的查询结果。本申请实施例实现了查询优化,减少了跨节点的数据交换操作,提高了数据处理的效率,提升整个分布式数据库的性能。
Description
技术领域
本申请涉及数据库技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
随着信息技术的发展,数据库得到了广泛的应用,数据的存储量与日俱增,用户对数据库中数据的查询需求也越来越复杂。这就需要针对数据库的查询进行优化,以保证数据库在处理大量复杂的查询请求时的查询效率和质量。
分布式HTAP(Hybrid Transactional Analytical Processing,混合事务和分析处理)数据库指的是同时具有OLTP(On-Line Transactional Processing,在线事务处理)和OLAP(On-Line Analytical Processing,在线数据分析)能力的分布式数据库。
目前,在分布式HTAP数据库中,数据只能按照表的主键进行分布,使得对于OLAP查询无法进行查询优化,在进行数据查询的过程中需要进行大量跨节点数据交换,数据处理效率较低,导致数据库性能下降。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质,可以解决现有技术中分布式HTAP数据库对于OLAP查询无法进行查询优化、数据处理效率较低的问题。
所述技术方案如下:
根据本申请实施例的一个方面,提供了一种数据处理的方法,该方法包括:
接收数据查询请求,并确定所述数据查询请求对应的目标数据表;
从多个重分布索引中确定与所述目标数据表对应的目标索引;其中,所述重分布索引中的数据是基于所述重分布索引的索引列分布存储在分布式数据库中的;
当针对所述数据查询请求的操作指向所述目标索引的索引列时,根据所述目标索引,对原始执行计划进行优化,生成目标执行计划;
针对所述数据查询请求的操作包括单表聚合操作和/或多表关联操作;
运行所述目标执行计划,得到所述数据查询请求对应的查询结果。
可选地,所述方法还包括:
将待查询数据表中的至少一列作为索引列;
基于所述索引列,建立所述重分布索引;其中,所述重分布索引包含对应的待查询数据表的所有行和所有列,所述重分布索引包括多个数据桶,且所述数据桶包括的所有数据行的索引值相同;
确定所述重分布索引所属的同分布组;所述同分布组包括多个索引列数据分布相同的重分布索引。
可选地,所述同分布组中索引值相同的数据桶存储于同一数据库节点;所述同分布组中的索引值相同的数据桶在发生数据调度时作为一个整体进行迁移。
可选地,针对所述数据查询请求的操作包括单表聚合操作;
所述根据所述重分布索引,对原始执行计划进行优化,包括:
确定参与所述单表聚合操作的聚合数据表,并从所述多个重分布索引中确定与所述聚合数据表对应的第一索引;
若所述单表聚合操作所指定的分组列包含所述第一索引的索引列,则扫描第一索引,并删除所述原始执行计划中的跨节点数据交换算子。
可选地,针对所述数据查询请求的操作包括多表关联操作;
所述根据所述重分布索引,对原始执行计划进行优化,包括:
确定参与所述多表关联操作的至少两个关联数据表,并从所述多个重分布索引中确定与所述关联数据表对应的第二索引;
若所述多表关联操作所指定的关联列包含每一第二索引的索引列,且每一第二索引所属同一个同分布组,则扫描每一第二索引,并删除所述原始执行计划中的跨节点数据交换算子。
可选地,所述方法还包括:
若至少存在一个满足预设条件的第一关联数据表,且至少存在一个不满足预设条件的第二关联数据表,则扫描所述第一关联数据表对应的重分布索引,消除所述第一关联数据表对应的跨节点数据交换算子,并扫描所述第二关联数据表,保留所述第二关联数据表对应的跨节点数据交换算子;
其中,所述预设条件为所述关联数据表存在与其对应的重分布索引,且所述多表关联操作所指定的关联列包含所述关联数据表对应的重分布索引的索引列。
可选地,所述方法还包括:
当所述分布式数据库中发生数据调度时,维持所述多个重分布索引不变;
当所述分布式数据库中数据调度结束时,更新所述多个重分布索引。
根据本申请实施例的另一个方面,提供了一种数据处理装置,该装置包括:
目标数据表确定模块,用于接收数据查询请求,并确定所述数据查询请求对应的目标数据表;
目标索引确定模块,用于从多个重分布索引中确定与所述目标数据表对应的目标索引;其中,所述重分布索引中的数据是基于所述重分布索引的索引列分布存储在分布式数据库中的;
优化模块,用于当针对所述数据查询请求的操作指向所述目标索引的索引列时,根据所述目标索引,对原始执行计划进行优化,生成目标执行计划;针对所述数据查询请求的操作包括单表聚合操作和/或多表关联操作;
执行模块,用于运行所述目标执行计划,得到所述数据查询请求对应的查询结果。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一种数据处理方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种数据处理方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
通过预先建立目标数据表的目标索引,并将目标索引中的数据按照其索引列分布在分布式数据库中,使得当针对数据查询请求的单表聚合操作和/或多表关联操作指向目标索引的索引列时,能够实现查询优化。通过根据目标索引,对原始执行计划进行优化,得到目标执行计划,减少了目标执行计划中的跨节点的数据交换操作,提高了数据处理的效率,提升整个分布式数据库的性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种查询优化***的结构示意图;
图3为本申请实施例提供的一种分布式HTAP数据库的***架构图;
图4为本申请实施例提供的一种数据处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在分布式HTAP数据库中,数据有行存和列存两种形式,分别对应于面向OLTP的场景和面向OLAP的场景,行存和列存的数据通过某种方式进行同步。在一个强实时性的HTAP数据库中,这种同步方式要求行存和列存中的数据满足相同的分布以保证同步效率即实时性,这就要求HTAP数据库中的数据应以OLTP中的分布形式为准。
在分布式HTAP数据库中,为了响应OLTP的需求,数据只能按照表的主键进行分布,使得对于OLAP查询无法进行查询优化。OLAP查询中如果包含分组列为非主键列的单表聚合或关联列为非主键列的多表关联,则只能进行低效的跨节点数据交换,极大降低了分布式HTAP数据库的性能。
本申请提供的数据处理方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的一种数据处理方法的流程示意图,如图1所示,该方法包括:
步骤S101,接收数据查询请求,并确定数据查询请求对应的目标数据表。
具体地,数据查询请求可以为用户发出的进行数据查询的请求,数据查询请求可以包括查询的对象信息,查询的对象信息可以为需要在哪些数据表中进行查询;数据查询请求还可以包括查询的结果信息,即从这些数据表中需要筛选出哪些信息。
将数据查询请求所指示的需要查询的数据表作为对应的目标数据表,数据查询请求可以对应一个目标数据表,也可以对应多个目标数据表,本申请实施例对此不做限制。
步骤S102,从多个重分布索引中确定与目标数据表对应的目标索引;其中,重分布索引中的数据是基于重分布索引的索引列分布存储在分布式数据库中的。
具体地,在进行数据查询之前,可以预先建立多个重分布索引,并基于重分布索引的索引列将重分布索引分布中的数据存储在分布式数据库中。其中,分布式数据库可以包括多个数据库节点,通过重分布索引,可以快速准确地定位到存储对应数据的数据库节点,索引列可以用于表征对应的数据在分布式数据库中的分布位置。
在分布式数据库中,数据表中的数据一般是基于主键进行分布存储的,本申请实施例中,通过建立重分布索引,可以将数据表中的数据重新进行分布,以满足后续查询优化的条件。
目标索引可以为目标数据表对应的重分布索引,目标数据表可以对应一个目标索引,也可以对应多个目标索引,本申请实施例对此不做限制。
步骤S103,当针对数据查询请求的操作指向目标索引的索引列时,根据目标索引,对原始执行计划进行优化,生成目标执行计划;
针对数据查询请求的操作包括单表聚合操作和/或多表关联操作。
具体地,为获取数据查询请求中的结果信息,需要对目标数据表进行一系列操作,针对数据查询请求的操作可以包括单表聚合操作和/或多表关联操作。其中,单表聚合操作可以为将一个表中多行或多列数据进行汇聚或合并的操作,多表关联操作可以为将多个表关联起来的操作。
下面以表A和表B作为示例进行说明,其中表A为销售明细表,包含每次销售记录都不同的销售明细号(主键),销售的商品,商品的供应商,以及销售价;表B为采购明细表,包含每次采购记录都不同的采购明细号(主键),采购的商品,商品的供应商,以及采购价。
表A:销售明细表
销售明细号 | 商品 | 供应商 | 销售价 |
1 | A | 甲 | 10 |
2 | A | 甲 | 10 |
3 | A | 乙 | 15 |
4 | B | 甲 | 20 |
5 | B | 乙 | 25 |
6 | B | 乙 | 25 |
7 | C | 甲 | 35 |
8 | C | 乙 | 30 |
9 | C | 甲 | 35 |
10 | C | 乙 | 30 |
表B:采购明细表
采购明细号 | 商品 | 供应商 | 采购价 | 采购量 |
1 | A | 甲 | 8 | 100 |
2 | A | 乙 | 10 | 100 |
3 | B | 甲 | 18 | 100 |
4 | B | 乙 | 20 | 100 |
5 | C | 甲 | 30 | 100 |
6 | C | 乙 | 28 | 100 |
例如,数据查询请求1为“查询每个供应商所有商品的销售数量”,需要在表A中将所有销售记录按供应商分组,并统计每个供应商分组的记录条数,该操作为单表聚合操作,也就是说,针对数据查询请求1的操作包括单表聚合操作。
又例如,数据查询请求2为“查询每个供应商所有商品的销售毛利”,需要将表A中的销售记录和表B中的采购记录取出,对两边的记录使用供应商列做匹配,该操作为多表关联操作,也就是说,针对数据查询请求2的操作包括多表关联操作。
现有技术中,为满足OLTP要求,数据表是根据主键分布存储的分布式HTAP数据库中的,以表A为例,表A的主键销售明细号,表A中包括10行数据,可以将明细号1-5的行数据存储在数据库节点DB1,将明细号6-10的行数据存储在数据库节点DB2。为满足数据查询请求1,需要进行分布式计算,由DB1计算供应商甲,DB2计算供应商乙,由于供应商甲和供应商乙的销售记录都分散在DB1和DB2,此时需要DB1和DB2进行跨节点的数据交换,由DB1将本地的供应商乙的数据行传输给DB2,由DB2将本地的供应商甲的数据行传输给DB1,之后DB1和DB2才能够分别计算供应商甲和供应商乙的总的销售数量。
本申请实施例中,可以基于表A中的供应商列作为索引列,生成重分布索引表A’,如下表:
表A’
销售明细号 | 商品 | 供应商 | 销售价 |
1 | A | 甲 | 10 |
2 | A | 甲 | 10 |
4 | B | 甲 | 20 |
7 | C | 甲 | 35 |
9 | C | 甲 | 35 |
3 | A | 乙 | 15 |
5 | B | 乙 | 25 |
6 | B | 乙 | 25 |
8 | C | 乙 | 30 |
10 | C | 乙 | 30 |
表A’中供应商列为索引列,可以将表A’中供应商甲的五条行数据存储在数据库节点DB1,将表A’中供应商乙的五条行数据存储在数据库节点DB2。
在表A’按照上述分布方式存储在分布式数据库的基础上,当接收到数据查询请求1时,目标数据表为表A,索引列为表A’,目标索引为供应商列。当针对数据查询请求1中的单表聚合操作指定供应商列为分组列,即目标索引的索引列时,为获取数据查询请求1对应的查询结果,即供应商甲和供应商乙采购的商品销售总数量,可以直接在DB1和DB2上分别独立进行查询计算,不需要DB1与DB2互相进行跨节点的数据交换,即可以实现同分布优化。
其中,同分布优化是一种查询优化,指的是在分布式数据库中,用户通常可以选择一张表中任意的一列作为索引列,这样这张表的数据就可以按照这个索引列分布到不同的数据库节点上。在进行单表聚合或多表关联时,如果聚合的分组列或关联的关联列是上述的索引列,则各个数据库节点可以仅在本地进行这个聚合或关联计算,避免跨节点的数据交换。
同样地,可以基于表B中的供应商列作为索引列,生成重分布索引表B’,
表B’:
采购明细号 | 商品 | 供应商 | 采购价 | 采购量 |
1 | A | 甲 | 8 | 100 |
3 | B | 甲 | 18 | 100 |
5 | C | 甲 | 30 | 100 |
2 | A | 乙 | 10 | 100 |
4 | B | 乙 | 20 | 100 |
6 | C | 乙 | 28 | 100 |
表B’中供应商列为索引列,可以将表B’中供应商甲的三条行数据存储在数据库节点DB1,将表B’中供应商乙的三条行数据存储在数据库节点DB2。
在表B’按照上述分布方式存储在分布式数据库的基础上,当接收到数据查询请求2时,目标数据表包括表A和表B,目标索引包括表A’和表B’,表A’和表B’的索引列均为供应商列。当针对数据查询请求2中的多表关联操作指定供应商列为关联列,即目标索引的索引列时,为获取数据查询请求2对应的查询结果,即供应商甲和供应商乙采购的商品销售毛利,由于表A’中供应商甲的五条行数据存储在DB1中,且表B’中供应商甲的三条行数据存储在DB1中,因此可以直接在DB1上进行关联计算得到供应商甲的商品销售毛利,不需要与DB2进行跨节点的数据交换;同理可以直接在DB2上进行关联计算得到供应商乙的商品销售毛利,不需要与DB1进行跨节点的数据交换;即可以实现同分布优化。
需要说明的是,后续实施例均在上述示例的基础上进行说明,但是上述示例并不对本申请的数据处理方法进行限制。
根据上述原理,可知当针对数据查询请求的单表聚合操作和/或多表关联操作指向目标索引的索引列时,能够实现查询优化,进而可以根据目标索引,对原始执行计划进行优化,将优化之后的执行计划作为目标执行计划。其中,执行计划可以实现某一查询请求的操作集合,原始执行计划可以为以目标数据表基于主键列分布的前提下生成的执行计划。
通过根据目标索引,对原始执行计划进行优化,得到目标执行计划,可以尽量减少目标执行计划中的跨节点的数据交换操作,提高了数据处理的效率,进而可以提升整个分布式数据库的性能。
此外,本申请实施例中的查询优化是基于索引实现的,分布式数据库可以通过在事务中同时处理目标数据及其对应的目标索引以维持两者的一致性。
步骤S104,运行目标执行计划,得到数据查询请求对应的查询结果。
具体地,在得到目标执行计划之后,可以运行目标执行计划,输出数据查询请求对应的查询结果。
本申请实施例中,通过预先建立目标数据表的目标索引,并将目标索引中的数据按照其索引列分布在分布式数据库中,使得当针对数据查询请求的单表聚合操作和/或多表关联操作指向目标索引的索引列时,能够实现查询优化。通过根据目标索引,对原始执行计划进行优化,得到目标执行计划,减少了目标执行计划中的跨节点的数据交换操作,提高了数据处理的效率,提升整个分布式数据库的性能。
作为一种可选实施例,该方法还包括:
将待查询数据表中的至少一列作为索引列;
基于索引列,建立重分布索引,其中,重分布索引包含对应的待查询数据表的所有行和所有列,重分布索引包括多个数据桶,且数据桶包括的所有数据行的索引值相同;
确定重分布索引所属的同分布组;同分布组包括多个索引列数据分布相同的重分布索引。
具体地,可以预先获取待查询数据表,待查询数据表可以为数据查询可能会涉及到的数据表,待查询数据表可以包括目标数据表。
从待查询数据表中选取至少一列作为索引列,其中,可以将待查询数据表中的任意一列作为索引列,也可以将待查询数据中的至少两列的组合作为索引列,至少两列可以是相邻关系,也可以不是相邻关系,本申请实施例对此不做限定。
索引列中可以包括多个索引值,不同的索引值可以按照一定顺序进行排列,相同的索引值可以进行连续排列。基于索引列中各个索引值的分布,可以将待查询数据中的各个行数据按照其对应的索引值重新进行排序。将排序好的数据表作为待查询数据表的重分布索引。待查询数据表及其重分布索引的示例可以参见上述实施例中的表A和表A’,以及表B和表B’。
索引列中可以包括多个索引值,不同的索引值可以按照任何顺序排列,相同的索引值可以进行连续排列。基于索引列中各个索引值的分布,可以将待查询数据中的各个行数据按照其对应的索引值重新进行排布,使其排布到对应的索引值的位置。将排布好的数据表作为待查询数据表的重分布索引。待查询数据表及其重分布索引的示例可以参见上述实施例中的表A和表A’,以及表B和表B’。
将索引值相同的所有行数据组成的集合作为一个数据桶,数据桶包括的各个行数据的索引值相同。根据上述步骤建立的重分布索引包括多个数据桶,且包括对应待查询数据的所有行和所有列。
重分布索引与对应的待查询数据表包含的数据内容是相同的,且重分布索引包含了待查询数据表的所有行和所有列,通过建立重分布索引,可以实现将待查询数据表中的数据重新分布在分布式数据库中,以满足后续查询优化的条件。
本申请实施例中,重分布索引是通过对待查询数据表按照索引列重新排布建立的,没有改变待查询数据表中行数据的组成,使得重分布索引包含待查询数据表的所有行和所有列,即重分布索引具有聚簇索引的性质;同时,重分布索引与待查询数据表示独立存储在分布式数据库中,即重分布索引具有二级索引的性质。此外,分布式数据库可以通过在事务中同时处理待查询数据及其对应的重分布索引以维持两者的一致性。
在建立重分布索引之后,可以确定重分布索引所属的同分布组,其中,同分布组包括多个索引列数据分布相同的重分布索引,上述示例中的表A’和表B’的索引列的数据分布相同,属于一个同分布组。
作为一种可选实施例,该方法中,
同分布组中索引值相同的数据桶存储于同一数据库节点;同分布组中的索引值相同的数据桶在发生数据调度时作为一个整体进行迁移。
具体地,一个同分布组包括多个重分布索引,一个重分布索引包括多个数据桶,将一个同分布组中索引值相同的数据桶存储于同一数据库节点,例如,表A’中第1-5行数据为一个数据桶A1,第6-10行数据为一个数据桶A2,表B’中第1-3行数据为一个数据桶B1,第4-6行数据为一个数据桶B2,表A’和表B’属于一个同分布组,该同分布组中数据桶A1和数据桶B1中供应商均为甲,即索引值相同,将数据桶A1和数据桶B1同时存储在DB1,同理,将数据桶A2和数据桶B2同时存储在DB2。
此外,同分布组中的索引值相同的数据桶在发生数据调度时作为一个整体进行迁移,进而可以保证在数据调度前后,索引值相同的数据桶始终存储在同一数据库节点,使得数据调度前后不会影响索引值相同的数据桶的分布情况,进而可以保证数据调度前后都可以满足同分布优化的条件。
作为一种可选实施例,针对所述数据查询请求的操作包括单表聚合操作;
所述根据重分布索引,对原始执行计划进行优化,包括:
确定参与单表聚合操作的聚合数据表,并从多个重分布索引中确定与聚合数据表对应的第一索引;
若单表聚合操作所指定的分组列包含聚合数据表对应的第一索引的索引列,则扫描第一索引,并删除原始执行计划中的跨节点数据交换算子。
具体地,在针对数据查询请求的操作包括单表聚合操作的情况下,对原始执行计划的优化过程可以包括:首先,将需要进行单表聚合操作的数据表作为聚合数据表;随即,从多个重分布索引确定出聚合数据表的重分布索引,作为第一索引;当单表聚合操作所指定的分组列包含聚合数据表对应的第一索引的索引列,将扫描聚合数据表替换为扫描聚合数据对应的第一索引,同时删除原始执行计划中的跨节点数据交换算子;当上述条件不满足时,则扫描聚合数据表。
其中,单表聚合操作所指定的分组列可以为单表聚合操作中需要指定聚合数据表中的哪一列进行汇聚/合并,跨节点数据交换算子可以为执行不同数据库节点之间数据交换的运算单元。
对于数据查询请求1为“查询每个供应商所有商品的销售数量”,数据查询请求1包含单表聚合操作,聚合数据表为表A,分组列为供应商列,第一索引为表A’,索引列为供应商列,此时第一索引的索引列为单表聚合操作所指定的分组列,即满足优化的条件。
因此可以直接扫描表A’,由于表A’预先根据供应商列已经进行分布存储,供应商甲的所有销售记录存储在DB1,供应商乙的所有销售记录存储在DB2。为响应数据查询请求1,可以在DB1和DB2本地进行查询计算,无需与其他数据库节点进行数据交换,因此可以消除原始执行计划中的跨节点数据交换算子,实现了同分布优化。
作为一种可选实施例,针对数据查询请求的操作包括多表关联操作;
所述根据重分布索引,对原始执行计划进行优化,包括:
确定参与多表关联操作的至少两个关联数据表,并从多个重分布索引中确定与关联数据表对应的第二索引;
若多表关联操作所指定的关联列包含每一第二索引的索引列,且每一第二索引所属同一个同分布组,则扫描每一第二索引,并删除原始执行计划中的跨节点数据交换算子。
具体地,在针对数据查询请求的操作包括多表关联操作的情况下,对原始执行计划的优化过程可以包括:首先,将需要进行多表关联操作的数据表作为关联数据表,进而可以得到至少两个关联数据表;随即,从多个重分布索引中确定出每一关联数据表对应的重分布索引,作为第二索引,此时可以得到与关联数据表数量相同的第二索引。
当多表关联操作所指定的关联列包含每一第二索引的索引列,且每一第二索引属于同一同分布组,则可以将扫描每一关联数据表替换为扫描与其对应的第二索引,同时删除原始执行计划中的跨节点数据交换算子;当上述条件不满足时,则扫描每一关联数据表。
其中,多表关联操作所指定的关联列可以需要指定关联数据表中的哪一列进行关联列,由于多表关联操作涉及多个关联数据表,因此多表关联操作所指定的关联列可以为多个。
对于数据查询请求2“查询每个供应商所有商品的销售毛利”,数据查询请求2包含多表关联操作,关联数据表包括表A和表B,关联列为供应商,第二索引包括表A’和表B’,此时第二索引列的索引列均与关联列相同,且表A’和表B’属于同一同分布组,即满足优化的条件。
因此可以直接扫描表A’和表B’,根据表A’和表B’预先根据供应商列已经进行分布存储,在相同索引值对应的数据存储在相同的数据库节点的基础上,即供应商甲所有的销售记录以及供应商甲所有的采购记录数据均存储在DB1中,供应商乙所有的销售记录以及供应商乙所有的采购记录数据均存储在DB2中,为响应数据查询请求2,可以在DB1和DB2本地进行查询计算,无需与其他数据库节点进行数据交换,因此可以消除原始执行计划中的跨节点数据交换算子,实现了同分布优化。
作为一种可选实施例,该方法还包括:
若至少存在一个满足预设条件的第一关联数据表,且至少存在一个不满足预设条件的第二关联数据表,则扫描第一关联数据表对应的重分布索引,消除第一关联数据表对应的跨节点数据交换算子,并扫描第二关联数据表,保留第二关联数据表对应的跨节点数据交换算子;
其中,预设条件为关联数据表存在与其对应的重分布索引,且多表关联操作所指定的关联列包含关联数据表对应的重分布索引的索引列。
具体地,多表关联操作会涉及到多个关联数据表,其中并不是每一个关联数据表均存在与其对应的重分布索引,因此可以将多个关联数据表分为第一关联数据表和第二关联数据表。当预设条件为存在重分布索引,且多表关联操作所指定的关联列包含关联数据表对应的重分布索引的索引列,则将满足上述预设条件的关联数据表作为第一关联数据表;将不满足上述预设条件的关联数据表作为第二关联数据表。
对于第一关联数据表,可以直接扫描第一关联数据表对应的重分布索引,消除第一关联数据表对应的跨节点数据交换算子;对于第二关联数据表,可以扫描第二关联数据表,保留第二关联数据表对应的跨节点数据交换算子,从而将原始执行计划中由多个表都需要做数据交换的分布式关联改成仅不满足预设条件的表需要做数据交换的分布式关联。
作为一种可选实施例,该方法还包括:
当分布式数据库中发生数据调度时,维持多个重分布索引不变;
当分布式数据库中数据调度结束时,更新多个重分布索引。
具体地,当分布式数据库扩缩容或者热点调度时,分布式数据库中数据会发生数据迁移,同时分布式数据库中数据在各个数据库节点的分布情况会发生变化,多个重分布索引在分布式数据库中的分布位置也会发生变化。
对于在发生数据调度过程中接收到的数据查询请求,可以维持多个重分布索引不变,并基于已经建立的多个重分布索引进行查询优化;当分布式数据库中所有的数据迁移完成之后,多个重分布索引在分布数据库的分布情况已经发生了变化,因此需要对多个重分布索引进行更新,并采用新的多个重分布索引进行后续的查询优化。在多个重分布索引完成更新之后,可以删除更新之前的多个重分布索引。
通过在数据调度过程中保留原来的重分布索引,并在数据调度完成之后再使用新的重分布索引,使得同分布优化在数据调度期间仍然可以生效。
由于重分布索引与对应的数据表是独立存储的,因此重分布索引与对应的数据表的数据分布也是相互独立的,进而两者调度也是相互独立的,不会互相影响。
作为一种可选实施例,图2为本申请实施例提供的一种查询优化***的结构示意图,如图2所示,该***包括:
元信息模块201,用于为用户提供建立、删除重分布索引的方法,用户可以通过建表语句或alter table语句(一种SQL语句),为某张表建立或删除重分布索引。
事务模块202,用于在事务中随着表数据的***、更新、删除,同步的对重分布索引数据进行对应的操作,以保证重分布索引数据与表数据一样具有ACID语义,其中,ACID是指数据库管理***在写入或更新资料的过程中,为保证事务是正确可靠的,所必须具备的四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
分布式存储计算模块203包括存储子模块213和计算子模块223,其中存储子模块213用于分布式的存储重分布索引数据,根据数据调度模块的指令将重分布索引数据调度到指定节点,从而满足同分布优化的条件;计算子模块223用于分布式的执行一个查询计划,分布式集群上的每个节点可以对存储在该节点上的数据按照执行计划进行计算。
查询优化器模块204,用于根据重分布索引信息,对满足条件的单表聚合和多表关联查询进行同分布优化,消除查询计划中的跨节点数据交换操作。
数据调度模块205,用于在分布式集群扩缩容或热点调度时对数据进行调度。
作为一种可选实施例,图3为本申请实施例提供的一种分布式HTAP数据库的***架构图,如图3所示,该分布式HTAP数据库由三部分组成:
SQL层:负责接收用户的SQL(Structured Query Language,结构化查询语言)查询请求,生成和优化SQL的执行计划,并完成一些简单的计算;
调度层:负责决定如何分布式存储数据,例如一张表的数据如何被分成多份,并存储在多个节点中;
存储/计算层:负责存储数据以及相关的查询计算。
在SQL层可以建立重分布索引,还可以进行查询优化,其中,查询优化具体包括:
对于单表聚合操作,查询优化器检查其聚合列是否包含该表中某个重分布索引的索引列:如果包含了,则查询优化器将对表的扫描转换为对对应重分布索引的扫描,并消除原始执行计划中的数据交换算子,从而将执行计划改为只需要存储/计算层的存储/计算节点自己内部做单机聚合;如果没包含,则查询优化器按照传统的算法生成相关的分布式聚合的执行计划。
当多表关联操作涉及两个关联数据表时,如果参与关联的两个表都包含某个重分布索引使得关联列包含该重分布索引的索引列,并且两个重分布索引属于同个同分布组,则将对这两个表的扫描都改成对对应重分布索引的扫描,并消除原始执行计划中的数据交换算子,从而将执行计划改为只需要存储/计算层的存储/计算节点自己内部做单机关联,同个同分布组内所有重分布索引均拥有相同的数据分布,使得索引列相同的数据均位于分布式数据库中的同一个数据库节点;
如果参与关联的其中一个表包含某个重分布索引使得关联列包含重分布索引的索引列,则将对这个表的扫描改成对重分布索引的扫描,并消除原始执行计划中该表对应的跨节点数据交换算子,从而将执行计划由两个表都需要做数据交换的分布式关联改成仅需要一个表做数据交换的分布式关联;
如果参与关联的两个表都没有相关重分布索引,则按照传统的算法生成分布式关联的执行计划。
在调度层,由于重分布索引值为哈希值,范围为整数值域,可以将这个值域切分为多个相邻的范围,均匀的调度到所有数据库节点上。在分布式数据库扩缩容或热点调度时,可以根据相应的机制重新划分值域范围,并且需要对同个同分布组的不同重分布索引使用相同的值域划分。
本申请实施例中,在分布式HTAP数据库中将数据的重分布实现为一种索引,在维持数据表按主键进行分布以高效服务OLTP请求的前提下,实现了对数据重分布的支持,使得重分布索引能够与数据表保持一致,并且能够对OLAP请求使用同分布优化,大幅减少低效的跨节点数据交换,从而使得OLAP查询的处理性能得到大幅提升。
图4为本申请实施例提供的一种数据处理装置的结构示意图,如图4所示,该装置包括:
目标数据表确定模块301,用于接收数据查询请求,并确定所述数据查询请求对应的目标数据表;
目标索引确定模块302,用于从多个重分布索引中确定与所述目标数据表对应的目标索引;其中,所述重分布索引中的数据是基于所述重分布索引的索引列分布存储在分布式数据库中的;
优化模块303,用于当针对所述数据查询请求的操作指向所述目标索引的索引列时,根据所述目标索引,对原始执行计划进行优化,生成目标执行计划;针对所述数据查询请求的操作包括单表聚合操作和/或多表关联操作;
执行模块304,用于运行所述目标执行计划,得到所述数据查询请求对应的查询结果。
作为一种可选实施例,该装置还包括重分布索引建立模块,用于
将待查询数据表中的至少一列作为索引列;
基于所述索引列,建立所述重分布索引;其中,所述重分布索引包含对应的待查询数据表的所有行和所有列,所述重分布索引包括多个数据桶,且所述数据桶包括的所有数据行的索引值相同;
确定所述重分布索引所属的同分布组;所述同分布组包括多个索引列数据分布相同的重分布索引。
作为一种可选实施例,该装置中所述同分布组中索引值相同的数据桶存储于同一数据库节点;所述同分布组中的索引值相同的数据桶在发生数据调度时作为一个整体进行迁移。
作为一种可选实施例,针对所述数据查询请求的操作包括单表聚合操作;
优化模块,用于确定参与所述单表聚合操作的聚合数据表,并从所述多个重分布索引中确定与所述聚合数据表对应的第一索引;
若所述单表聚合操作所指定的分组列包含所述第一索引的索引列,则扫描第一索引,并删除所述原始执行计划中的跨节点数据交换算子。
作为一种可选实施例,针对所述数据查询请求的操作包括多表关联操作;
优化模块,用于确定参与所述多表关联操作的至少两个关联数据表,并从所述多个重分布索引中确定与所述关联数据表对应的第二索引;
若所述多表关联操作所指定的关联列包含每一第二索引的索引列,且每一第二索引所属同一个同分布组,则扫描每一第二索引,并删除所述原始执行计划中的跨节点数据交换算子。
作为一种可选实施例,优化模块还用于:
若至少存在一个满足预设条件的第一关联数据表,且至少存在一个不满足预设条件的第二关联数据表,则扫描所述第一关联数据表对应的重分布索引,消除所述第一关联数据表对应的跨节点数据交换算子,并扫描所述第二关联数据表,保留所述第二关联数据表对应的跨节点数据交换算子;
其中,所述预设条件为所述关联数据表存在与其对应的重分布索引,且所述多表关联操作所指定的关联列包含所述关联数据表对应的重分布索引的索引列。
作为一种可选实施例,该装置还包括:
更新模块,用于当所述分布式数据库中发生数据调度时,维持所述多个重分布索引不变;
当所述分布式数据库中数据调度结束时,更新所述多个重分布索引。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现上述数据处理方法的步骤,与相关技术相比可实现:通过预先建立目标数据表的目标索引,并将目标索引中的数据按照其索引列分布在分布式数据库中,使得当针对数据查询请求的单表聚合操作和/或多表关联操作指向目标索引的索引列时,能够实现查询优化。通过根据目标索引,对原始执行计划进行优化,得到目标执行计划,减少了目标执行计划中的跨节点的数据交换操作,提高了数据处理的效率,提升整个分布式数据库的性能。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
接收数据查询请求,并确定所述数据查询请求对应的目标数据表;
从多个重分布索引中确定与所述目标数据表对应的目标索引;其中,所述重分布索引中的数据是基于所述重分布索引的索引列分布存储在分布式数据库中的;
当针对所述数据查询请求的操作指向所述目标索引的索引列时,根据所述目标索引,对原始执行计划进行优化,生成目标执行计划;
针对所述数据查询请求的操作包括单表聚合操作和/或多表关联操作;
运行所述目标执行计划,得到所述数据查询请求对应的查询结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
将待查询数据表中的至少一列作为索引列;
基于所述索引列,建立所述重分布索引;其中,所述重分布索引包含对应的待查询数据表的所有行和所有列,所述重分布索引包括多个数据桶,且所述数据桶包括的所有数据行的索引值相同;
确定所述重分布索引所属的同分布组;所述同分布组包括多个索引列数据分布相同的重分布索引。
3.根据权利要求2所述的数据处理方法,其特征在于,所述同分布组中索引值相同的数据桶存储于同一数据库节点;所述同分布组中的索引值相同的数据桶在发生数据调度时作为一个整体进行迁移。
4.根据权利要求1所述的数据处理方法,其特征在于,针对所述数据查询请求的操作包括单表聚合操作;
所述根据所述重分布索引,对原始执行计划进行优化,包括:
确定参与所述单表聚合操作的聚合数据表,并从所述多个重分布索引中确定与所述聚合数据表对应的第一索引;
若所述单表聚合操作所指定的分组列包含所述第一索引的索引列,则扫描第一索引,并删除所述原始执行计划中的跨节点数据交换算子。
5.根据权利要求1所述的数据处理方法,其特征在于,针对所述数据查询请求的操作包括多表关联操作;
所述根据所述重分布索引,对原始执行计划进行优化,包括:
确定参与所述多表关联操作的至少两个关联数据表,并从所述多个重分布索引中确定与所述关联数据表对应的第二索引;
若所述多表关联操作所指定的关联列包含每一第二索引的索引列,且每一第二索引所属同一个同分布组,则扫描每一第二索引,并删除所述原始执行计划中的跨节点数据交换算子。
6.根据权利要求5所述的数据处理方法,其特征在于,所述方法还包括:
若至少存在一个满足预设条件的第一关联数据表,且至少存在一个不满足预设条件的第二关联数据表,则扫描所述第一关联数据表对应的重分布索引,消除所述第一关联数据表对应的跨节点数据交换算子,并扫描所述第二关联数据表,保留所述第二关联数据表对应的跨节点数据交换算子;
其中,所述预设条件为所述关联数据表存在与其对应的重分布索引,且所述多表关联操作所指定的关联列包含所述关联数据表对应的重分布索引的索引列。
7.根据权利要求1至6中任一项所述的数据处理方法,其特征在于,所述方法还包括:
当所述分布式数据库中发生数据调度时,维持所述多个重分布索引不变;
当所述分布式数据库中数据调度结束时,更新所述多个重分布索引。
8.一种数据处理装置,其特征在于,包括:
目标数据表确定模块,用于接收数据查询请求,并确定所述数据查询请求对应的目标数据表;
目标索引确定模块,用于从多个重分布索引中确定与所述目标数据表对应的目标索引;其中,所述重分布索引中的数据是基于所述重分布索引的索引列分布存储在分布式数据库中的;
优化模块,用于当针对所述数据查询请求的操作指向所述目标索引的索引列时,根据所述目标索引,对原始执行计划进行优化,生成目标执行计划;针对所述数据查询请求的操作包括单表聚合操作和/或多表关联操作;
执行模块,用于运行所述目标执行计划,得到所述数据查询请求对应的查询结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211262636.4A CN115422205A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211262636.4A CN115422205A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115422205A true CN115422205A (zh) | 2022-12-02 |
Family
ID=84207543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211262636.4A Pending CN115422205A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115422205A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069510A (zh) * | 2023-03-08 | 2023-05-05 | 天津南大通用数据技术股份有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN117743337A (zh) * | 2023-12-20 | 2024-03-22 | 平凯星辰(北京)科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN117762949A (zh) * | 2024-02-19 | 2024-03-26 | 平凯星辰(北京)科技有限公司 | 数据抽取方法、装置、电子设备及存储介质 |
-
2022
- 2022-10-14 CN CN202211262636.4A patent/CN115422205A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069510A (zh) * | 2023-03-08 | 2023-05-05 | 天津南大通用数据技术股份有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN116069510B (zh) * | 2023-03-08 | 2023-07-04 | 天津南大通用数据技术股份有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN117743337A (zh) * | 2023-12-20 | 2024-03-22 | 平凯星辰(北京)科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN117762949A (zh) * | 2024-02-19 | 2024-03-26 | 平凯星辰(北京)科技有限公司 | 数据抽取方法、装置、电子设备及存储介质 |
CN117762949B (zh) * | 2024-02-19 | 2024-05-24 | 平凯星辰(北京)科技有限公司 | 数据抽取方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6879984B2 (en) | Analytical database system that models data to speed up and simplify data analysis | |
CN115422205A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US7908242B1 (en) | Systems and methods for optimizing database queries | |
US7814091B2 (en) | Multi-tiered query processing techniques for minus and intersect operators | |
CN110134516B (zh) | 金融数据处理方法、装置、设备及计算机可读存储介质 | |
CN110019292B (zh) | 一种数据的查询方法及装置 | |
CN101739281A (zh) | 用于机器集群的并行编程的架构 | |
US20080222634A1 (en) | Parallel processing for etl processes | |
CN101587491A (zh) | 使用运行时可重配置硬件的混合数据库*** | |
CN108959510B (zh) | 一种分布式数据库的分区级连接方法和装置 | |
CN103177062A (zh) | 用于高速内存在线分析处理查询和操作的加速查询操作器 | |
US10831737B2 (en) | Method and device for partitioning association table in distributed database | |
CN106844320B (zh) | 一种财务报表整合方法和设备 | |
US9292405B2 (en) | HANA based multiple scenario simulation enabling automated decision making for complex business processes | |
CN106156040A (zh) | 多维度数据管理方法及装置 | |
US11599540B2 (en) | Query execution apparatus, method, and system for processing data, query containing a composite primitive | |
CN110019299A (zh) | 一种用于创建或刷新分析型数据仓库的离线数据集合的方法和装置 | |
CN113625967B (zh) | 数据存储方法、数据查询方法及服务器 | |
CN115936875A (zh) | 金融产品挂单处理方法和装置 | |
CN110858199A (zh) | 一种单据数据分布式计算的方法和装置 | |
CN112199930B (zh) | 一种根据报表配置自动生成报表的方法和*** | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN115544096B (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN111913986A (zh) | 一种查询优化方法及装置 | |
CN110427390A (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 |