CN113742364B - 数据访问方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据访问方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113742364B CN113742364B CN202111064251.2A CN202111064251A CN113742364B CN 113742364 B CN113742364 B CN 113742364B CN 202111064251 A CN202111064251 A CN 202111064251A CN 113742364 B CN113742364 B CN 113742364B
- Authority
- CN
- China
- Prior art keywords
- user
- request
- data
- defined interface
- data source
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012545 processing Methods 0.000 abstract description 45
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 4
- 230000008570 general process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/2433—Query languages
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据访问方法、装置、电子设备、存储介质及程序产品,所述方法包括:获取数据访问请求;在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质。该技术方案能够提高大数据库管理系统中对于外部数据源的数据访问效率,进一步从整体上提高大数据处理系统的数据处理效率。
Description
技术领域
本公开实施例涉及大数据技术领域,具体涉及一种数据访问方法、装置、电子设备、存储介质及程序产品。
背景技术
近年来,随着大数据时代的到来,数据呈现爆炸式增长,信息规模日益庞大,信息数据为企业的决策提供了坚实的信息基础,海量数据的生成对社会带来的冲击与变革是前所未有的,对于企业而言,如何快速高效的从数据中提取有用的价值成为新的挑战。传统数据以结构化数据为主,而现在来源于社交网站、电子商务、物联网的数据基本都是非结构化和半结构化的数据,传统数据用关系型数据库的管理系统可以实现有效的管理与使用,而现在数据因其大量、迅速、复杂、大大超出了传统数据库软件工具的能力范围。因此,大数据处理引擎应运而生。
然而,大数据处理引擎中的数据通常具有一个或多个数据源,这些数据源可以包括同构/异构的(大)数据库、文件系统、服务接口等。在现有技术中,多源数据处理的效率较低、准确性差,且界面不够友好,不方便工作人员进行多源数据的处理。
因此,如何提高大数据系统中多数据源的访问效率是当前需要解决的主要问题之一。
发明内容
本公开实施例提供一种数据访问方法、装置、电子设备、存储介质及程序产品。
第一方面,本公开实施例中提供了一种数据访问方法,包括:
获取数据访问请求;
在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质。
进一步地,所述方法还包括:
接收用户输入的向外部数据源发送异步数据请求的第一算法;
将所述第一算法注册成所述第一用户自定义接口。
进一步地,所述方法还包括:
接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
将所述第二算法注册成所述第二用户自定义接口。
进一步地,所述数据访问请求包括SQL语句。
进一步地,在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求,包括:
解析所述SQL语句;
在所述SQL语句中包括对外部数据源的数据请求时,调用所述第一用户自定义接口向所述外部数据源发送异步数据请求。
进一步地,通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
确定是否已接收到所述外部数据源返回的请求数据;
在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
进一步地,通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
进一步地,在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求,包括:
解析所述SQL语句;
在所述SQL语句中包括传入所述第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向所述外部数据源发送异步数据请求。
进一步地,通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
接收所述数据访问请求之后用户输入的SQL语句;
解析所述SQL语句;
在所述SQL语句中包括传入所述第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据。
第二方面,本公开实施例中提供了一种数据访问方法,包括:
数据请求端向数据库管理系统发送数据访问请求;
所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;
所述数据库管理系统向所述数据请求端返回所述请求数据。
进一步地,所述方法还包括:
外部数据源接收到所述异步数据请求后,将所述请求数据返回给所述数据库管理系统。
进一步地,所述方法还包括:
客户端接收用户输入的向外部数据源发送异步数据请求的第一算法;
所述客户端将所述第一算法发送至所述数据库管理系统;
所述数据库管理系统将所述第一算法注册成所述第一用户自定义接口。
进一步地,所述方法还包括:
客户端接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
所述客户端将所述第二算法发送至所述数据库管理系统;
所述数据库管理系统将所述第二算法注册成所述第二用户自定义接口。
进一步地,所述数据访问请求包括SQL语句。
进一步地,所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求,包括:
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括对外部数据源的数据请求时,调用所述第一用户自定义接口向所述外部数据源发送异步数据请求。
进一步地,所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
所述数据库管理系统确定是否已接收到所述外部数据源返回的请求数据;
所述数据库管理系统在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
进一步地,所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
所述数据库管理系统周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
进一步地,所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求,包括:
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括传入所述第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向所述外部数据源发送异步数据请求。
进一步地,所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
所述数据库管理系统接收所述数据访问请求之后用户输入的SQL语句;
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括传入所述第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据。
第三方面,本公开实施例中提供了一种数据访问装置,包括:
第一获取模块,被配置为获取数据访问请求;
第一调用模块,被配置为在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
第二调用模块,被配置为通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质。
第四方面,本公开实施例中提供了一种数据访问系统,包括:数据请求端和数据库管理系统;
所述数据请求端向数据库管理系统发送数据访问请求;
所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;
所述数据库管理系统向所述数据请求端返回所述请求数据。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,上述装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述装置还可以包括通信接口,用于上述装置与其他设备或通信网络通信。
第五方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持上述任一装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述任一装置还可以包括通信接口,用于与其他设备或通信网络通信。
第六方面,本公开实施例提供了一种计算机可读存储介质,用于存储上述任一装置所用的计算机指令,其包含用于执行上述任一方法所涉及的计算机指令。
第七方面,本公开实施例提供了一种计算机程序产品,其包含计算机指令,该计算机指令被处理器执行时用于实现上述任一方面所述方法的步骤。
本公开实施例提供的技术方案可包括以下有益效果:
本公开实施例在大数据访问系统中,数据库管理系统接收到数据访问请求之后,针对外部数据源的数据访问请求,通过调用第一用户自定义接口向外部数据源发送异步数据获取请求,并启动后台线程监听外部数据源返回的请求数据,并将从外部数据源接收到的请求数据存储在后台存储介质,进而数据库管理系统可以再通过调用第二自定义接口从后台存储介质取出该请求数据,并返回给数据请求端。通过这种方式,可以提高大数据库管理系统中对于外部数据源的数据访问效率,进一步从整体上提高大数据处理系统的数据处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的数据访问方法的流程图;
图2示出根据本公开另一实施方式的数据访问方法的流程图;
图3示出根据本公开一实施方式的数据访问方法的应用流程示意图;
图4示出根据本公开一实施方式的数据访问装置的结构框图;
图5示出根据本公开一实施方式的数据访问系统的结构框图;
图6是适于用来实现根据本公开一实施方式的数据访问方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
图1示出根据本公开一实施方式的数据访问方法的流程图,如图1所示,所述数据访问方法包括以下步骤:
在步骤S101中,获取数据访问请求;
在步骤S102中,在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
在步骤S103中,通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质。
上文提及,近年来,随着大数据时代的到来,数据呈现爆炸式增长,信息规模日益庞大,信息数据为企业的决策提供了坚实的信息基础,海量数据的生成对社会带来的冲击与变革是前所未有的,对于企业而言,如何快速高效的从数据中提取有用的价值成为新的挑战。传统数据以结构化数据为主,而现在来源于社交网站、电子商务、物联网的数据基本都是非结构化和半结构化的数据,传统数据用关系型数据库的管理系统可以实现有效的管理与使用,而现在数据因其大量、迅速、复杂、大大超出了传统数据库软件工具的能力范围。因此,大数据处理引擎应运而生。
然而,大数据处理引擎中的数据通常具有一个或多个数据源,这些数据源可以包括同构/异构的(大)数据库、文件系统、服务接口等。在现有技术中,多源数据处理的效率较低、准确性差,且界面不够友好,不方便工作人员进行多源数据的处理。
因此,如何提高大数据系统中多数据源的访问效率是当前需要解决的主要问题之一。
在本公开一实施方式中,该数据访问方法可适用于在数据库管理系统上执行。
在本公开一实施方式中,数据访问请求可以是数据请求端发送至数据库管理系统的,数据库管理系统在接收到数据访问请求之后,可以先对该数据访问请求进行解析处理,并根据解析结果确定数据访问请求所请求的是否为外部数据源。需要说明的是,数据库管理系统中包括数据库,外部数据源可以是除数据库管理系统所管理的数据库之外的其他数据源,例如可以是与数据库管理系统所关联的数据库异构的外部数据库,或者是同构的外部数据库。
通常情况下,数据库管理系统的默认处理流程中,针对外部数据源的数据访问请求,向外部数据源发送数据访问请求,并等待外部数据源返回数据之后进行下一步处理。但是这种情况下,如果外部数据源的应答较慢,则会降低数据访问效率,尤其是针对外部数据源的连续多次数据访问,会大大降低数据处理效率,进而影响数据库的整体处理效率。
本公开实施例为了解决上一技术问题,针对外部数据源的数据访问请求,通过调用第一用户自定义接口向外部数据源发送异步数据请求,在发送完异步数据请求之后,立刻返回进行下一步处理,而不是等待外部数据源的应答。之后,还通过调用第二用户自定义接口从后台存储介质异步获取从外部数据源请求到的请求数据。也就是说,针对外部数据请求,数据库管理系统可以通过调用第一用户自定义接口以及第二用户自定义接口通过异步获取数据的方式从外部数据源获取请求数据,并且在外部数据源应答的期间,数据库管理系统继续执行下一步处理,而不是等待外部数据源将请求数据返回后再执行下一步处理,这种方式能够提高外部数据源的访问效率。
后台线程可以是针对这种情况,数据库管理系统在调用第一用户自定义接口之后所启动的,其可以在与外部数据源的通信接口监听外部数据源返回的请求数据,并将接收到的请求数据存储在后台存储介质,进而数据库管理系统调用第二用户自定义接口之后,第二用户自定义接口可以从后台线程请求获取存储在后台存储介质中的请求数据,数据库管理系统在第二用户自定义接口从后台存储介质获取到请求数据之后,将该请求数据返回给客户端。当然,可以理解的是,该数据访问请求也可以不是从客户端接收到的,而是从数据分析处理端接收到的,甚至可以是数据库管理系统中运行的某个数据处理分析程序接收到的,上述情况下可以将请求数据返回给数据分析处理端或者数据处理分析程序等,具体可以根据实际情况,将请求数据返回给数据请求端。
本公开实施例在大数据访问系统中,数据库管理系统接收到数据访问请求之后,针对外部数据源的数据访问请求,通过调用第一用户自定义接口向外部数据源发送异步数据获取请求,并启动后台线程监听外部数据源返回的请求数据,并将从外部数据源接收到的请求数据存储在后台存储介质,进而数据库管理系统可以再通过调用第二自定义接口从后台存储介质取出该请求数据,并返回给数据请求端。通过这种方式,可以提高大数据库管理系统中对于外部数据源的数据访问效率,进一步从整体上提高大数据处理系统的数据处理效率。
在本公开一实施方式中,所述方法进一步还可以包括以下步骤:
接收用户输入的向外部数据源发送异步数据请求的第一算法;
将所述第一算法注册成所述第一用户自定义接口。
该可选的实现方式中,第一自定义接口可以是用户编写的算法注册得到的,而不是数据库管理系统自带的接口。用户针对外部数据源的访问流程,编写异步向外部数据源发送数据请求的第一算法,并将该第一算法输入至数据库管理系统,数据库管理系统接收到该第一算法之后,将其在数据库管理系统中进行注册,其注册为第一用户自定义接口,在注册成功之后,使用者可以通过编写SQL语句来使用该第一用户自定义接口。
在本公开一实施方式中,所述方法进一步还可以包括以下步骤:
接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
将所述第二算法注册成所述第二用户自定义接口。
该可选的实现方式中,第二自定义接口可以是用户编写的算法注册得到的,而不是数据库管理系统自带的接口。用户针对外部数据源的访问流程,编写异步从后台存储介质获取请求数据的第二算法,并将该第二算法输入至数据库管理系统,数据库管理系统接收到该第二算法之后,将其在数据库管理系统中进行注册,其注册为第二用户自定义接口,在注册成功之后,使用者可以通过编写SQL语句来使用该第二用户自定义接口。
在本公开一实施方式中,所述数据访问请求包括SQL语句。
该可选的实现方式中,数据访问请求可以是用户输入的SQL语句。当然,可以理解的是SQL语句也可以是在进行数据统计分析等流程中编写好的SQL语句。
在本公开一实施方式中,步骤S102,即在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求的步骤,进一步还可以包括以下步骤:
解析所述SQL语句;
在所述SQL语句中包括对外部数据源的数据请求时,调用所述第一用户自定义接口向所述外部数据源发送异步数据请求。
该可选的实现方式中,可以在获取到SQL语句之后,对SQL语句进行解析,如果解析结果中发现该SQL语句需要访问外部数据源,则数据库管理系统可以调用第一用户自定义接口向外部数据源发送异步数据请求,而不是使用数据库的默认访问方式,即直接向外部数据源发送数据请求,并等待外部数据源将请求数据返回后进行下一步处理。本实施例中,通过调用第一用户自定义接口向外部数据源发送异步数据请求之后,可以继续执行下一步处理,而不是等待外部数据源返回所请求的数据。
在本公开一实施方式中,步骤S103,即通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据的步骤,进一步还可以包括以下步骤:
确定是否已接收到所述外部数据源返回的请求数据;
在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
该可选的实现方式中,数据库管理系统可以先确定后台线程是否已经接收到外部数据源返回的数据,如果已经接收到并存储至后台存储介质,则可以调用第二用户自定义接口,从后台存储介质获取请求数据,并对该请求数据做进一步处理。在一些实施例中,后台线程可以在接收到外部数据源返回的请求数据后,向数据库管理系统发送确认信息,以便数据库管理系统能够确定请求数据是否已经接收到。在另一些实施例中,后台存储介质可以将请求数据存储在后台存储介质之后,同时记录存储标识,数据库管理系统通过查看是否有对应的存储标识来确定是否已经接收到外部数据源返回的请求数据。
在一些实施例中,可以将该请求数据返回给请求方。当然,在一些其他实施例中,也可以对该请求数据进行统计分析等,具体根据实际应用场景而定,在此不做限制。可以理解的是,通过调用第一用户自定义接口向外部数据源发送异步数据请求,以及通过调用第二用户自定义接口从后台存储介质获取请求数据,相当于直接利用数据库管理系统中的默认接口从外部数据源获取请求数据,所不同的是前者从发送完异步数据请求至从后台存储介质获取请求数据期间,数据库管理系统在进行其他处理,而后者则是在等待外部数据源返回请求数据,并未进行其他处理。本公开实施例这种方式,在连续向外部数据源请求数据的场景下,能够显著地提高数据访问效率。
在本公开一实施方式中,步骤S103,即通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据的步骤,进一步还可以包括以下步骤:
周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
该可选的实现方式中,数据库管理系统也可以周期性的调用第二用户自定义接口,以便在后台线程将外部数据源返回的请求数据存储至后台存储介质后,能够从后台存储介质获取请求数据,并做进一步处理。
在本公开一实施方式中,步骤S102,即在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求的步骤,进一步还可以包括以下步骤:
解析所述SQL语句;
在所述SQL语句中包括传入所述第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向所述外部数据源发送异步数据请求。
该可选的实现方式中,用户可以在编写SQL语句时,直接通过调用第一用户自定义接口的方式从外部数据源请求获取请求数据。也就是说,用户在编写SQL语句时,直接使用用户自定义接口,数据库管理系统在解析该SQL语句后,如果解析出第一用户自定义接口的标识,则直接基于SQL语句中的参数命令调用执行该第一用户自定义接口,以便向外部数据源发送异步数据请求。
在本公开一实施方式中,步骤S103,即通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据的步骤,进一步还可以包括以下步骤:
接收所述数据访问请求之后用户输入的SQL语句;
解析所述SQL语句;
在所述SQL语句中包括传入所述第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据。
该可选的实现方式中,用户可以在数据访问流程中编写调用第二用户自定义接口,从后台存储介质获取外部数据源返回的请求数据的SQL语句,也就是说,用户在编写数据访问流程对应的SQL语句时,可以在需要调用外部数据源的位置编写向第一用户自定义接口传入参数命令,以调用第一用户自定义接口向外部数据源发送异步数据请求的参数命令,之后再接着编写向第二用户自定义接口传入参数命令,以调用第二用户自定义接口从后台存储介质获取外部数据源返回的请求数据的参数命令,最终达到利用用户自定义接口异步从外部数据源获取到请求数据的目的。可以理解的是,调用第二用户自定义接口的SQL语句可以在调用第一用户自定义接口的SQL语句之后,且该两个SQL语句成对出现。此外,调用第二用户自定义接口的SQL语句的出现位置可以基于实际需要而定,例如可以紧接在调用第一用户自定义接口的SQL语句之后,也可以在距离调用第一用户自定义接口的SQL语句较远的位置,但是需要在使用该请求数据的SQL语句之前。
图2示出根据本公开另一实施方式的数据访问方法的流程图,如图2所示,所述数据访问方法包括以下步骤:
在步骤S201中,数据请求端向数据库管理系统发送数据访问请求;
在步骤S202中,所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
在步骤S203中,所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;
在步骤S204中,所述数据库管理系统向所述数据请求端返回所述请求数据。
在本公开一实施方式中,该数据访问方法可适用于在包括数据请求端和数据库管理系统的数据访问系统中执行。
在本公开一实施方式中,数据访问请求可以是数据请求端发送至数据库管理系统的,数据库管理系统在接收到数据访问请求之后,可以先对该数据访问请求进行解析处理,并根据解析结果确定数据访问请求所请求的是否为外部数据源。需要说明的是,数据库管理系统中包括数据库,外部数据源可以是除数据库管理系统所管理的数据库之外的其他数据源,例如可以是与数据库管理系统所关联的数据库异构的外部数据库,或者是同构的外部数据库。
通常情况下,数据库管理系统的默认处理流程中,针对外部数据源的数据访问请求,向外部数据源发送数据访问请求,并等待外部数据源返回数据之后进行下一步处理。但是这种情况下,如果外部数据源的应答较慢,则会降低数据访问效率,尤其是针对外部数据源的连续多次数据访问,会大大降低数据处理效率,进而影响数据库的整体处理效率。
本公开实施例为了解决上一技术问题,针对外部数据源的数据访问请求,数据库管理系统通过调用第一用户自定义接口向外部数据源发送异步数据请求,在发送完异步数据请求之后,立刻返回进行下一步处理,而不是等待外部数据源的应答。之后,数据库管理系统还通过调用第二用户自定义接口从后台存储介质异步获取从外部数据源请求到的请求数据。也就是说,针对外部数据请求,数据库管理系统可以通过调用第一用户自定义接口以及第二用户自定义接口通过异步获取数据的方式从外部数据源获取请求数据,并且在外部数据源应答的期间,数据库管理系统继续执行下一步处理,而不是等待外部数据源将请求数据返回后再执行下一步处理,这种方式能够提高外部数据源的访问效率。
后台线程可以是针对这种情况,数据库管理系统在调用第一用户自定义接口之后所启动的,其可以在与外部数据源的通信接口监听外部数据源返回的请求数据,并将接收到的请求数据存储在后台存储介质,进而数据库管理系统调用第二用户自定义接口之后,第二用户自定义接口可以从后台线程请求获取存储在后台存储介质中的请求数据,数据库管理系统在第二用户自定义接口从后台存储介质获取到请求数据之后,将该请求数据返回给客户端。当然,可以理解的是,该数据访问请求也可以不是从客户端接收到的,而是从数据分析处理端接收到的,甚至可以是数据库管理系统中运行的某个数据处理分析程序接收到的,上述情况下可以将请求数据返回给数据分析处理端或者数据处理分析程序等,具体可以根据实际情况,将请求数据返回给数据请求端。
本公开实施例在大数据访问系统中,数据库管理系统接收到数据访问请求之后,针对外部数据源的数据访问请求,通过调用第一用户自定义接口向外部数据源发送异步数据获取请求,并启动后台线程监听外部数据源返回的请求数据,并将从外部数据源接收到的请求数据存储在后台存储介质,进而数据库管理系统可以再通过调用第二自定义接口从后台存储介质取出该请求数据,并返回给数据请求端。通过这种方式,可以提高大数据库管理系统中对于外部数据源的数据访问效率,进一步从整体上提高大数据处理系统的数据处理效率。
在本公开一实施方式中,所述方法进一步还可以包括以下步骤:
外部数据源接收到所述异步数据请求后,将所述请求数据返回给所述数据库管理系统。
该可选的实现方式中,外部数据源可以在接收到数据库管理系统的异步数据请求之后,准备所请求的请求数据,并将准备好的请求数据按照数异步数据请求中指示的方式返回。该异步数据请求中指示的方式可以包括异步数据返回的接口,例如可以是数据库管理系统中后台线程用于监听数据的接口。
在本公开一实施方式中,所述方法进一步还可以包括以下步骤:
客户端接收用户输入的向外部数据源发送异步数据请求的第一算法;
所述客户端将所述第一算法发送至所述数据库管理系统;
所述数据库管理系统将所述第一算法注册成所述第一用户自定义接口。
该可选的实现方式中,第一自定义接口可以是用户编写的算法注册得到的,而不是数据库管理系统自带的接口。用户针对外部数据源的访问流程,在客户端上编写异步向外部数据源发送数据请求的第一算法,客户端将该第一算法发送至数据库管理系统,数据库管理系统接收到该第一算法之后,将其在数据库管理系统中进行注册,其注册为第一用户自定义接口,在注册成功之后,使用者可以通过编写SQL语句来使用该第一用户自定义接口。
在本公开一实施方式中,所述方法进一步还可以包括以下步骤:
客户端接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
所述客户端将所述第二算法发送至所述数据库管理系统;
所述数据库管理系统将所述第二算法注册成所述第二用户自定义接口。
该可选的实现方式中,第二自定义接口可以是用户编写的算法注册得到的,而不是数据库管理系统自带的接口。用户针对外部数据源的访问流程,在客户端上编写异步从后台存储介质获取请求数据的第二算法,客户端将该第二算法发送至数据库管理系统,数据库管理系统接收到该第二算法之后,将其在数据库管理系统中进行注册,其注册为第二用户自定义接口,在注册成功之后,使用者可以通过编写SQL语句来使用该第二用户自定义接口。
在本公开一实施方式中,所述数据访问请求包括SQL语句。
该可选的实现方式中,数据访问请求可以是用户输入的SQL语句。当然,可以理解的是SQL语句也可以是在进行数据统计分析等流程中编写好的SQL语句。
在本公开一实施方式中,步骤S102,即所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求的步骤,进一步还可以包括以下步骤:
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括对外部数据源的数据请求时,调用所述第一用户自定义接口向所述外部数据源发送异步数据请求。
该可选的实现方式中,数据库管理系统可以在获取到SQL语句之后,对SQL语句进行解析,如果解析结果中发现该SQL语句需要访问外部数据源,则数据库管理系统可以调用第一用户自定义接口向外部数据源发送异步数据请求,而不是使用数据库的默认访问方式,即直接向外部数据源发送数据请求,并等待外部数据源将请求数据返回后进行下一步处理。本实施例中,数据库管理系统通过调用第一用户自定义接口向外部数据源发送异步数据请求之后,可以继续执行下一步处理,而不是等待外部数据源返回所请求的数据。
在本公开一实施方式中,步骤S103,即数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据的步骤,进一步还可以包括以下步骤:
所述数据库管理系统确定是否已接收到所述外部数据源返回的请求数据;
所述数据库管理系统在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
该可选的实现方式中,数据库管理系统可以先确定后台线程是否已经接收到外部数据源返回的数据,如果已经接收到并存储至后台存储介质,则可以调用第二用户自定义接口,从后台存储介质获取请求数据,并对该请求数据做进一步处理。在一些实施例中,后台线程可以在接收到外部数据源返回的请求数据后,向数据库管理系统发送确认信息,以便数据库管理系统能够确定请求数据是否已经接收到。在另一些实施例中,后台存储介质可以将请求数据存储在后台存储介质之后,同时记录存储标识,数据库管理系统通过查看是否有对应的存储标识来确定是否已经接收到外部数据源返回的请求数据。
在一些实施例中,数据库管理系统可以将该请求数据返回给数据请求端。当然,在一些其他实施例中,也可以对该请求数据进行统计分析等,具体根据实际应用场景而定,在此不做限制。可以理解的是,数据库管理系统通过调用第一用户自定义接口向外部数据源发送异步数据请求,以及通过调用第二用户自定义接口从后台存储介质获取请求数据,相当于直接利用数据库管理系统中的默认接口从外部数据源获取请求数据,所不同的是前者从发送完异步数据请求至从后台存储介质获取请求数据期间,数据库管理系统在进行其他处理,而后者则是在等待外部数据源返回请求数据,并未进行其他处理。本公开实施例这种方式,在连续向外部数据源请求数据的场景下,能够显著地提高数据访问效率。
在本公开一实施方式中,步骤S103,即所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据的步骤,进一步还可以包括以下步骤:
所述数据库管理系统周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
该可选的实现方式中,数据库管理系统也可以周期性的调用第二用户自定义接口,以便在后台线程将外部数据源返回的请求数据存储至后台存储介质后,能够从后台存储介质获取请求数据,并做进一步处理。
在本公开一实施方式中,步骤S102,即所述数据库管理系统在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求的步骤,进一步还可以包括以下步骤:
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括传入所述第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向所述外部数据源发送异步数据请求。
该可选的实现方式中,用户可以在编写SQL语句时,直接通过调用第一用户自定义接口的方式从外部数据源请求获取请求数据。也就是说,用户在编写SQL语句时,直接使用用户自定义接口,数据库管理系统在解析该SQL语句后,如果解析出第一用户自定义接口的标识,则直接基于SQL语句中的参数命令调用执行该第一用户自定义接口,以便向外部数据源发送异步数据请求。
在本公开一实施方式中,步骤S103,即所述数据库管理系统通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据的步骤,进一步还可以包括以下步骤:
所述数据库管理系统接收所述数据访问请求之后用户输入的SQL语句;
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括传入所述第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据。
该可选的实现方式中,用户可以在数据访问流程中编写调用第二用户自定义接口,从后台存储介质获取外部数据源返回的请求数据的SQL语句,也就是说,用户在编写数据访问流程对应的SQL语句时,可以在需要调用外部数据源的位置编写向第一用户自定义接口传入参数命令,以调用第一用户自定义接口向外部数据源发送异步数据请求的参数命令,之后再接着编写向第二用户自定义接口传入参数命令,以调用第二用户自定义接口从后台存储介质获取外部数据源返回的请求数据的参数命令,最终达到利用用户自定义接口异步从外部数据源获取到请求数据的目的。可以理解的是,调用第二用户自定义接口的SQL语句可以在调用第一用户自定义接口的SQL语句之后,且该两个SQL语句成对出现。此外,调用第二用户自定义接口的SQL语句的出现位置可以基于实际需要而定,例如可以紧接在调用第一用户自定义接口的SQL语句之后,也可以在距离调用第一用户自定义接口的SQL语句较远的位置,但是需要在使用该请求数据的SQL语句之前。
图2所示及相关实施方式中涉及的技术术语和技术特征与图1所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图2所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1所示及相关实施方式的解释的说明,此处不再赘述。
图3示出根据本公开一实施方式的数据访问方法的应用流程示意图。如图3所示,数据请求端向数据库管理系统发送数据访问请求,数据库管理系统解析数据访问请求,并在数据访问请求涉及外部数据源的访问请求时,调用第一用户自定义接口,向外部数据源发送异步数据请求,外部数据源接收到异步数据请求之后,将所请求的数据准备好,并将准备好的请求数据返回给后台线程,后台线程监控到外部数据源发送的数据之后,将请求数据存储至后台存储介质。数据库管理系统还调用第二用户自定义接口,从后台存储介质获取请求数据,并返回给数据请求端。
用户还通过客户端将第一算法和第二算法发送至数据库管理系统,以便数据库管理系统将第一算法和第二算法注册为第一用户自定义接口和用户第二自定义接口。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图4示出根据本公开一实施方式的数据访问装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,所述数据访问装置包括:
第一获取模块401,被配置为获取数据访问请求;
第一调用模块402,被配置为在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
第二调用模块403,被配置为通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质。
在本公开一实施方式中,所述装置还包括:
第一接收模块,被配置为接收用户输入的向外部数据源发送异步数据请求的第一算法;
第一注册模块,被配置为将所述第一算法注册成所述第一用户自定义接口。
在本公开一实施方式中,所述装置还包括:
第二接收模块,被配置为接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
第二注册模块,被配置为将所述第二算法注册成所述第二用户自定义接口。
在本公开一实施方式中,所述数据访问请求包括SQL语句。
在本公开一实施方式中,所述第一调用模块,包括:
第一解析子模块,被配置为解析所述SQL语句;
第一调用子模块,被配置为在所述SQL语句中包括对外部数据源的数据请求时,调用所述第一用户自定义接口向所述外部数据源发送异步数据请求。
在本公开一实施方式中,所述第二调用模块,包括:
第一确定子模块,被配置为确定是否已接收到所述外部数据源返回的请求数据;
第二调用子模块,被配置为在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
在本公开一实施方式中,所述第二调用模块,包括:
第三调用子模块,被配置为周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
在本公开一实施方式中,所述第一调用模块,包括:
第二解析子模块,被配置为解析所述SQL语句;
第四调用子模块,被配置为在所述SQL语句中包括传入所述第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向所述外部数据源发送异步数据请求。
在本公开一实施方式中,所述第二调用模块,包括:
第一接收子模块,被配置为接收所述数据访问请求之后用户输入的SQL语句;
第二解析子模块,被配置为解析所述SQL语句;
第五调用子模块,被配置为在所述SQL语句中包括传入所述第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据。
图5示出根据本公开一实施方式的数据访问系统的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,所述数据访问系统包括:数据请求端501和数据库管理系统502;
所述数据请求端501向数据库管理系统502发送数据访问请求;
所述数据库管理系统502在所述数据访问请求所请求的是外部数据源时,通过调用第一用户自定义接口向外部数据源发送异步数据请求;
所述数据库管理系统502通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;
所述数据库管理系统502向所述数据请求端返回所述请求数据。
在本公开一实施方式中,所述系统还包括:外部数据源;其中,
所述外部数据源接收到所述异步数据请求后,将所述请求数据返回给所述数据库管理系统。
在本公开一实施方式中,所述系统还包括:客户端;其中,
所述客户端接收用户输入的向外部数据源发送异步数据请求的第一算法;
所述客户端将所述第一算法发送至所述数据库管理系统;
所述数据库管理系统将所述第一算法注册成所述第一用户自定义接口。
在本公开一实施方式中,所述系统还包括:客户端;其中,
客户端接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
所述客户端将所述第二算法发送至所述数据库管理系统;
所述数据库管理系统将所述第二算法注册成所述第二用户自定义接口。
在本公开一实施方式中,所述数据访问请求包括SQL语句。
在本公开一实施方式中,所述数据库管理系统解析所述SQL语句;所述数据库管理系统在所述SQL语句中包括对外部数据源的数据请求时,调用所述第一用户自定义接口向所述外部数据源发送异步数据请求。
在本公开一实施方式中,所述数据库管理系统确定是否已接收到所述外部数据源返回的请求数据;
所述数据库管理系统在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
在本公开一实施方式中,所述数据库管理系统周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
在本公开一实施方式中,所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括传入所述第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向所述外部数据源发送异步数据请求。
在本公开一实施方式中,所述数据库管理系统接收所述数据访问请求之后用户输入的SQL语句;
所述数据库管理系统解析所述SQL语句;
所述数据库管理系统在所述SQL语句中包括传入所述第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据。
上述装置实施例所涉及的技术特征及其对应的解释和说明与上文所描述的方法实施例所涉及的技术特征及其对应的解释和说明相同、相应或相似,对于上述装置实施例所涉及的技术特征及其对应的解释和说明可参考上述方法实施例所涉及的技术特征及其对应的解释和说明,本公开在此不再赘述。
本公开实施例还公开了一种电子设备,所述电子设备包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方法步骤。
图6是适于用来实现根据本公开一实施方式的方法的计算机系统的结构示意图。
如图6所示,计算机系统600包括处理单元601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行上述实施方式中的各种处理。在RAM603中,还存储有计算机系统600操作所需的各种程序和数据。处理单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。其中,所述处理单元601可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行所述数据传输方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
本公开实施例还公开了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一方法步骤。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (15)
1.一种数据访问方法,包括:
获取SQL语句;
解析所述SQL语句;
在所述SQL语句中包括传入第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向外部数据源发送异步数据请求;
接收所述数据访问请求之后用户输入的SQL语句;
解析所述SQL语句;
在所述SQL语句中包括传入第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;所述第一用户自定义接口和所述第二用户自定义接口是用户编写的算法注册得到的,而不是数据库管理系统自带的接口;所述第一用户自定义接口和所述第二用户自定义接口注册成功后,通过编写SQL语句使用所述第一用户自定义接口和所述第二用户自定义接口。
2.根据权利要求1所述的方法,其中,所述方法还包括:
接收用户输入的向外部数据源发送异步数据请求的第一算法;
将所述第一算法注册成所述第一用户自定义接口。
3.根据权利要求1或2所述的方法,其中,所述方法还包括:
接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
将所述第二算法注册成所述第二用户自定义接口。
4.根据权利要求1所述的方法,其中,通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
确定是否已接收到所述外部数据源返回的请求数据;
在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
5.根据权利要求1所述的方法,其中,通过调用第二用户自定义接口从后台存储介质异步获取所述外部数据源返回的请求数据,包括:
周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
6.一种数据访问方法,包括:
数据请求端向数据库管理系统发送SQL语句;
所述数据库管理系统解析所述SQL语句,并在所述SQL语句中包括传入第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向外部数据源发送异步数据请求;
所述数据库管理系统接收所述数据访问请求之后用户输入的SQL语句,解析所述SQL语句,在所述SQL语句中包括传入第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;所述第一用户自定义接口和所述第二用户自定义接口是用户编写的算法注册得到的,而不是所述数据库管理系统自带的接口;所述第一用户自定义接口和所述第二用户自定义接口注册成功后,通过编写SQL语句使用所述第一用户自定义接口和所述第二用户自定义接口;
所述数据库管理系统向所述数据请求端返回所述请求数据。
7.根据权利要求6所述的方法,其中,所述方法还包括:
外部数据源接收到所述异步数据请求后,将所述请求数据返回给所述数据库管理系统。
8.根据权利要求6或7所述的方法,其中,所述方法还包括:
客户端接收用户输入的向外部数据源发送异步数据请求的第一算法;
所述客户端将所述第一算法发送至所述数据库管理系统;
所述数据库管理系统将所述第一算法注册成所述第一用户自定义接口。
9.根据权利要求6或7所述的方法,其中,所述方法还包括:
客户端接收用户输入的从所述后台存储介质异步获取请求数据的第二算法;
所述客户端将所述第二算法发送至所述数据库管理系统;
所述数据库管理系统将所述第二算法注册成所述第二用户自定义接口。
10.根据权利要求6所述的方法,其中,所述调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据,包括:
所述数据库管理系统确定是否已接收到所述外部数据源返回的请求数据;
所述数据库管理系统在已接收到所述外部数据源返回的所述请求数据时,调用所述第二用户自定义接口从所述后台存储介质异步获取所述外部数据源返回的请求数据。
11.根据权利要求6所述的方法,其中,所述调用所述第二用户自定义接口,以从所述后台存储介质异步获取所述外部数据源返回的请求数据,包括:
所述数据库管理系统周期性的调用所述第二用户自定义接口,以便周期性的访问所述后台存储介质,并在所述后台存储介质中存在所述请求数据时,获取所述请求数据。
12.一种数据访问装置,包括:
第一获取模块,被配置为获取SQL语句,并解析所述SQL语句;
第一调用模块,被配置为在所述SQL语句中包括传入第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向外部数据源发送异步数据请求;
第二调用模块,被配置为接收所述数据访问请求之后用户输入的SQL语句,解析所述SQL语句,在所述SQL语句中包括传入第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;所述第一用户自定义接口和所述第二用户自定义接口是用户编写的算法注册得到的,而不是数据库管理系统自带的接口;所述第一用户自定义接口和所述第二用户自定义接口注册成功后,通过编写SQL语句使用所述第一用户自定义接口和所述第二用户自定义接口。
13.一种数据访问系统,包括:数据请求端和数据库管理系统;
所述数据请求端向数据库管理系统发送SQL语句;
所述数据库管理系统解析所述SQL语句,并在所述SQL语句中包括传入第一用户自定义接口的参数命令时,调用所述第一用户自定义接口,以向外部数据源发送异步数据请求;
所述数据库管理系统接收所述数据访问请求之后用户输入的SQL语句,解析所述SQL语句,在所述SQL语句中包括传入第二用户自定义接口的参数命令时,调用所述第二用户自定义接口,以从后台存储介质异步获取所述外部数据源返回的请求数据;其中,在所述第一用户自定义接口向所述外部数据源发送异步数据请求后,由后台线程从所述外部数据源接收所述请求数据并将所述请求数据存储至所述后台存储介质;所述第一用户自定义接口和所述第二用户自定义接口是用户编写的算法注册得到的,而不是所述数据库管理系统自带的接口;所述第一用户自定义接口和所述第二用户自定义接口注册成功后,通过编写SQL语句使用所述第一用户自定义接口和所述第二用户自定义接口;
所述数据库管理系统向所述数据请求端返回所述请求数据。
14.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-11任一项所述方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1-11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064251.2A CN113742364B (zh) | 2021-09-10 | 2021-09-10 | 数据访问方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064251.2A CN113742364B (zh) | 2021-09-10 | 2021-09-10 | 数据访问方法、装置、电子设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742364A CN113742364A (zh) | 2021-12-03 |
CN113742364B true CN113742364B (zh) | 2023-12-26 |
Family
ID=78738104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064251.2A Active CN113742364B (zh) | 2021-09-10 | 2021-09-10 | 数据访问方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742364B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114637777A (zh) * | 2022-02-17 | 2022-06-17 | 深圳市双合电气股份有限公司 | 一种前后台系统数据实时交换处理方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023706A (en) * | 1997-07-11 | 2000-02-08 | International Business Machines Corporation | Parallel file system and method for multiple node file access |
US7523094B1 (en) * | 2008-03-16 | 2009-04-21 | International Business Machines Corporation | Asynchronous task for energy cost aware database query optimization |
CN106230795A (zh) * | 2016-07-22 | 2016-12-14 | 北京近颐科技有限公司 | 一种移动互联网环境下的网络安全系统 |
CN111259047A (zh) * | 2018-12-03 | 2020-06-09 | 顺丰科技有限公司 | 数据加载方法、装置、设备及其存储介质 |
CN111414391A (zh) * | 2020-03-25 | 2020-07-14 | 平安资产管理有限责任公司 | 一种访问多数据源的方法及系统 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112734349A (zh) * | 2019-10-14 | 2021-04-30 | 珠海格力电器股份有限公司 | 接口生成、数据调用方法、装置和电子设备 |
CN112783954A (zh) * | 2019-11-06 | 2021-05-11 | 北京金山云网络技术有限公司 | 数据访问方法、装置及服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7503052B2 (en) * | 2004-04-14 | 2009-03-10 | Microsoft Corporation | Asynchronous database API |
GB201704710D0 (en) * | 2017-03-24 | 2017-05-10 | Pixit Media Ltd | A data management system and method |
US20210141920A1 (en) * | 2019-11-08 | 2021-05-13 | Okera, Inc. | Dynamic view for implementing data access control policies |
-
2021
- 2021-09-10 CN CN202111064251.2A patent/CN113742364B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023706A (en) * | 1997-07-11 | 2000-02-08 | International Business Machines Corporation | Parallel file system and method for multiple node file access |
US7523094B1 (en) * | 2008-03-16 | 2009-04-21 | International Business Machines Corporation | Asynchronous task for energy cost aware database query optimization |
CN106230795A (zh) * | 2016-07-22 | 2016-12-14 | 北京近颐科技有限公司 | 一种移动互联网环境下的网络安全系统 |
CN111259047A (zh) * | 2018-12-03 | 2020-06-09 | 顺丰科技有限公司 | 数据加载方法、装置、设备及其存储介质 |
CN112734349A (zh) * | 2019-10-14 | 2021-04-30 | 珠海格力电器股份有限公司 | 接口生成、数据调用方法、装置和电子设备 |
CN112783954A (zh) * | 2019-11-06 | 2021-05-11 | 北京金山云网络技术有限公司 | 数据访问方法、装置及服务器 |
CN111414391A (zh) * | 2020-03-25 | 2020-07-14 | 平安资产管理有限责任公司 | 一种访问多数据源的方法及系统 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
Non-Patent Citations (1)
Title |
---|
网格环境下的数据库访问和集成;石柯;;计算机工程(08);第66-68页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113742364A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3816815A1 (en) | Target data obtaining method and apparatus | |
US8949220B2 (en) | Techniques for managing XML data associated with multiple execution units | |
US7051034B1 (en) | Dynamic optimization for processing a restartable sub-tree of a query execution plan | |
US20170262531A1 (en) | Data Visualization Method and Apparatus, and Database Server | |
CN111309760A (zh) | 数据检索方法、系统、设备及存储介质 | |
CN111666279B (zh) | 查询数据处理方法、装置、电子设备及计算机存储介质 | |
US20160034582A1 (en) | Computing device and method for executing database operation command | |
CN111581234B (zh) | Rac多节点数据库查询方法、装置及系统 | |
CN113760948A (zh) | 一种数据查询的方法及装置 | |
US20140101177A1 (en) | In-memory data profiling | |
CN113254519B (zh) | 多源异构数据库的访问方法、装置、设备和存储介质 | |
CN108363741B (zh) | 大数据统一接口方法、装置、设备及存储介质 | |
CN110909022A (zh) | 一种数据查询方法和装置 | |
US11263542B2 (en) | Technologies for auto discover and connect to a rest interface | |
CN113419740B (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
US20190258736A1 (en) | Dynamic Execution of ETL Jobs Without Metadata Repository | |
CN110929128A (zh) | 一种数据爬取方法、装置、设备和介质 | |
CN113076729A (zh) | 用于报表导入的方法及系统、可读存储介质及电子设备 | |
US20190213188A1 (en) | Distributed computing framework and distributed computing method | |
CN113742364B (zh) | 数据访问方法、装置、电子设备、存储介质及程序产品 | |
US6374257B1 (en) | Method and system for removing ambiguities in a shared database command | |
CN111752920A (zh) | 用于管理元数据的方法、系统及存储介质 | |
CN112487025A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN115905239A (zh) | 一种高度复用的性能指标数据检索实现方法及装置 | |
CN116226275A (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 |