CN116521705A - 一种数据查询方法、装置、存储介质及电子设备 - Google Patents

一种数据查询方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116521705A
CN116521705A CN202310377466.2A CN202310377466A CN116521705A CN 116521705 A CN116521705 A CN 116521705A CN 202310377466 A CN202310377466 A CN 202310377466A CN 116521705 A CN116521705 A CN 116521705A
Authority
CN
China
Prior art keywords
target
field
query statement
data
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310377466.2A
Other languages
English (en)
Inventor
韩冰
徐泉清
韩宝坤
杨志丰
徐辰
杨传辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Beijing Oceanbase Technology Co Ltd
Original Assignee
East China Normal University
Beijing Oceanbase Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China Normal University, Beijing Oceanbase Technology Co Ltd filed Critical East China Normal University
Priority to CN202310377466.2A priority Critical patent/CN116521705A/zh
Publication of CN116521705A publication Critical patent/CN116521705A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2445Data retrieval commands; View definitions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本说明书公开了一种数据查询方法、装置、存储介质及电子设备,可以通过将数据查询语句中包含的复杂算子作为指定算子,进而可以根据预设的执行策略,从执行目标算子所需的条件字段,确定出指定字段,并将针对指定字段进行数据查询的任务,拆分为多个子任务,并生成用于查询每个子任务的子查询语句,进而可以使数据库并行执行每个子查询语句,以提升数据查询效率。

Description

一种数据查询方法、装置、存储介质及电子设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据查询方法、装置、存储介质及电子设备。
背景技术
目前,由于数据处理系统(如:Spark等数据处理系统)中采用了集群式或分布式设计的大数据计算引擎,所以,在机器学习、大数据分析等领域中,为了高速地完成大量数据的复杂处理任务,通常会采用上述的数据处理系统,对数据进行复杂处理。例如:数据处理系统获取用户输入的数据查询语句,基于该数据查询语句,从数据源系统中获取进行机器学习或者大数据分析所需的数据,并基于获取到的数据进行推理预测,以得到预测结果。
而在通过数据处理系统来进行大量数据的复杂处理时,数据处理系统会对用户输入的数据查询语句进行分析,以确定出执行该数据查询语句所需的各算子,并且可以针对其中的基础的算子,如:用于扫描数据库的表中的数据的算子Scan或Relation、用于按条件进行数据过滤的算子Filter等算子,可以将其翻译为SQL形式的子查询,发送给数据库执行,进而获取数据库在执行后返回的数据,并根据获取到的数据进行进一步地的数据处理。
其中,数据处理系统在执行数据查询任务时,可能会出现待查询的表中存储有大量数据的情况,在这种情况下,可以将查询该表中数据的任务拆分为多个子任务,并进行并行执行。
但是,目前这种数据查询的方式不能将查询语句中包含的复杂的算子(如:多表连接查询的算子Join,分组算子Aggregate等)下推到数据库中并行执行。
发明内容
本说明书提供一种数据查询方法、装置、存储介质及电子设备,以解决现有技术存在的查询语句包含的复杂算子不能被下推到数据库中并行执行的问题。
本说明书采用下述技术方案:
本说明书提供了一种数据查询方法,包括:
获取数据查询语句;
对所述数据查询语句进行解析,以从所述数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有所述数据查询语句对应的待查询数据的数据表,作为目标数据表;
从预设的各并行扩展模板中确定出与所述目标算子以及所述目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板;
根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段;
根据所述指定字段,生成所述数据查询语句对应的各子查询语句;
并行执行每个子查询语句,以在数据库中执行数据查询。
可选地,根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段,具体包括:
若所述数据查询语句中包含的目标算子为join算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;
从所述各候选指定字段中确定出指定字段。
可选地,从所述各候选指定字段中确定出指定字段,具体包括:
若所述join算子的数量大于1,则根据每个候选指定字段中包含的数据的数据量,从所述各候选指定字段中确定出指定字段;
若所述join算子的数量为1,则从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
可选地,根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段,具体包括:
若所述数据查询语句中包含的目标算子为Aggregate算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;
从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
可选地,根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段,具体包括:
若所述数据查询语句中包含的目标算子为Aggregate和join算子,则根据所述目标并行扩展模板,判断所述目标数据表包含的执行所述join算子所需的条件字段中是否存在具有索引约束且与所述目标数据表包含的执行所述Aggregate算子所需的各条件字段相同的字段;
若是,将所述相同的字段作为指定字段;
若否,则将所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中的任意一个条件字段,作为指定字段。
可选地,所述方法还包括:
若所述数据查询语句中不包含目标算子,则将所述数据查询语句中包含的查询条件对应的字段,作为指定字段。
可选地,根据所述指定字段,生成所述数据查询语句对应的各子查询语句,具体包括:
确定所述指定字段中包含的值的值域范围;
确定待生成的各子查询语句的数量,作为目标数量;
根据所述目标数量,对所述值域范围进行均分,得到各子值域范围;
根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
可选地,根据所述指定字段,生成所述数据查询语句对应的各子查询语句,具体包括:
确定所述指定字段中包含的值的值域范围;
确定待生成的各子查询语句的数量,作为目标数量;
根据所述指定字段中包含的值的数量,以及所述目标数量,确定各子值域范围;
根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
本说明书提供了一种数据查询装置,包括:
获取模块,用于获取数据查询语句;
解析模块,用于对所述数据查询语句进行解析,以从所述数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有所述数据查询语句对应的待查询数据的数据表,作为目标数据表;
第一确定模块,用于从预设的各并行扩展模板中确定出与所述目标算子以及所述目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板;
第二确定模块,用于根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段;
生成模块,用于根据所述指定字段,生成所述数据查询语句对应的各子查询语句;
执行模块,用于并行执行每个子查询语句,以在数据库中执行数据查询。
可选地,所述第二确定模块具体用于,若所述数据查询语句中包含的目标算子为join算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;从所述各候选指定字段中确定出指定字段。
可选地,所述第二确定模块具体用于,若所述join算子的数量大于1,则根据每个候选指定字段中包含的数据的数据量,从所述各候选指定字段中确定出指定字段;若所述join算子的数量为1,则从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
可选地,所述第二确定模块具体用于,若所述数据查询语句中包含的目标算子为Aggregate算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
可选地,所述第二确定模块具体用于,若所述数据查询语句中包含的目标算子为Aggregate和join算子,则根据所述目标并行扩展模板,判断所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中是否存在具有索引约束且与所述目标数据表包含的执行所述join算子所需的条件字段相同的字段;若是,将所述相同的字段作为指定字段;若否,则将所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中的任意一个条件字段,作为指定字段。
可选地,所述第二确定模块还用于,若所述数据查询语句中不包含目标算子,则将所述数据查询语句中包含的查询条件对应的字段,作为指定字段。
可选地,所述生成模块具体用于,确定所述指定字段中包含的值的值域范围;确定待生成的各子查询语句的数量,作为目标数量;根据所述目标数量,对所述值域范围进行均分,得到各子值域范围;根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
可选地,所述生成模块具体用于,确定所述指定字段中包含的值的值域范围;确定待生成的各子查询语句的数量,作为目标数量;根据所述指定字段中包含的值的数量,以及所述目标数量,确定各子值域范围;根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据查询方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据查询方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的数据查询方法,首先获取数据查询语句,对数据查询语句进行解析,以从数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有数据查询语句对应的待查询数据的数据表,作为目标数据表,从各并行扩展模板中确定出与目标算子以及目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板,根据目标并行扩展模板,从目标数据表包含的各字段中确定出指定字段,根据指定字段,生成数据查询语句对应的各子查询语句,并行执行每个子查询语句,以在数据库中执行数据查询。
从上述方法中可以看出,可以通过将数据查询语句中包含的复杂算子作为指定算子,进而可以根据预设的执行策略,从执行目标算子所需的条件字段,确定出指定字段,并将针对指定字段进行数据查询的任务,拆分为多个子任务,并生成用于查询每个子任务的子查询语句,进而可以使数据库并行执行每个子查询语句,以提升数据查询效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种数据查询方法的流程示意图;
图2为本说明书提供的一条数据查询语句与该数据查询语句的子查询语句的示意图;
图3为本说明书提供的一种数据查询装置的示意图;
图4为本说明书提供的一种对应于图1的电子设备的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种数据查询方法的流程示意图,包括以下步骤:
S100:获取数据查询语句。
在本说明书中,当用户需要进行诸如:大数据分析、机器学习等复杂的数据处理时,可以在安装在用户所使用的设备中的数据处理系统中输入用于从数据源系统中获取出数据的数据查询语句,进而可以数据处理系统,根据数据处理系统获取到的数据查询语句,通过数据源系统执行相应的数据查询任务,并针对查询到的数据进行相应的数据处理,这里的数据源系统可以是指诸如:Mysql、Oracle、SQL Sever等数据库系统。
在本说明书中,用于实现数据查询方法的执行主体,可以是指服务器等设置于数据处理系统中的指定设备,也可以是指诸如台式电脑、笔记本电脑等指定设备,为了便于描述,下面仅以服务器是执行主体为例,对本说明书提供的数据查询方法进行说明。
S102:对所述数据查询语句进行解析,以从所述数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有所述数据查询语句对应的待查询数据的数据表,作为目标数据表。
进一步地,服务器在获取到数据查询语句后,可以针对获取到的数据查询语句进行解析,以确定出该数据查询语句所包含的各算子,进而可以从数据查询语句所包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有数据查询语句对应的待查询数据的数据表,作为目标数据表,这里的数据查询语句可以是指由Java、Scala、Python、R和SQL等编程语言编写的数据查询语句,这里的算子可以是指用于执行数据查询语句的过程中的各个步骤的具体动作的代码,包括:用于扫描存储在数据库中的表的数据的算子Scan或Relation、用于过滤筛选数据的算子Filter、用于将多个数据库中的表进行连接的算子Join、用于对数据进行分组和/或按分组进行筛选的算子Aggregate等。
具体地,服务器在获取到用户输入的数据查询语句后,可以通过对获取到的数据查询语句进行词法解析、语义解析、语法解析等方法,得到执行获取到的数据查询语句对应的逻辑执行计划,并可以根据确定出的逻辑执行计划,确定该数据查询语句中包含的各算子。
例如:假设用户输入的数据查询语句为“select*from user where userName=‘张先生’”,则该数据查询语句在执行的过程中,首先需要使用的算子为from算子,用于定位该数据查询语句的数据表(即存储有用户数据的user表),可以理解为,from算子就是确定需要从哪张表中获取数据。在通过from算子确定数据表后,可以通过scan算子扫描出该数据表中的所有数据,可以理解为获取该数据表中的所有数据。从而可以通过Filter算子,根据条件语句userName=“张先生”,从获取到的该数据表中的所有数据中,筛选出用户名为“张先生”的用户对应的数据。进而可以通过用于确定数据查询结果的project或select算子,查询出的用户名为“张先生”的用户对应的数据返回,即完成了数据查询操作。
进一步地,服务器在确定出该数据查询语句中包含的各算子之后,可以从各算子中,筛选出类型为指定类型的算子,作为目标算子,这里的指定类型可以是指复杂算子对应的类型,例如:join算子、Aggregate算子等。
S104:从各并行扩展模板中确定出与所述目标算子以及所述目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板。
S106:根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段。
进一步地,服务器在确定出获取到的数据查询语句中包含的目标算子,以及确定出目标数据表之后,可以根据目标算子以及目标数据表,从各并行扩展模板中确定出与目标算子以及目标数据表相匹配的并行扩展模板,作为目标并行扩展模板,并可以根据目标并行扩展模板,从目标数据表包含的各字段中确定出指定字段。
具体地,若数据查询语句中包含的目标算子为join算子,且join算子的数量为1,则可以根据目标并行扩展模板,从目标数据表包含的执行join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段,并从各候选指定字段中选取出任意一个条件字段,作为指定字段。
若数据查询语句中包含的目标算子为join算子,且join算子的数量大于1,则可以根据目标并行扩展模板,从目标数据表包含的执行join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段,根据每个候选指定字段中包含的数据的数据量,从各候选指定字段中确定出指定字段。
需要说明的是,在实际应用场景中,当join算子的数量大于1时,则需要通过join算子进行连接的目标数据表的数量大于2,例如:假设数据查询语句为“Select*from Ajoin Bon A.ID=B.ID join C on A.ID=C.ID”,其中,当执行该数据查询语句时,需要先执行第一各join算子根据条件语句“A.ID=B.ID”将表A和表B进行连接,得到查询结果后,再执行第二个join算子根据条件语句“A.ID=C.ID”将表A和表B的查询结果与表C进行连接,从而得到最终的查询结果。
其中,当执行第一个join算子将表A和表B进行连接时,表C处于等待状态,而处于等待状态的表C需要占用相应的内存空间,从而带来内存损耗开销,基于此,在根据每个候选指定字段中包含的数据的数据量,从各候选指定字段中确定出指定字段时,可以从每个候选指定字段中,选择出包含的数据的数据量最大的候选指定字段,作为指定字段,从而可以使得针对包含数据量较多,需要占用相应的内存空间较大的目标数据表的数据查询任务先执行,进而可以降低处于等待状态的目标数据表对内存空间的占用。
若数据查询语句中包含的目标算子为Aggregate算子,则根据目标并行扩展模板,从目标数据表包含的执行Aggregate算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段,从各候选指定字段中选取出任意一个条件字段,作为指定字段。
若数据查询语句中包含的目标算子为Aggregate和join算子,则根据目标并行扩展模板,确定出目标数据表包含的执行所述join算子所需的条件字段中是否存在具有索引约束的字段,并判断目标数据表包含的执行所述join算子所需的条件字段中的具有索引约束的字段与目标数据表包含的执行Aggregate算子所需的各条件字段中是否存在相同的字段,若是,将相同的字段作为指定字段,若否,则将目标数据表包含的执行Aggregate算子所需的各条件字段中的任意一个条件字段,作为指定字段。
若数据查询语句中不包含目标算子,则将数据查询语句中包含的查询条件对应的字段,作为指定字段。
S108:根据所述指定字段,生成所述数据查询语句对应的各子查询语句。
进一步地,服务器在确定指定字段后,可以根据指定字段,生成数据查询语句对应的各子查询语句,这里的子查询语句用于针对指定字段中包含的至少部分值进行数据查询。
其中,服务器根据指定字段,生成数据查询语句对应的各子查询语句的方法可以为,服务器可以确定指定字段中包含的值的值域范围,确定待生成的各子查询语句的数量,作为目标数量,根据目标数量,对值域范围进行均分,得到各子值域范围,根据各子值域范围,生成数据查询语句对应的各子查询语句。
其中,待生成的各子查询语句的数量可以根据实际需要确定,而根据待生成的各子查询语句的数量,对值域范围进行均分,得到各子值域范围的方式可以是例如:假设待生成的各子查询语句的数量,则对应的需要划分的各子值域范围的数量也为三个,而指定字段中的值的值域范围为[1,60000]的话,则可以将该值域范围均分为[1,20000]、[20001,40000]、[40001,60000]这三个子值域范围,并根据每个各子值域范围,并根据各子值域范围,生成数据查询语句对应的各子查询语句。
除此之外,在实际应用中,指定字段中的值落在每个子值域范围的数量存在较大偏差,例如:在子值域范围[1,20000]中可能有指定字段中包含的所有值中的100个值,而在子值域范围[20001,40000]中可能有指定字段中包含的所有值中的5000个值,这种偏差会使得后续在根据各子值域范围,生成数据查询语句对应的各子查询语句时,生成的每个子查询语句的查询效率不同,从而降低了数据查询语句整体的效率。
基于此,服务器还可以根据指定字段中包含的值的数量,以及目标数量,确定各子值域范围,并根据各子值域范围,生成数据查询语句对应的各子查询语句。
例如:假设指定字段中包含的值的数量为10000个,待生成的各子查询语句的数量为5个,则可以根据指定字段中包含的值中的前两千个值的值域范围,确定第一个子查询语句对应的子值域范围,假设为[1,5000],根据指定字段中包含的值中的第2001个值到第4000个值的值域范围,确定第二个子查询语句对应的子值域范围,假设为[5001,23000],根据指定字段中包含的值中的第4001个值到第6000个值的值域范围,确定第三个子查询语句对应的子值域范围,假设为[23001,58000],以此类推,确定出每个子查询语句对应的子值域范围。
为了进一步地对上述内容进行详细说明,以下对如何生成数据查询语句对应的子查询语句进行说明,具体如图2所示。
图2为本说明书提供的一条数据查询语句与该数据查询语句的子查询语句的示意图。
从图2可以看出,当数据查询语句为“Select staff.name from staff join leadon staff.ID=lead.ID”时,数据库需要从员工数据表staff和领导数据表lead中查询出员工ID和领导ID相同的员工的名称,即查询出属于领导层的员工的名称,此时,数据库需要确定员工数据表staff包含的所有数据与领导数据表lead包含的所有数据的笛卡尔积,进而可以按照条件语句“staff.ID=lead.ID”从员工数据表staff包含的所有数据与领导数据表lead包含的所有数据的笛卡尔积中筛选出符合条件的员工的姓名,即为最终的查询结果,此时,可以将其拆分为子查询。
假设staff.ID为指定字段时,则可以将指定字段staff.ID中包含的值划分为各子值域范围,如:ID从0到100的一个子值域范围、ID从101到200的一个子值域范围,进而可以对应生成针对每个子值域进行数据查询的子查询语句,如:“Select staff.name fromstaff join lead on staff.ID=lead.ID and staff.ID>100and staff.ID<101”,“Select staff.name from staff join lead on staff.ID=lead.ID and staff.ID>100and staff.ID<201”,进而可以使数据库并行执行每个子查询语句,如:确定员工数据表staff包含的ID从0到100这个子值域范围内的数据与领导数据表lead包含的所有数据的笛卡尔积,进而可以按照条件语句“staff.ID=lead.ID”从中筛选出符合条件的员工的姓名。
S110:并行执行每个子查询语句,以在数据库中执行数据查询。
进一步地,服务器在生成各子查询语句之后,可以通过数据源系统并行执行每个子查询语句,以在数据库中查询相应的数据。
需要说明的是,上述的数据库可以是指分布式系统中的各数据库节点,其中,数据源系统可以通过每个数据库节点执行每个子查询语句,进而可以避免单个数据库节点在执行数据查询语句时,可能存在的由于需要访问的数据量较大等原因,而出现的数据传输时间长、内存溢出等问题的出现。
从上述内容中可以看出,服务器可以通过将数据查询语句中包含的复杂算子作为指定算子,进而可以根据预设的执行策略,从执行目标算子所需的条件字段,确定出指定字段,并将针对指定字段进行数据查询的任务,拆分为多个子任务,并生成用于查询每个子任务的子查询语句,进而可以使数据库并行执行每个子查询语句,以提升数据查询效率。
以上为本说明书的一个或多个实施例提供的数据查询方法,基于同样的思路,本说明书还提供了相应的数据查询装置,如图3所示。
图3为本说明书提供的一种数据查询装置的示意图,所述装置包括:
获取模块301,用于获取数据查询语句;
解析模块302,用于对所述数据查询语句进行解析,以从所述数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有所述数据查询语句对应的待查询数据的数据表,作为目标数据表;
第一确定模块303,用于从各并行扩展模板中确定出与所述目标算子以及所述目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板;
第二确定模块304,用于根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段;
生成模块305,用于根据所述指定字段,生成所述数据查询语句对应的各子查询语句;
执行模块306,用于并行执行每个子查询语句,以在数据库中执行数据查询。
可选地,所述第二确定模块304具体用于,若所述数据查询语句中包含的目标算子为join算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;从所述各候选指定字段中确定出指定字段。
可选地,所述第二确定模块304具体用于,若所述join算子的数量大于1,则根据每个候选指定字段中包含的数据的数据量,从所述各候选指定字段中确定出指定字段;若所述join算子的数量为1,则从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
可选地,所述第二确定模块304具体用于,若所述数据查询语句中包含的目标算子为Aggregate算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
可选地,所述第二确定模块304具体用于,若所述数据查询语句中包含的目标算子为Aggregate和join算子,则根据所述目标并行扩展模板,判断所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中是否存在具有索引约束且与所述目标数据表包含的执行所述join算子所需的条件字段相同的字段;若是,将所述相同的字段作为指定字段;若否,则将所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中的任意一个条件字段,作为指定字段。
可选地,所述第二确定模块304还用于,若所述数据查询语句中不包含目标算子,则将所述数据查询语句中包含的查询条件对应的字段,作为指定字段。
可选地,所述生成模块305具体用于,确定所述指定字段中包含的值的值域范围;确定待生成的各子查询语句的数量,作为目标数量;根据所述目标数量,对所述值域范围进行均分,得到各子值域范围;根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
可选地,所述生成模块305具体用于,确定所述指定字段中包含的值的值域范围;确定待生成的各子查询语句的数量,作为目标数量;根据所述指定字段中包含的值的数量,以及所述目标数量,确定各子值域范围;根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种数据查询方法。
本说明书还提供了图4所示的一种对应于图1的电子设备的示意结构图。如图4,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1的数据查询方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (18)

1.一种数据查询方法,包括:
获取数据查询语句;
对所述数据查询语句进行解析,以从所述数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有所述数据查询语句对应的待查询数据的数据表,作为目标数据表;
从预设的各并行扩展模板中确定出与所述目标算子以及所述目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板;
根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段;
根据所述指定字段,生成所述数据查询语句对应的各子查询语句;
并行执行每个子查询语句,以在数据库中执行数据查询。
2.如权利要求1所述的方法,根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段,具体包括:
若所述数据查询语句中包含的目标算子为join算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;
从所述各候选指定字段中确定出指定字段。
3.如权利要求2所述的方法,从所述各候选指定字段中确定出指定字段,具体包括:
若所述join算子的数量大于1,则根据每个候选指定字段中包含的数据的数据量,从所述各候选指定字段中确定出指定字段;
若所述join算子的数量为1,则从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
4.如权利要求1所述的方法,根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段,具体包括:
若所述数据查询语句中包含的目标算子为Aggregate算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;
从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
5.如权利要求1所述的方法,根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段,具体包括:
若所述数据查询语句中包含的目标算子为Aggregate和join算子,则根据所述目标并行扩展模板,判断所述目标数据表包含的执行所述join算子所需的条件字段中是否存在具有索引约束且与所述目标数据表包含的执行所述Aggregate算子所需的各条件字段相同的字段;
若是,将所述相同的字段作为指定字段;
若否,则将所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中的任意一个条件字段,作为指定字段。
6.如权利要求1所述的方法,所述方法还包括:
若所述数据查询语句中不包含目标算子,则将所述数据查询语句中包含的查询条件对应的字段,作为指定字段。
7.如权利要求1所述的方法,根据所述指定字段,生成所述数据查询语句对应的各子查询语句,具体包括:
确定所述指定字段中包含的值的值域范围;
确定待生成的各子查询语句的数量,作为目标数量;
根据所述目标数量,对所述值域范围进行均分,得到各子值域范围;
根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
8.如权利要求1所述的方法,根据所述指定字段,生成所述数据查询语句对应的各子查询语句,具体包括:
确定所述指定字段中包含的值的值域范围;
确定待生成的各子查询语句的数量,作为目标数量;
根据所述指定字段中包含的值的数量,以及所述目标数量,确定各子值域范围;
根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
9.一种数据查询装置,包括:
获取模块,用于获取数据查询语句;
解析模块,用于对所述数据查询语句进行解析,以从所述数据查询语句中包含的各算子中确定出指定类型的算子,作为目标算子,以及确定存储有所述数据查询语句对应的待查询数据的数据表,作为目标数据表;
第一确定模块,用于从预设的各并行扩展模板中确定出与所述目标算子以及所述目标数据表的数量相匹配的并行扩展模板,作为目标并行扩展模板;
第二确定模块,用于根据所述目标并行扩展模板,从所述目标数据表包含的各字段中确定出指定字段;
生成模块,用于根据所述指定字段,生成所述数据查询语句对应的各子查询语句;
执行模块,用于并行执行每个子查询语句,以在数据库中执行数据查询。
10.如权利要求9所述的装置,所述第二确定模块具体用于,若所述数据查询语句中包含的目标算子为join算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述join算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;从所述各候选指定字段中确定出指定字段。
11.如权利要求10所述的装置,所述第二确定模块具体用于,若所述join算子的数量大于1,则根据每个候选指定字段中包含的数据的数据量,从所述各候选指定字段中确定出指定字段;若所述join算子的数量为1,则从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
12.如权利要求9所述的装置,所述第二确定模块具体用于,若所述数据查询语句中包含的目标算子为Aggregate算子,则根据所述目标并行扩展模板,从所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中确定出具有索引约束的条件字段,作为各候选指定字段;从所述各候选指定字段中选取出任意一个条件字段,作为指定字段。
13.如权利要求9所述的装置,所述第二确定模块具体用于,若所述数据查询语句中包含的目标算子为Aggregate和join算子,则根据所述目标并行扩展模板,判断所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中是否存在具有索引约束且与所述目标数据表包含的执行所述join算子所需的条件字段相同的字段;若是,将所述相同的字段作为指定字段;若否,则将所述目标数据表包含的执行所述Aggregate算子所需的各条件字段中的任意一个条件字段,作为指定字段。
14.如权利要求9所述的装置,所述第二确定模块还用于,若所述数据查询语句中不包含目标算子,则将所述数据查询语句中包含的查询条件对应的字段,作为指定字段。
15.如权利要求9所述的装置,所述生成模块具体用于,确定所述指定字段中包含的值的值域范围;确定待生成的各子查询语句的数量,作为目标数量;根据所述目标数量,对所述值域范围进行均分,得到各子值域范围;根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
16.如权利要求9所述的装置,所述生成模块具体用于,确定所述指定字段中包含的值的值域范围;确定待生成的各子查询语句的数量,作为目标数量;根据所述指定字段中包含的值的数量,以及所述目标数量,确定各子值域范围;根据所述各子值域范围,生成所述数据查询语句对应的各子查询语句。
17.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~8任一项所述的方法。
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1~8任一项所述的方法。
CN202310377466.2A 2023-04-10 2023-04-10 一种数据查询方法、装置、存储介质及电子设备 Pending CN116521705A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310377466.2A CN116521705A (zh) 2023-04-10 2023-04-10 一种数据查询方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310377466.2A CN116521705A (zh) 2023-04-10 2023-04-10 一种数据查询方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116521705A true CN116521705A (zh) 2023-08-01

Family

ID=87395038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310377466.2A Pending CN116521705A (zh) 2023-04-10 2023-04-10 一种数据查询方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116521705A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407430A (zh) * 2023-12-05 2024-01-16 支付宝(杭州)信息技术有限公司 数据查询方法、装置、计算机设备及存储介质
CN118503311A (zh) * 2024-07-17 2024-08-16 恒生电子股份有限公司 数据查询方法、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407430A (zh) * 2023-12-05 2024-01-16 支付宝(杭州)信息技术有限公司 数据查询方法、装置、计算机设备及存储介质
CN117407430B (zh) * 2023-12-05 2024-04-16 支付宝(杭州)信息技术有限公司 数据查询方法、装置、计算机设备及存储介质
CN118503311A (zh) * 2024-07-17 2024-08-16 恒生电子股份有限公司 数据查询方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN116521705A (zh) 一种数据查询方法、装置、存储介质及电子设备
CN108848244B (zh) 一种分页显示的方法及装置
CN110399359B (zh) 一种数据回溯方法、装置及设备
CN111400681B (zh) 数据权限处理方法、装置及设备
CN115756449B (zh) 一种页面复用方法、装置、存储介质及电子设备
KR20200094074A (ko) 인덱스 관리 방법, 장치, 기기 및 저장 매체
US20240256613A1 (en) Data processing method and apparatus, readable storage medium, and electronic device
CN113434533A (zh) 一种数据溯源工具构建方法、数据处理方法、装置及设备
CN107818181A (zh) 基于Plcient交互式引擎的索引方法及其系统
CN116483859A (zh) 数据查询方法及装置
CN116644090B (zh) 一种数据查询方法、装置、设备及介质
CN115390852A (zh) 一种生成统一抽象语法树与程序分析的方法和装置
CN116010419A (zh) 一种创建唯一索引和优化逻辑删除的方法及装置
CN116341642B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN110083602B (zh) 一种基于hive表的数据存储及数据处理的方法及装置
CN111078728B (zh) 一种数据库归档模式下跨库查询方法和装置
CN116628010A (zh) 数据处理方法、装置及设备
CN115878654A (zh) 一种数据查询的方法、装置、设备及存储介质
CN115391426A (zh) 一种数据查询方法、装置、存储介质及电子设备
CN108153799B (zh) 数据库访问控制方法、装置和数据库系统
CN111966709B (zh) 一种数据查询方法、装置及电子设备
CN111339117B (zh) 数据处理方法、装置及设备
TW202036327A (zh) 產生統計資訊的方法、系統以及電子設備
CN118193802A (zh) 一种数据查询方法、装置、存储介质及电子设备
CN117033420B (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