CN112966004B - 数据查询方法、装置、电子设备以及计算机可读介质 - Google Patents
数据查询方法、装置、电子设备以及计算机可读介质 Download PDFInfo
- Publication number
- CN112966004B CN112966004B CN202110238676.4A CN202110238676A CN112966004B CN 112966004 B CN112966004 B CN 112966004B CN 202110238676 A CN202110238676 A CN 202110238676A CN 112966004 B CN112966004 B CN 112966004B
- Authority
- CN
- China
- Prior art keywords
- data
- query
- data source
- physical
- physical table
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种数据查询方法和装置,涉及大数据技术领域,进一步涉及数据查询技术领域。具体实现方案为:接收数据查询请求;基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;基于所述查询请求和所述对应关系,确定查询结果,该实施方式节省了数据库配置成本。
Description
技术领域
本申请涉及计算机技术领域,具体涉及大数据技术领域,进一步涉及数据查询技术领域,尤其涉及一种数据查询方法、装置、电子设备、计算机可读介质以及计算机程序产品。
背景技术
通用的标准化数据库产品,其数据源的组织和结构往往是固定的,但是在实际场景中,客户的本地数据源可能需要融合多个同构或异构数据源,因此,在私有化部署产品时,可能会存在数据设计不标准、多个数据源组织和结构不匹配、数据存储在多个异构数据源等问题,从而往往无法对数据源的数据做到准确查询,降低了数据查询的有效性。
发明内容
提供了一种数据查询方法、装置、电子设备、计算机可读介质以及计算机程序产品。
根据第一方面,提供了一种数据查询方法,上述方法包括:接收数据查询请求;基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;基于查询请求和对应关系,确定查询结果。
根据第二方面,提供了一种数据查询装置,该装置包括:接收单元,被配置成接收数据查询请求;获取单元,被配置成基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;确定单元,被配置成基于查询请求和对应关系,确定查询结果。
根据第三方面,提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面任一实现方式描述的方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面任一实现方式描述的方法。
根据第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面任一实现方式描述的方法。
本申请的实施例提供的数据查询方法和装置,首先,接收数据查询请求;其次,基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;最后,基于查询请求和对应关系,确定查询结果。由此,在数据源部署时,只需配置逻辑表和数据源的物理表的映射关系,在数据查询过程中无需关心产品的真实数据源的情况,即可无感知的将对逻辑表的查询,自动转换为对真实数据源的查询,从而降低了数据源部署成本,提高了数据查询有效性以及数据查询效率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请数据查询方法的一个实施例的流程图;
图2是本申请获取逻辑表和各个数据源的物理表之间的对应关系的方法的一种流程图;
图3是本申请确定查询结果的方法一种流程图;
图4是根据本申请数据查询装置的实施例的结构示意图;
图5是用来实现本申请实施例的数据查询方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
针对私有化部署产品时多个数据源组织和结构不匹配问题,传统解决方式一般通过数据治理团队梳理出符合私有化产品的数据结构要求的数据源,或者基于当前数据源现状进行调整,开发出适配当前数据源现状的定制化产品,但是这两种方式均需要花费较大人力和物力部署数据源,并且开发成本较高。本申请提供的数据查询方法和装置,可以在设计开发以及用户数据查询过程中屏蔽产品的真实数据源情况,即产品开发团队在开发时可以基于产品现状设计逻辑表的数据结构,而无需关心真实数据源情况;而产品开发团队在部署产品时只需配置逻辑表和物理表的映射关系,便可使用户无感知的将对逻辑表的查询,自动转换为对真实数据源的查询,执行并返回真实数据源的对应数据。
为了理解本申请实施例中提及的技术方案,下面对本申请中涉及的若干技术术语进行简要说明。
数据源(Data Source),数据源是指数据库应用程序所使用的数据库或者数据库服务器。数据源是提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,可以找到相应的数据库连接。
数据库连接池,负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
物理表,可以是数据源中实际存在的一张表。物理表是存放实体数据表,又称物理事实表。“事实”是指在业务中实际存在的内容,比如用户是事实,用户交易过程产生的订单也是一个事实。例如,一个关于用户事实的物理事实表中,每个列包含的是所有用户的每个特定类型的信息,例如所有用户的编号,而每行包含了某个特定用户的所有信息,例如该用户的编号、该用户出现场所、该用户出现时间。
逻辑表,逻辑表可以理解为数据库中的视图,是一张虚拟表。可以映射到一张物理表,也可以由多张物理表组成,这些物理表可以来自于不同的数据源。例如,对于Mysql,Hbase和ElasticSearch数据源,要组成一张逻辑表,只需要他们有相同含义的字段即可。这个字段在Mysql数据源中是主键,Hbase中是生成Rowkey用的值,是ES中的Key。
图1示出了根据本申请数据查询方法的一个实施例的流程100,上述数据查询方法包括以下步骤:
步骤101,接收数据查询请求。
本实施例中,查询请求可以是用户或开发人员发出的请求,查询请求包括查询信息,该查询信息可以包括:查询逻辑表、查询字段、操作类型;其中,查询逻辑表是用户或开发人员需要查询的逻辑表,查询字段是需要查询的逻辑表的字段、操作类型是对物理表中数据进行的操作,比如,查询、删除、写入等。可选地,在逻辑表或查询字段为多个时,查询信息还可以包括:查询规则、关联关系。其中,查询规则为查询多个逻辑表或多个查询字段中所采用的规则,例如,查询规则包括:排序、聚合字段和聚合字段的聚合方式(求和、求平均)、查询过滤以及查询结果返回条数等。查询信息中的关联关系可以逻辑表与查询字段之间的对应关系,或者多个逻辑表之间的关联关系,或者多个查询字段之间的关联关系,基于查询规则、关联关系可以得到查询信息的逻辑计算表达式。
需要说明的是,针对不同人员发出的查询请求,反馈的查询结果的表现形式不同。比如,对于由用户发出的查询请求,查询结果采用用户可以理解的逻辑表的字段表现出来。对于由开发人员发出的查询请求,查询结果可以直接采用数据源的物理表的字段表现出来,也可以采用转换后的逻辑表的字段表现出来。
步骤102,基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系。
本实施例中,数据查询方法运行于其上的执行主体可以创建与至少一个数据源连接的数据库连接池,还可以用于接收数据查询请求。
本实施例中,上述至少一个数据源是产品对应的数据源,至少一个数据源中的所有数据源可以是同构数据源,比如,所有数据源都是Mysql数据源;至少一个数据源还可以是异构数据源,比如,至少一个数据源可以包括Mysql、Oracle、SqlServer、PostgreSql、ElasticSearch、Doris等类型数据源;至少一个数据源可以是多个同构数据源和多个异构数据源组成的数据源。
本实施例中,逻辑表和各个数据源的物理表之间的对应关系是在数据库连接池创建后获取得到的。
本实施例中,在数据库连接池创建完成之后,可以首先提取出逻辑表的配置信息,其次根据逻辑表的配置信息,获取逻辑表和各个数据源的物理表之间的对应关系。
在本实施例中,可以通过扫描实体类代码提取逻辑表的配置信息。其中,实体类代码主要是作为数据管理和业务逻辑处理层面上存在的类别;实体类代码在分析阶段区分实体类的主要职责是存储和管理系统内部的信息,实体类代码也可以有行为,这些行为与它所代表的实体对象密切相关。本实施例中,通过扫描实体类代码得到逻辑表的配置信息包括:直接扫描实体类代码中与逻辑表相关的代码或通过对实体类代码进行配置得到所有与逻辑表相关的配置内容。
本实施例中,逻辑表可以是由多个下层的物理事实表,通过主键关联得到的表格,逻辑表不同于物理表,并不产生实际的物理表,而是在元数据中记录与各个数据源的物理表的对应关系。
逻辑表的配置信息通过扫描实体类代码中所有与逻辑表相关信息得到。在得到逻辑表的配置信息之后,可以将逻辑表的配置信息加载到内存,进一步在接收到查询请求时,从该逻辑表的配置信息中提取逻辑表和各个数据源的物理表之间的对应关系。
逻辑表的配置信息可以包括逻辑表的创建信息和关联信息。上述创建信息包括逻辑表的表名、逻辑表的每列的列名(字段名)等。上述关联信息包括逻辑表与各个数据源的物理表的对应列之间的关联关系。
上述逻辑表和各个数据源的物理表之间的对应关系可以包括逻辑表的表名与各个数据源的物理表之间对应关系,比如,逻辑表1对应物理表1、物理表2。逻辑表和各个数据源的物理表之间的对应关系还可以包括:逻辑表与各个数据源的物理表的对应列之间的关联关系。
步骤103,基于查询请求和对应关系,确定查询结果。
本实施例中,查询请求包括查询信息,查询信息包括查询逻辑表(表名)、查询字段等,查询逻辑表属于一种逻辑表。基于逻辑表与各个数据源的物理表之间的对应的关系,可以确定与查询逻辑表对应的数据源的物理表,基于查询字段进一步可以确定与查询逻辑表对应的数据源的物理表的字段的内容,通过该数据源对应的查询语句得到该数据源的物理表的字段的内容,即是查询请求中查询信息的查询结果。
本实施例中,至少一个数据源可以多个异构的数据源,因此查询结果可能会是从多个异构的数据源中获取的数据,数据查询方法运行于其上的执行主体支持标准的SQL语法,并在标准SQL语法的增加了新语法,以支持部分异构数据源的特有查询语句,比如ElasticSearch数据源的match语法。在接收到查询信息之后,执行主体会拦截并解析重写SQL语句,转换为与数据源对应的真实查询并执行语句查询。
为了便于用户或开发人员理解,查询结果可以直接采用数据源的物理表的字段表现出来,也可以采用转换后的逻辑表的字段表现出来。
本申请的实施例提供的数据查询方法,首先,接收数据查询请求;其次,基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;最后,基于查询请求和对应关系,确定查询结果。由此,在数据源部署时,只需配置逻辑表和数据源的物理表的映射关系,在数据查询过程中无需关心产品的真实数据源的情况,即可无感知的将对逻辑表的查询,自动转换为对真实数据源的查询,从而降低了数据源部署成本,提高了数据查询有效性以及数据查询效率。
在本实施例的一些可选实现方式中,上述数据库连接池创建过程包括:获取至少一个数据源的配置信息;基于所有数据源的配置信息创建数据库连接池。
本可选实现方式中,基于数据源的配置信息可以创建数据库连接池。数据源的配置信息包括:连接信息和数据源的元数据。其中,连接信息是数据源的连接信息,连接信息是数据库连接驱动能连接到数据源的必需的信息,连接信息可以包括数据源的名称和密码。数据源的元数据是至少一个数据源中一些描述数据源数据的数据及数据源所处环境的数据。
数据源的配置信息可以是通过扫描数据源的配置文件得到,而配置文件可以是由数据源供应商提供的文件,或者开发人员开发的有关数据源的文件。
本可选实现方式中,在获取至少一个数据源的配置信息之后,基于所有数据源的配置信息创建数据库连接池,实现简单、方便。
可选地,在确定数据源的配置信息之后,还可以检测各个数据源的配置信息是否正确,在所有配置信息均正确时,基于所有数据源的配置信息创建数据库连接池。其中检测各个数据源的配置信息是否正确可以包括:创建数据源连接,并向数据源发送数据包,若发送数据包成功,则进一步确定其他数据源的配置信息是否正确,直至所有数据源的配置信息均确认正确为止。
可选地,在创建数据库连接池之后,还可以向各个数据源发送数据包,通过数据包发送是否成功,进一步验证各个数据源连接是否正常。
本可选实现方式中,基于至少一个数据源的配置信息,创建数据库连接池,为同构或异构数据源提供了可靠的数据库连接;在创建数据库连接池过程中,检测所有数据源的配置信息是否正确,提高了数据源进行数据库连接时的可靠性。
图2示出了获取逻辑表和各个数据源的物理表之间的对应关系的方法的流程200。上述获取逻辑表和各个数据源的物理表之间的对应关系的方法包括以下步骤:
步骤201,扫描所有带逻辑表注解的实体类代码,得到逻辑表的配置信息。
本可选实现方式中,扫描所有带逻辑表注解的实体类代码即扫描实体类代码中与逻辑表相关的实体。参照如下配置实例:
@Data
@LogicTable(tables=“datasource1.action”)
public class ContractDemo{
@Column(name=“id”,type=“int”,primaryKey=true)
public Integer id;
@Column(name=“action_name”,type=“varchar”)
public String name;
}在该实例中,ContractDemo是一个逻辑表的名称,datasource1.action事与逻辑表对应的一个物理表。@Column中相关内容均是与该物理表涉及的相关的字段。
基于配置实例,可以扫描全部带有@LogicTable注解的实体,检查字段上注解信息并加载配置到内存中,以支持对一个逻辑表配置单个或多个数据源的物理表。本可选实现方式中,通过扫描所有带逻辑表注解的实体类代码可以方便、快捷地得到与逻辑表相关的逻辑表的配置信息。
步骤202,基于逻辑表的配置信息,得到逻辑表与各个数据源的物理表之间的对应关系。
本可选实现方式中,一个逻辑表可能对应多个数据源的多个物理表,基于逻辑表的配置信息,可以得到与逻辑表对应的所有物理表,以及与逻辑表的字段对应的所有数据源的物理表的字段。
例如,在一个实际场景中,需要获取用户的出行轨迹,以判断用户的健康码状态。其中第一数据源的物理表1的字段包括:用户ID,用户出现场所,用户出现时间。第二数据源的物理表2的字段包括:场所ID,场所名称,场所位置,场所风险级别。第一数据源与第二数据源可以是同构数据源,也可以是异构数据源。产品的逻辑表的字段包括:用户ID,用户出现场所,是否为中高风险地区,通过逻辑表的配置信息可以得到的,逻辑表与各个数据源的物理表的字段对应关系配置如下:
逻辑表->用户ID对应物理表1->用户ID;
逻辑表->用户出现场所对应物理表1->用户出现场所;
逻辑表->是否为中高风险地区对应物理表2->场所风险级别。
本可选实现方式提供的获取逻辑表和各个数据源的物理表之间的对应关系的方法,在与至少一个数据源连接的数据库连接池创建完成之后,扫描所有带逻辑表注解的实体类代码,得到逻辑表的配置信息,基于配置信息,得到逻辑表与各个数据源的物理表之间的对应关系,由此,基于带逻辑表注解的实体类代码便可以得到逻辑表与各个数据源的物理表之间的对应关系,实现简单,方便。
在本实施例的一些可选实现方式中,逻辑表和各个数据源的物理表之间的对应关系还可以是预先提取得到的关系,具体地,获取逻辑表和各个数据源的物理表之间的对应关系的方法还可以包括:扫描所有带逻辑表注解的实体类代码,得到逻辑表的配置信息;基于所述逻辑表的配置信息,得到逻辑表与各个数据源的物理表之间的对应关系。将逻辑表与各个数据源的物理表之间的对应关系存储至内存中;响应于确定至少一个物理表的字段或至少一个数据源的配置信息发生变化,基于变化后的至少一个物理表的字段或至少一个数据源的配置信息,更新所述逻辑表与各个数据源的物理表之间的对应关系。
本可选实现方式中,可以定时检查至少一个数据源的配置信息或逻辑表和各个数据源的物理表之间的对应关系中的物理表的字段是否发生变化;基于至少一个物理表的字段或至少一个数据源的配置信息的变化,更新逻辑表与各个数据源的物理表之间的对应关系。
本可选实现方式中,当检查到逻辑表和各个数据源的物理表之间的对应关系中的物理表的字段或至少一个数据源配置信息发生变化,说明当前产品的数据库的连接池、数据源的物理表或逻辑表和物理表之间的对应关系之中的一个或多个可能发生了实质变化,因此需要更新逻辑表与各个数据源的物理表之间的对应关系,本实施例中,更新逻辑表与各个数据源的物理表之间的对应关系包括:重新得到逻辑表的配置信息,并重新提取逻辑表和各个数据源的物理表之间的对应关系。
本可选实现方式中,数据查询方法运行于其上的执行主体还设置有配置中心,用户或开发人员可以在配置中心设置定时检查的时间间隔(该时间间隔可以根据系统设置需求而设置,比如,时间间隔为1s),通过该时间间隔达到定时检查至少一个数据源的配置信息或逻辑表和各个数据源的物理表之间的对应关系的变化的目的。
本可选实现方式中,定时检查数据源的物理表或数据源的配置信息是否发生变动,可以使逻辑表与物理表之间的对应关系随数据源的配置信息或数据源的物理表的变化而重新提取,避免由于数据源的物理表变动导致服务不可用,提高了数据查询的可靠性。
图3示出了确定查询结果的方法的流程300。上述确定查询结果的方法包括以下步骤:
步骤301,基于查询请求和对应关系,确定与查询请求对应的物理表、物理表和逻辑表之间的关联关系。
本可选实现方式中,上述对应关系是指逻辑表与各个数据源的物理表之间的对应关系,由于逻辑表的配置信息包括与所有逻辑表对应的数据源的物理表,基于逻辑表与各个数据源的物理表之间的对应关系,可以确定与所有逻辑表对应的物理表以及所有逻辑表与各个物理表之间的关联关系。关联关系表示不同类的对象之间的结构关系,物理表和逻辑表之间的关联关系可以在一段时间内将多个类的字段连接在一起。
进一步地,可以从与所有逻辑表对应的物理表中选取得到与查询请求中的查询信息相关的物理表,以及从所有逻辑表与各个物理表之间的关联关系中选取得到该物理表与逻辑表之间的关系。需要说明的是,与查询信息相关的物理表可以是一个数据源中的至少一个物理表,也可以多个同构或异构数据源中的至少一个物理表。
步骤302,根据与查询请求对应的物理表、物理表和逻辑表之间的关联关系,确定查询结果。
本可选实现方式中,查询请求中的查询信息对应的物理表可以是从中能直接提取得到查询结果的目标查询物理表,在确定查询信息对应的物理表之后,确定该物理表的数据源的类型,基于该物理表和逻辑表之间的关联关系,根据查询信息生成与该物理表的数据源的类型对应的查询语句,基于查询语句查询该物理表对应的数据源,得到查询结果。
当查询信息对应的物理表不是可以直接提取得到查询结果的目标查询物理表时,需要首先得到目标查询物理表,在本实施例的一些可选实现方式中,根据与查询请求对应的物理表、物理表和逻辑表之间的关联关系,确定查询结果,包括:根据查询请求对应的物理表,生成目标查询物理表;根据查询请求的逻辑计算表达式,生成与该目标查询物理表对应的数据源的数据提取语句;基于数据提取语句,从目标查询物理表中提取相应的数据;根据相应的数据,得到查询结果。
本可选实现方式中,首先生成目标查询物理表,基于查询信息的逻辑计算表达式,生成与该目标查询物理表对应的数据提取语句,采用该数据提取语句得到查询信息对应的查询结果,从而实现对数据源底层数据的自动查询,无需关注数据源的数据库类型,提高了用户查询体验。
可选地,上述确定查询结果的方法还可以包括:根据查询请求对应的物理表、物理表和逻辑表之间的关联关系,可以生成对应查询计划,该查询计划包括:查询目标物理表、查询物理字段、过滤条件、执行前置依赖关系。根据查询计划和查询目标物理表对应的数据源类型,解析生成对数据源的真实查询语句。在执行真实查询语句过程中,可以根据查询计划,确定并行执行以及存在前置依赖的查询路径,并行执行多路查询,以最大化提升查询性能。将多路查询获取的结果集进行合并、排序,可以得到查询结果,需要说明的是,查询请求包括查询信息,查询信息包括:操作类型,在操作类型包括数据写入或删除且查询信息的查询字段涉及多个物理表时,可以使用分布式锁保证修改操作的一致性;该模块会根据修改的目标数据源和目标数据行,添加分布式行锁,以保证最小的锁粒度。
当查询请求是由用户发出时,为了便于用户直观了解查询结果,还可以对字段名称进行转写,以保证和逻辑表字段保持一致。
在本实施例的一些可选实现方式中,根据相应的数据,得到查询结果包括:基于对应关系,将从目标查询物理表中提取出的相应的数据转换为与逻辑表对应字段的数据;将逻辑表对应字段的数据作为查询结果。
本可选实现方式中,用户对查询信息的查询是基于产品现状的逻辑表的数据,在从目标查询物理表中提取出数据之后,将数据转换为逻辑表对应字段的数据,并向用户输出逻辑表对应字段以及该字段对应的数据,可以使用户更加直观、形象的了解数据的内容,用户无需了解数据源的物理表的字段的配置,提高了用户体验。
本可选实现方式提供的确定查询结果的方法,基于查询请求和逻辑表和各个数据源的物理表之间的对应关系,确定与查询请求对应的物理表、物理表和逻辑表之间的关联关系,根据物理表、物理表和逻辑表之间的关联关系,确定查询结果,由此,在对查询信息对应的物理表进行查询时无需关注物理表的所在的数据源部署的情况,将物理表和逻辑表之间的对应关系自动转换为对真实数据源的查询,并返回查询信息的查询结果,提高了查询效率,提高了数据查询体验。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了数据查询装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可应用于各种电子设备中。
如图4所示,本实施例提供的数据查询装置400包括:接收单元401,获取单元402,确定单元403。其中,上述接收单元401,可以被配置成接收数据查询请求。上述获取单元402,可以被配置成基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系。上述确定单元403,可以被配置成基于查询请求和对应关系,确定查询结果。
在本实施例中,数据查询装置400中:接收单元401,获取单元402,确定单元403的具体处理及其所带来的技术效果可分别参考图1对应实施例中的步骤101、步骤102、步骤103的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述接收单元401中的数据库连接池通过以下模块创建:获取模块(图中未示出),创建模块(图中未示出)。其中,上述获取模块,可以被配置成获取至少一个数据源的配置信息。上述创建模块,可以被配置成基于所有数据源的配置信息创建数据库连接池。
在本实施例的一些可选的实现方式中,上述获取单元402包括:扫描模块(图中未示出),关系得到模块(图中未示出)。其中,上述扫描模块,可以被配置成扫描所有带逻辑表注解的实体类代码,得到逻辑表的配置信息。上述关系得到模块,可以被配置成基于逻辑表的配置信息,得到逻辑表与各个数据源的物理表之间的对应关系。
在本实施例的一些可选的实现方式中,上述获取单元402还包括:存储模块(图中未示出),配置模块(图中未示出)。其中,上述存储模块,可以被配置成将所述逻辑表与各个数据源的物理表之间的对应关系存储至内存中。上述配置模块,可以被配置成响应于确定至少一个物理表的字段或至少一个数据源的配置信息发生变化,基于变化后的至少一个物理表的字段或至少一个数据源的配置信息,更新所述逻辑表与各个数据源的物理表之间的对应关系。
在本实施例的一些可选的实现方式中,上述确定单元403包括:关系确定子单元(图中未示出),结果确定子单元(图中未示出)。其中,上述关系确定子单元,可以被配置成基于查询请求和对应关系,确定与查询请求对应的物理表、物理表和逻辑表之间的关联关系。上述结果确定子单元,可以被配置成根据与查询请求对应的物理表、物理表和逻辑表之间的关联关系,确定查询结果。
在本实施例的一些可选的实现方式中,上述结果确定子单元包括:表格生成模块(图中未示出),语句生成模块(图中未示出),提取模块(图中未示出),结果得到模块(图中未示出)。其中,上述表格生成模块,可以被配置成根据查询请求对应的物理表,生成目标查询物理表。上述语句生成模块,可以被配置成根据查询请求的逻辑计算表达式,生成与该目标查询物理表对应的数据源的数据提取语句。上述提取模块,可以被配置成基于数据提取语句,从目标查询物理表中提取相应的数据。上述结果得到模块,可以被配置成根据相应的数据,得到查询结果。
在本实施例的一些可选的实现方式中,上述结果得到模块包括:数据提取子模块(图中未示出),结果得到子模块(图中未示出)。其中,上述数据提取子模块,可以被配置成基于对应关系,将从目标查询物理表中提取出的相应的数据转换为与逻辑表对应字段的数据。上述结果得到子模块,可以被配置成将逻辑表对应字段的数据作为查询结果。
本申请的实施例提供的数据查询装置,首先,接收单元401接收数据查询请求;其次,获取单元402基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;最后,确定单元403基于查询请求和对应关系,确定查询结果。由此,在数据源部署时,只需配置逻辑表和数据源的物理表的映射关系,在数据查询过程中无需关心产品的真实数据源的情况,即可无感知的将对逻辑表的查询,自动转换为对真实数据源的查询,从而降低了数据源部署成本,提高了数据查询有效性以及数据查询效率。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本申请的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如数据查询方法。例如,在一些实施例中,数据查询方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的数据查询方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据查询方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种数据查询方法,所述方法包括:
接收数据查询请求;
基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系包括:扫描所有带逻辑表注解的实体类代码,得到逻辑表的配置信息;基于所述逻辑表的配置信息,得到逻辑表与各个数据源的物理表之间的对应关系;
基于所述查询请求和所述对应关系,确定查询结果包括:基于所述查询请求和所述对应关系,确定与所述查询请求对应的物理表、所述物理表和所述逻辑表之间的关联关系;根据与所述查询请求对应的物理表、所述物理表和所述逻辑表之间的关联关系,确定查询结果;
所述根据与所述查询请求对应的物理表、所述物理表和所述逻辑表之间的关联关系,确定查询结果,包括:根据所述查询请求对应的物理表,生成目标查询物理表;根据所述查询请求的逻辑计算表达式,生成与该目标查询物理表对应的数据源的数据提取语句;基于所述数据提取语句,从所述目标查询物理表中提取相应的数据;根据所述相应的数据,得到查询结果。
2.根据权利要求1所述的方法,其中,所述数据库连接池创建过程包括:
获取至少一个数据源的配置信息;
基于所有数据源的配置信息创建数据库连接池。
3.根据权利要求1所述的方法,其中,所述基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系还包括:
将所述逻辑表与各个数据源的物理表之间的对应关系存储至内存中;
响应于确定至少一个物理表的字段或至少一个数据源的配置信息发生变化,基于变化后的至少一个物理表的字段或至少一个数据源的配置信息,更新所述逻辑表与各个数据源的物理表之间的对应关系。
4.根据权利要求1所述的方法,其中,所述根据所述相应的数据,得到查询结果包括:
基于所述对应关系,将从所述目标查询物理表中提取出的相应的数据转换为与逻辑表对应字段的数据;
将所述逻辑表对应字段的数据作为查询结果。
5.一种数据查询装置,所述装置包括:
接收单元,接收数据查询请求;
获取单元,被配置成基于与至少一个数据源连接的数据库连接池,获取逻辑表和各个数据源的物理表之间的对应关系;所述获取单元包括:扫描模块,被配置成扫描所有带逻辑表注解的实体类代码,得到逻辑表的配置信息;关系得到模块,被配置成基于所述逻辑表的配置信息,得到逻辑表与各个数据源的物理表之间的对应关系;
确定单元,被配置成基于所述查询请求和所述对应关系,确定查询结果;所述确定单元包括:关系确定子单元,被配置成基于所述查询请求和所述对应关系,确定与所述查询请求对应的物理表、所述物理表和所述逻辑表之间的关联关系;结果确定子单元,被配置成根据与所述查询请求对应的物理表、所述物理表和所述逻辑表之间的关联关系,确定查询结果;
所述结果确定子单元包括:
表格生成模块,被配置成根据所述查询请求对应的物理表,生成目标查询物理表;语句生成模块,被配置成根据所述查询请求的逻辑计算表达式,生成与该目标查询物理表对应的数据源的数据提取语句;提取模块,被配置成基于所述数据提取语句,从所述目标查询物理表中提取相应的数据;结果得到模块,被配置成根据所述相应的数据,得到查询结果。
6.根据权利要求5所述的装置,其中,所述接收单元中的所述数据库连接池通过以下模块创建:
获取模块,被配置成获取至少一个数据源的配置信息;
创建模块,被配置成基于所有数据源的配置信息创建数据库连接池。
7.根据权利要求5所述的装置,其中,所述获取单元还包括:
存储模块,被配置成将所述逻辑表与各个数据源的物理表之间的对应关系存储至内存中;
配置模块,被配置成响应于确定至少一个物理表的字段或至少一个数据源的配置信息发生变化,基于变化后的至少一个物理表的字段或至少一个数据源的配置信息,更新所述逻辑表与各个数据源的物理表之间的对应关系。
8.根据权利要求5所述的装置,其中,所述结果得到模块包括:
数据提取子模块,被配置成基于所述对应关系,将从所述目标查询物理表中提取出的相应的数据转换为与逻辑表对应字段的数据;
结果得到子模块,被配置成将所述逻辑表对应字段的数据作为查询结果。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110238676.4A CN112966004B (zh) | 2021-03-04 | 2021-03-04 | 数据查询方法、装置、电子设备以及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110238676.4A CN112966004B (zh) | 2021-03-04 | 2021-03-04 | 数据查询方法、装置、电子设备以及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112966004A CN112966004A (zh) | 2021-06-15 |
CN112966004B true CN112966004B (zh) | 2023-07-28 |
Family
ID=76276570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110238676.4A Active CN112966004B (zh) | 2021-03-04 | 2021-03-04 | 数据查询方法、装置、电子设备以及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112966004B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434572B (zh) * | 2021-06-24 | 2025-01-10 | 中国工商银行股份有限公司 | 数据查询方法、查询系统、设备、存储介质及程序产品 |
CN113761024B (zh) * | 2021-08-27 | 2023-12-08 | 德邦证券股份有限公司 | 分布式sql的实时查询方法和系统 |
CN114154026B (zh) * | 2021-11-12 | 2024-07-02 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114610719B (zh) * | 2022-03-15 | 2022-11-22 | 云粒智慧科技有限公司 | 跨集群数据处理方法、装置、电子设备以及存储介质 |
CN114896286A (zh) * | 2022-05-31 | 2022-08-12 | 杭州数梦工场科技有限公司 | 数据资源的查询方法及装置 |
CN115729698A (zh) * | 2022-10-25 | 2023-03-03 | 北京火山引擎科技有限公司 | 一种基于Doris的数据合并方法、装置、设备及介质 |
CN115935926A (zh) * | 2022-10-31 | 2023-04-07 | 蚂蚁区块链科技(上海)有限公司 | 生成数据表的方法及装置 |
CN116383238B (zh) * | 2023-06-06 | 2023-08-29 | 湖南红普创新科技发展有限公司 | 基于图结构的数据虚拟化系统、方法、装置、设备及介质 |
CN116561132B (zh) * | 2023-07-06 | 2023-12-22 | 深圳市明源云科技有限公司 | 业务数据查询方法、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790322A (zh) * | 2004-12-17 | 2006-06-21 | 国际商业机器公司 | 从多个格式不同的物理表创建逻辑表的方法和系统 |
CN107491510A (zh) * | 2017-08-03 | 2017-12-19 | 国网江苏省电力公司信息通信分公司 | 一种混合异构数据源统一查询系统及分布式查询方法 |
CN108108456A (zh) * | 2017-12-28 | 2018-06-01 | 重庆邮电大学 | 一种基于元数据的信息资源分布式查询方法 |
CN108628986A (zh) * | 2018-04-27 | 2018-10-09 | 深圳市牛鼎丰科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN110674228A (zh) * | 2019-09-23 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 数据仓库模型构建和数据查询方法、装置及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7668807B2 (en) * | 2005-02-24 | 2010-02-23 | International Business Machines Corporation | Query rebinding for high-availability database systems |
US8458208B2 (en) * | 2008-10-09 | 2013-06-04 | International Business Machines Corporation | Automated data source assurance in distributed databases |
-
2021
- 2021-03-04 CN CN202110238676.4A patent/CN112966004B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790322A (zh) * | 2004-12-17 | 2006-06-21 | 国际商业机器公司 | 从多个格式不同的物理表创建逻辑表的方法和系统 |
CN107491510A (zh) * | 2017-08-03 | 2017-12-19 | 国网江苏省电力公司信息通信分公司 | 一种混合异构数据源统一查询系统及分布式查询方法 |
CN108108456A (zh) * | 2017-12-28 | 2018-06-01 | 重庆邮电大学 | 一种基于元数据的信息资源分布式查询方法 |
CN108628986A (zh) * | 2018-04-27 | 2018-10-09 | 深圳市牛鼎丰科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN110674228A (zh) * | 2019-09-23 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 数据仓库模型构建和数据查询方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
一种基于元数据静动态数据联合查询方法的研究与实现;曾艳梅;成长生;陆忠良;苏厚勤;;计算机应用与软件(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112966004A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112966004B (zh) | 数据查询方法、装置、电子设备以及计算机可读介质 | |
CA2783451C (en) | Method and system of adapting a data model to a user interface component | |
US11256712B2 (en) | Rapid design, development, and reuse of blockchain environment and smart contracts | |
CN111708779A (zh) | 一种数据管理方法、系统、管理设备及存储介质 | |
US20100185693A1 (en) | Methods and apparatus for creating an audit trail | |
CN110399448B (zh) | 中文地名地址搜索匹配方法、终端、计算机可读存储介质 | |
US20110252049A1 (en) | Function execution using sql | |
CN113312337B (zh) | 应用配置模型的构建方法和装置 | |
CN111427577A (zh) | 代码处理方法、装置及服务器 | |
CN112016326B (zh) | 一种地图区域词识别方法、装置、电子设备和存储介质 | |
US20230012642A1 (en) | Method and device for snapshotting metadata, and storage medium | |
CN114356964A (zh) | 数据血缘构建方法、装置、存储介质及电子设备 | |
CN117170655A (zh) | 一种元数据处理方法、装置、数据处理设备及存储介质 | |
CN116594683A (zh) | 一种代码注释信息生成方法、装置、设备及存储介质 | |
CN112989066A (zh) | 数据处理方法和装置、电子设备、计算机可读介质 | |
CN112988278A (zh) | 资源文件的meta文件修改方法、装置、电子设备及存储介质 | |
CN117453980A (zh) | 元数据管理、配置页面生成方法、服务器及存储介质 | |
CN117608575A (zh) | 一种应用开发方法、系统、设备及存储介质 | |
US9201937B2 (en) | Rapid provisioning of information for business analytics | |
CN114168119B (zh) | 代码文件编辑方法、装置、电子设备以及存储介质 | |
CN116882005A (zh) | 一种发电工程解析建模方法、装置、设备及介质 | |
CN116483707A (zh) | 测试方法、装置、设备、存储介质及程序产品 | |
CN116679973A (zh) | 软件产品更新的处理方法、装置及介质 | |
CN114153438A (zh) | 一种api自动生成系统 | |
CN114896264A (zh) | 一种基于Vue与动态SQL的可视化信息收集方法及系统 |
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 |