CN113127477A - 访问数据库的方法、装置、计算机设备和存储介质 - Google Patents
访问数据库的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113127477A CN113127477A CN201911401581.9A CN201911401581A CN113127477A CN 113127477 A CN113127477 A CN 113127477A CN 201911401581 A CN201911401581 A CN 201911401581A CN 113127477 A CN113127477 A CN 113127477A
- Authority
- CN
- China
- Prior art keywords
- node
- database
- data
- working
- accessed
- 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/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种访问数据库的方法、装置、计算机设备和存储介质,属于大数据技术领域。该方法包括:大数据计算引擎访问数据库导出数据时,通过外部表,建立数据库的工作节点与代理节点的通信链路,并且建立代理节点与大数据计算引擎的任务的通信链路,使得数据库的工作节点将数据传输至代理节点,代理节点将数据传输至大数据计算引擎,使大数据计算引擎从数据库中导出数据。采用本申请,可以降低数据库的中央协调节点的负载。
Description
技术领域
本申请涉及大数据技术领域,特别涉及一种访问数据库的方法、装置、计算机设备和存储介质。
背景技术
在进行大数据分析时,大数据计算引擎在很多场景下需要访问数据库,从数据库中获取数据进行分析。在实时交互***中进行大数据分析,大数据计算引擎访问数据库的速度对实时交互***至关重要,所以需要加快大数据计算引擎访问数据库的速度。
相关技术中,大数据计算引擎在访问数据库时(如大规模并行处理数据库(Massive Parallel Processing Database,MPPDB)等),是通过大数据计算引擎中的Java数据库连接(Java Data Base Connectivity,JDBC)的方法来访问数据库。以从MPPDB中导出数据为例,具体处理为:Java数据库连接的数据源生成多个任务(task)(例如三个),从MPPDB加载数据,每个任务将数据的获取请求(获取请求中携带所要获取的数据的标识)发送至MPPDB的中央协调节点(Coordinator Node,CN),中央协调节点确定MPPDB中,能获取到该数据的工作节点(Data Node,DN)。然后中央协调节点将每个任务所要获取的数据的标识,发送至确定出的工作节点。工作节点基于数据的标识,获得数据,将数据传输至中央协调节点,中央协调节点将数据返回给任务,本次获取数据的过程执行完毕。
由于相关技术中,数据的获取请求和数据本身均需要发送给中央协调节点,造成访问数据库时,中央协调节点负载过重。
发明内容
本申请提供了一种访问数据库的方法、装置、计算机设备和存储介质,用以减少中央协调节点的负载。
第一方面,本申请提供了一种访问数据库的方法,应用于数据库的中央协调节点,该方法包括:
数据库的中央协调节点接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和外部表的***请求,根据创建请求创建外部表,其中,创建请求携带有外部表的存储地址,***请求携带有访问请求携带的待访问数据的标识。向主代理节点提供存储地址,从主代理节点获取数据库的工作节点与代理节点的对应关系,其中,数据库的工作节点为数据库中可获取到待访问数据的工作节点;向数据库的工作节点中每个工作节点发送***请求及工作节点与代理节点的对应关系,以使每个工作节点根据工作节点与代理节点的对应关系分别与对应的代理节点建立第一通信链路,并将执行***请求后获取的待访问数据通过第一通信链路发送给对应的代理节点,以使代理节点将待访问数据存储至存储地址。
本申请所示的方案,中央协调节点在接收到大数据计算引擎发送的创建请求后,可以在数据库中创建表名为创建请求中的表名的外部表,并且外部表的列为列信息指示的列。中央协调节点可以获取到数据库的每个工作节点上所能获取的数据的信息。中央协调节点可以基于待访问数据的标识和数据库的每个工作节点上所能获取的数据的信息,确定能获取到待访问数据的工作节点(后续为了方便描述,可以称为本次工作节点)。并且中央协调节点可以向主代理节点提供外部表的存储地址和本次工作节点的标识。中央协调节点接收主代理节点发送的工作节点与代理节点的对应关系,该对应关系中的工作节点为上述提到的本次工作节点。中央协调节点可以向该对应关系中的每个工作节点,发送***请求和每个工作节点对应的代理节点的标识。对于本次工作节点中的任一工作节点,该工作节点接收到***请求和自身对应的代理节点的标识后,基于自身对应的代理节点的标识与该代理节点建立第一通信链路。每个工作节点使用待访问数据的标识,通过第一通信链路向连接的代理节点发送待访问数据,使得代理节点基于外部表的存储地址,存储待访问数据。
这样,由于中央协调节点进入访问外部表的流程,使工作节点与代理节点建立连接,工作节点将数据传输至代理节点,代理节点后续可以将数据传输至大数据计算引擎中的任务,使得大数据计算引擎在访问数据库时,数据不需要经过中央协调节点,就能到达大数据计算引擎,可以减少中央协调节点的负载。
在一种可能的实现方式中,中央协调节点接收数据库的工作节点中每个工作节点发送的执行完成通知,删除外部表。
这样,中央协调节点可以将创建的外部表删除,节约存储空间。
在一种可能的实现方式中,中央协调节点向大数据计算引擎发送外部表的***完成消息。中央协调节点接收大数据计算引擎发送的外部表的删除消息,删除外部表。
本申请所示的方案,中央协调节点在接收本次工作节点中每个工作节点发送的执行完成通知后,可以向大数据计算引擎发送外部表的***完成消息。大数据计算引擎接收到外部表的***完成消息后,若大数据计算引擎中的任务从代理节点获取完数据,则可以向中央协调节点发送外部表的删除消息,该删除消息携带有外部表的表名。中央协调节点接收到删除消息时,可以从删除消息中,解析获得外部表的表名,将该表名的外部表删除。这样,中央协调节点可以将创建的外部表删除,节约存储空间。
第二方面,本申请提供了一种访问数据库的方法,应用于大数据计算引擎,该方法包括:
大数据计算引擎接收数据库的访问请求,其中,访问请求携带待访问数据的标识。向数据库的中央协调节点发送外部表的创建请求和外部表的***请求,其中,创建请求携带有外部表的存储地址,***请求携带有待访问数据的标识。大数据计算引擎从主代理节点获取根据预设的分配规则确定的并行获取待访问数据的任务的任务数目以及代理节点的标识,其中,数据库的工作节点为数据库中可获取到待访问数据的工作节点,代理节点的标识为与数据库的工作节点建立有第一通信链路的代理节点的标识。大数据计算引擎按照任务数目,创建获取待访问数据的任务,并为每个任务分配代理节点,建立每个任务与为每个任务分配的代理节点的第二通信链路,每个任务通过第二通信链路,从第二通信链路连接的代理节点,获取待访问数据。
本申请所示的方案,大数据计算引擎中的应用在访问数据库中的数据时,该应用生成数据库的访问请求,大数据计算引擎会获取到数据库的访问请求。在该访问请求中携带有该应用所要访问的数据库的标识和待访问数据的标识。大数据计算引擎可以确定访问请求中数据库的标识对应的数据库,向该数据库的中央协调节点发送外部表的创建请求。在该创建请求中携带有外部表的存储地址。大数据计算引擎可以从代理节点获取任务数目和本次工作节点对应的代理节点标识。然后大数据计算引擎可以创建该任务数目个任务,用于获取待访问数据。然后大数据计算引擎将代理节点平均分配给每个任务。大数据计算引擎中的任务可以根据每个任务对应的代理节点的标识,将每个任务与对应的代理节点建立第二通信链路。每个任务可以从连接的代理节点,获取该代理节点从工作节点获取的数据。
这样,由于代理节点后续可以将数据传输至大数据计算引擎中的任务,使得大数据计算引擎在访问数据库时,数据不需要经过中央协调节点,就能到达大数据计算引擎,可以减少中央协调节点的负载。
在一种可能的实现方式中,大数据计算引擎接收中央协调节点发送的外部表的***完成消息。大数据计算引擎向中央协调节点发送外部表的删除消息,删除消息用于指示中央协调节点删除外部表。
这样,在获取到待访问数据后,可以通知中央协调节点,将创建的外部表删除,节约存储空间。
第三方面,本申请提供了一种访问数据库的方法,应用于主代理节点,主代理节点用于管理多个代理节点,该方法包括:
主代理节点接收数据库的中央协调节点提供的存储地址和数据库的工作节点的标识,存储地址为外部表的存储地址,数据库的工作节点为数据库中可获取到待访问数据的工作节点,外部表用于存储待访问数据。主代理节点根据数据库的工作节点的标识,确定数据库的工作节点与代理节点的对应关系。主代理节点向中央协调节点发送对应关系,以使中央协调节点控制建立数据库的工作节点与对应的代理节点的第一通信链路。主代理节点向对应关系中的代理节点发送存储地址,接收大数据计算引擎发送的代理节点的获取请求。主代理节点根据预设的分配原则,确定并行获取待访问数据的任务的任务数目,向大数据计算引擎发送任务数目以及数据库的工作节点对应的代理节点的标识,以使大数据计算引擎基于任务数目,创建任务,根据创建的任务和代理节点的标识,控制建立任务与代理节点的第二通信链路。
本申请所示的方案,主代理节点接收中央协调节点提供的外部表的存储地址和工作节点的标识,主代理节点存储该存储地址。主代理节点基于预设的原则为接收到的每个工作节点的标识分配代理节点,进而确定出每个工作节点的标识对应的代理节点的标识(代理节点的标识可以是代理节点的地址)。主代理节点基于每个工作节点的标识对应的代理节点的标识,生成工作节点与代理节点的对应关系,向中央协调节点发送该对应关系。主代理节点还可以向该对应关系中的代理节点发送外部表的存储地址。主代理节点可以为大数据计算引擎提供工作节点与代理节点的对应关系中的代理节点的标识和任务数目,使得大数据计算引擎创建任务,并建立任务与代理节点的第二通信链路。
这样,代理节点与工作节点建立有通信链路,代理节点与任务也建立有通信链路,数据可以从工作节点发送至代理节点,代理节点将数据发送至任务,所以可以使得大数据计算引擎在访问数据库时,数据不需要经过中央协调节点,就能到达大数据计算引擎,可以减少中央协调节点的负载。
在一种可能的实现方式中,主代理节点属于对应关系中的代理节点,该方法还包括主代理节点将从第一通信链路获取的待访问数据,存储至外部表,通过第二通信链路将待访问数据传输至大数据计算引擎的任务。
这样,主代理节点可以将从工作节点获取的数据传输至大数据计算引擎,而不经过中央协调节点,可以减少中央协调节点的负载。
在一种可能的实现方式中,主代理节点根据数据库的工作节点对应的代理节点、存储的代理节点数目与任务数目的对应关系,确定并行获取待访问数据的任务的任务数目;或者,根据数据库的工作节点对应的代理节点上的线程的数目、预设的任务对应的线程数目,确定并行获取待访问数据的任务的任务数目。这样,主代理节点可以确定出任务数目。
在一种可能的实现方式中,主代理节点按照平均分配方式或者轮询方式,根据数据库的工作节点的标识,确定数据库的工作节点与代理节点的对应关系。
本申请所示的方案,主代理节点可以获取当前可用的代理节点,将工作节点按照轮询的方式,分配到各可用的代理节点,或者通过平均分配的方式,分配到各可用的代理节点上。这样,提供了两种建立工作节点与代理节点的对应关系的方式。
第四方面,本申请提供了一种访问数据库的方法,应用于数据库的中央协调节点该方法包括:
中央协调节点接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和外部表的***请求,根据创建请求创建外部表,其中,创建请求携带有外部表的表名,***请求携带有访问请求携带的待访问数据的标识。中央协调节点接收大数据计算引擎发送的工作节点的获取请求,确定数据库中可获取到待访问数据的工作节点的标识。中央协调节点向大数据计算引擎发送工作节点的标识。中央协调节点向工作节点的标识所属的工作节点发送***请求,以使工作节点的标识所属的工作节点将待访问数据发送至连接的大数据计算引擎的任务。
本申请所示的方案,中央协调节点在接收到大数据计算引擎发送的创建请求后,可以在数据库中创建表名为创建请求中的表名的外部表。中央协调节点接收大数据计算引擎发送的工作节点的获取请求,从中解析获得待访问数据的标识。中央协调节点可以获取到每个工作节点所能获取到的数据的信息。中央协调节点可以基于待访问数据的标识和每个工作节点所能获取到的数据的信息,确定能获取到待访问数据的工作节点(后续可以称为是本次工作节点)。然后中央协调节点向大数据计算引擎,发送本次工作节点的标识。中央协调节点向本次工作节点中每个工作节点发送***请求,以使该每个工作节点在与任务建立通信链路后,将待访问数据,发送至任务。
这样,由于中央协调节点进入访问外部表的流程,使工作节点与任务建立连接,工作节点将数据传输至任务,使得大数据计算引擎在访问数据库时,数据不需要经过中央协调节点,就能到达大数据计算引擎,可以减少中央协调节点的负载。
在一种可能的实现方式中,中央协调节点接收数据库的工作节点中每个工作节点发送的执行完成通知,删除外部表。
这样,中央协调节点可以将创建的外部表删除,节约存储空间。
在一种可能的实现方式中,中央协调节点向大数据计算引擎发送外部表的***完成消息。中央协调节点接收大数据计算引擎发送的外部表的删除消息,删除外部表。
本申请所示的方案,中央协调节点在接收本次工作节点中每个工作节点发送的执行完成通知后,可以向大数据计算引擎发送外部表的***完成消息。大数据计算引擎接收到外部表的***完成消息后,若大数据计算引擎中的任务从代理节点获取完数据,则可以向中央协调节点发送外部表的删除消息,该删除消息携带有外部表的表名。中央协调节点接收到删除消息时,可以从删除消息中,解析获得外部表的表名,将该表名的外部表删除。这样,中央协调节点可以将创建的外部表删除,节约存储空间。
第五方面,本申请提供了一种访问数据库的方法,应用于大数据计算引擎,该方法包括:
大数据计算引擎接收数据库的访问请求,其中,访问请求携带待访问数据的标识。大数据计算引擎向数据库的中央协调节点发送外部表的创建请求和外部表的***请求,其中,创建请求携带有外部表的表名,外部表***请求携带有待访问数据的标识。大数据计算引擎向中央协调节点发送工作节点的获取请求,接收中央协调节点发送的工作节点的标识,其中,工作节点的标识为数据库中可获取到待访问数据的工作节点的标识。大数据计算引擎根据工作节点的标识,创建获取待访问数据的任务,并为每个任务分配工作节点。大数据计算引擎建立每个任务与为每个任务分配的工作节点的通信链路,每个任务通过通信链路,从通信链路连接的工作节点,获取待访问数据。
本申请所示的方案,大数据计算引擎中的应用在访问数据库中的数据时,该应用生成数据库的访问请求,大数据计算引擎会获取到数据库的访问请求。在该访问请求中携带有该应用所要访问的数据库的标识和待访问数据的标识。大数据计算引擎可以确定访问请求中数据库的标识对应的数据库,向该数据库的中央协调节点发送外部表的创建请求。在该创建请求中携带有外部表的表名等。大数据计算引擎可以向中央协调节点发送工作节点的获取请求,该获取请求中携带有待访问数据的标识。大数据计算引擎接收中央协调节点发送的本次工作节点标识后,可以创建与工作节点的数目相同的任务。然后大数据计算引擎根据数据库的工作节点的标识,将创建的每个任务与工作节点建立通信链路,且每个任务连接一个工作节点,且每个任务连接不同的工作节点。大数据计算引擎的任务可以从连接的工作节点,获取待访问数据。
这样,由于中央协调节点进入访问外部表的流程,使工作节点与任务建立连接,工作节点将数据传输至任务,使得大数据计算引擎在访问数据库时,数据不需要经过中央协调节点,就能到达大数据计算引擎,可以减少中央协调节点的负载。
在一种可能的实现方式中,大数据计算引擎根据预设的工作节点数目与任务数目的对应关系、工作节点的标识,确定工作节点的标识指示的工作节点的数目对应的任务数目,创建任务数目个获取待访问数据的任务。
这样,提供了确定任务数目的方式。
在一种可能的实现方式中,大数据计算引擎接收中央协调节点发送的外部表的***完成消息。大数据计算引擎向中央协调节点发送外部表的删除消息,删除消息用于指示中央协调节点删除外部表。
这样,在获取到待访问数据后,可以通知中央协调节点,将创建的外部表删除,节约存储空间。
第六方面,提供了一种访问数据库的装置,该装置包括多个模块,通过该多个模块之间的协同功能,能够实现上述第一方面所提供的访问数据库的方法。
第七方面,提供了一种访问数据库的装置,该装置包括多个模块,通过该多个模块之间的协同功能,能够实现上述第二方面所提供的访问数据库的方法。
第八方面,提供了一种访问数据库的装置,该装置包括多个模块,通过该多个模块之间的协同功能,能够实现上述第三方面所提供的访问数据库的方法。
第九方面,提供了一种访问数据库的装置,该装置包括多个模块,通过该多个模块之间的协同功能,能够实现上述第四方面所提供的访问数据库的方法。
第十方面,提供了一种访问数据库的装置,该装置包括多个模块,通过该多个模块之间的协同功能,能够实现上述第五方面所提供的访问数据库的方法。
第十一方面,提供了一种访问数据库的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第一方面及其可能的实现方式的方法。
第十二方面,提供了一种访问数据库的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第二方面及其可能的实现方式的方法。
第十三方面,提供了一种访问数据库的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第三方面及其可能的实现方式的方法。
第十四方面,提供了一种访问数据库的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第四方面及其可能的实现方式的方法。
第十五方面,提供了一种访问数据库的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第五方面及其可能的实现方式的方法。
第十六方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第一方面及其可能的实现方式的方法,或者使得计算设备实现上述第六方面及其可能的实现方式的装置的功能。
第十七方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第二方面及其可能的实现方式的方法,或者使得计算设备实现上述第七方面及其可能的实现方式的装置的功能。
第十八方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第三方面及其可能的实现方式的方法,或者使得计算设备实现上述第八方面及其可能的实现方式的装置的功能。
第十九方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第四方面及其可能的实现方式的方法,或者使得计算设备实现上述第九方面及其可能的实现方式的装置的功能。
第二十方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第五方面及其可能的实现方式的方法,或者使得计算设备实现上述第十方面及其可能的实现方式的装置的功能。
第二十一方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第一方面及其可能的实现方式的方法,或者使得计算设备实现上述第六方面及其可能的实现方式的装置的功能。
第二十二方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第二方面及其可能的实现方式的方法,或者使得计算设备实现上述第七方面及其可能的实现方式的装置的功能。
第二十三方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第三方面及其可能的实现方式的方法,或者使得计算设备实现上述第八方面及其可能的实现方式的装置的功能。
第二十四方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第四方面及其可能的实现方式的方法,或者使得计算设备实现上述第九方面及其可能的实现方式的装置的功能。
第二十五方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第五方面及其可能的实现方式的方法,或者使得计算设备实现上述第十方面及其可能的实现方式的装置的功能。
附图说明
图1是本申请一个示例性实施例提供的数据导出的示意图;
图2是本申请一个示例性实施例提供的访问数据库的应用场景图;
图3是本申请一个示例性实施例提供的访问数据库的应用场景图;
图4是本申请一个示例性实施例提供的访问数据库的方法流程示意图;
图5是本申请一个示例性实施例提供的导出数据的结构示意图;
图6是本申请一个示例性实施例提供的访问数据库的方法流程示意图;
图7是本申请一个示例性实施例提供的导出数据的结构示意图;
图8是本申请一个示例性实施例提供的访问数据库的方法流程示意图;
图9是本申请一个示例性实施例提供的导入数据的结构示意图;
图10是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图11是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图12是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图13是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图14是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图15是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图16是本申请一个示例性实施例提供的访问数据库的装置的结构示意图;
图17是本申请一个示例性实施例提供的访问数据库的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于对本申请实施例的理解,下面首先介绍所涉及到的名词的概念:
大数据计算引擎(Big Data Compute Engine),指对大规模数据进行处理和计算的引擎。例如,Spark、Hadoop承载的map reduce(切分合并)、弗林克(Flink)等。其中,Spark是一种基于内存的开源分布式计算框架,专为大规模数据处理而设计的快速通用的计算引擎,作用相当于map reduce。Spark拥有Hadoop承载的map reduce所具有的全部优点,但不同的是,Spark将迭代过程的中间数据缓存到内存中,根据需要多次重复使用,这样减少了硬盘的读写,能够将多个操作进行合并后计算,因此提升了计算速度。
大规模并行处理数据库(Massive Parallel Processing DataBase,MPPDB),是一种无共享(Shared Nothing)架构的分布式并行数据库集群,具备高性能、高可用、高扩展特性。MPPDB可以为超大规模数据管理提供高性价比的通用计算平台,并广泛的用于支撑各类数据仓库***、商务智能(Business Intelligence,BI)***和决策支持***。在分布式并行数据库集群中,每个节点都有独立的磁盘存储***和内存***。在分布式并行数据库集群中,业务数据根据数据库模型和应用特点被划分到各个节点上,每个节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。
Hadoop分布式文件***(Hadoop Distributed File System,HDFS),为运行在通用硬件上的分布式文件***。HDFS具备独有的特性:高容错性、高吞吐量(为大量数据访问的应用提供高吞吐量支持)、大文件存储(支持存储百万兆字节、拍字节级别的数据)。HDFS对部署在多***立物理机器上的文件进行管理,可应用于网站用户行为数据存储、生态***数据存储和气象数据存储等。
中央协调节点:为数据库中负责提供外部应用接口、优化全局执行计划、向工作节点分发工作节点所要执行的内容,以及汇总、处理执行结果。
工作节点:为数据库中负责存储业务数据、执行数据查询任务以及向中央协调节点返回执行结果。在数据库中,DN有多个。每个DN处理一部分数据。为了使DN高概率的可用,DN可以存在主、备、从备。
Java数据库连接(Java Data Base Connectivity,JDBC):是一种标准Java应用编程接口(Java API),用来连接Java编程语言和广泛的数据库。从根本上来说,JDBC是一种规范,它提供了一套完整的接口,允许便携式访问到数据库。在访问数据库时,通过Java编写不同类型的可执行文件,来使用JDBC驱动程序访问数据库。
外部表(External Table/Foreign Table):外部表是对数据库的延伸,是指不存在于数据库中的表,可以认为是数据在数据库外部的组织。外部表的特性包括:位于文件***之中,按一定格式分割,如文本文件或其他类型的表可以作为外部表;对外部表的访问可以通过结构化查询语言(Structured Query Language,SQL)语句来完成,而不需要先将外部表中的数据装载进数据库中;可以对外部表进行查询操作和连接。
外表访问机制(Foreign Table Access Mechanism,FTAM):是一种能够访问外部表的某种具体实现。在本申请实施例中,外表访问机制用于大数据计算引擎可以并行连接MPPDB中的DN。
目前在大数据分析时,大数据计算引擎在很多场景下均需要访问多种数据源,然后进行融合查询和分析。例如,spark或者hive在进行分析时,需要使用MPPDB中的数据。又例如,在进行详单查询时,最近几个月的详单的数据存储在MDDPB中,而历史详单的数据存储在HDFS的文件中,为了提取一年或者更久的详单,大数据计算引擎需要同时加载MDDPB中的数据和HDFS文件中的数据,然后基于获取到的数据进行进一步的处理。上述的场景中都涉及到大数据计算引擎访问数据库的操作,所以访问数据库的速度对实时进行大数据计算的处理来说至关重要,所以需要提供一种并行访问数据库的方法。
相关技术中,大数据计算引擎为Spark,数据库为MPPDB。Spark在访问MPPDB获取数据时,是通过Spark的Java数据库连接的方法来访问MPPDB,获取数据。具体处理为:如图1所示,Java数据库连接的数据源生成三个任务(task)从MPPDB加载数据,每个任务将获取请求(获取请求包括所要获取的数据的标识)发送至MPPDB的中央协调节点。中央协调节点确定MPPDB存储有任务所要获取的数据的工作节点,将每个任务所要获取的数据的标识发送至确定出的工作节点,工作节点基于数据的标识,从MPPDB中获取数据,将获取的数据传输至中央协调节点。中央协调节点将工作节点发送的数据返回给任务,本次获取数据过程执行完毕。由于数据的获取请求和数据本身均需要返回给中央协调节点,造成访问数据库时,中央协调节点负载过重,所以虽然实现并行访问数据库,但是有可能会使中央协调节点无法提供服务、浪费MPPDB数据库中的内部带宽(如中央协调节点和工作节点之间的带宽)、并行业务并发效率低,因此需要提供一种高并发且访问速度快的数据库访问方式。
本申请提供了一种访问数据库的方法,以大数据计算引擎Spark访问数据库MPPDB为例进行本申请实施例的描述。本申请实施例所提供的方案可以应用于但不限于如下两种场景中:
场景一,如图2所示,Spark100与MPPDB200之间设置有代理节点300,也可以称为是连接代理(Connector agent)节点,代理节点300可以有多个,组成代理节点集群。Spark100可以部署为计算集群,计算集群包括多个服务器,MPPDB200可以部署为MPPDB集群,MPPDB集群包括多个服务器。MPPDB集群中设置有一个中央协调节点201、一个或多个工作节点202,每个工作节点202运行用于访问外部表的进程。多个工作节点202可以部署在MPPDB集群中不同的服务器上,且每个服务器上可以部署多个工作节点202。中央协调节点201可以部署在MPPDB集群中任一服务器上。
代理节点300可以为一个软件,也可以为一个硬件设备,硬件设备可以为计算机设备、服务器等。在代理节点300为一个软件时,其可以为一个进程,可以部署在计算集群上,也可以部署在MPPDB集群上,当然也可以单独部署在一个服务器集群上(该服务器集群可以称为是代理节点集群)。
在Spark100访问MPPDB200获取数据时,MPPDB200可以将数据传输至代理节点300,代理节点300将数据传输至Spark100中的任务101,实现Spark100通过代理节点与MPPDB200的直接连接(详细过程在后文图4的流程中描述)。
场景二,如图3所示,与场景一的区别是场景二中不包括代理节点集群,通过某种方式实现Spark100与MPPDB200的直接连接,使Spark100中任务101可以并行从MPPDB200获取数据(详细过程在后文图6的流程中描述)。
图4所示的流程将以场景一为例,描述Spark访问MPPDB,从MPPDB中获取数据的过程:
步骤401,大数据计算引擎获取数据库的访问请求,其中,访问请求携带所要访问的数据库的标识和待访问数据的标识。
其中,待访问数据为大数据计算引擎从数据库中所要获取的数据。
在本实施例中,大数据计算引擎中的应用在访问数据库中的数据时,该应用生成数据库的访问请求,大数据计算引擎会获取到数据库的访问请求。在该访问请求中携带有该应用所要访问的数据库的标识和待访问数据的标识。例如,Spark应用要访问MPPDB获取学生成绩表表A(tableA)(int number,varchar name,int score),可以携带MPPDB的标识,以及待访问数据的标识tableA,其中,int为整数型,number为数目,varchar name为名字为可边长字符串,int score为得分为整数型。
步骤402,大数据计算引擎向数据库的中央协调节点发送外部表的创建请求和外部表的***请求。
其中,创建请求携带有外部表的存储地址,该存储地址为预设的存储地址,该存储地址包括互联网协议(Internet Protocol,IP)地址和存储路径等,如该存储地址为分布式存储***的IP地址和存储路径。***请求携带有待访问数据的标识。
在本实施例中,大数据计算引擎可以确定访问请求中数据库的标识对应的数据库,向该数据库的中央协调节点发送外部表的创建请求。在该创建请求中携带有外部表的存储地址,该创建请求中还可以携带有外部表的列的属性信息和外部表的表名等。大数据计算引擎还可以向该中央协调节点发送外部表的***请求,在***请求中携带有待访问数据的标识。例如,还是以上述获取学生成绩表tableA为例,大数据计算引擎发送的创建请求可以是创建外部表ft_tableA,具体的创建请求的格式为create foreign table ft_tableA(int number,varchar name,int score)server ftam_server,其中,ftam_server用于指示MPPDB使用外部表访问机制来处理ft_tableA。外部表的***请求可以为将从tableA获取的数据***到ft_tableA中,具体***请求的格式为:insert into ft_tableAselect*from tableA。
步骤403,中央协调节点接收大数据计算引擎发送的外部表的创建请求和外部表的***请求,创建外部表。
在本实施例中,中央协调节点在接收到大数据计算引擎发送的创建请求后,可以基于创建请求,创建外部表。另外,创建请求中还包括外部表的表名和外部表的列的属性信息。具体处理是在数据库中创建表名为创建请求中的表名的外部表,并且外部表的列为列信息指示的列。
中央协调节点在接收到大数据计算引擎发送的外部表的***请求后,可以执行步骤404以及步骤404之后的处理。
步骤404,中央协调节点向主代理节点发送代理节点的第一获取请求。
其中,主代理节点可以为所有代理节点中的主代理节点,主代理节点与其余的代理节点之间建立有通信连接,用于监测其它代理节点的心跳情况,进而可以基于其它代理节点的心跳情况确定其它代理节点是否可用。
在本实施例中,数据库的每个工作节点对应有元数据信息(元数据信息在工作节点将数据写入数据库时生成),对于任一工作节点,该工作节点的元数据信息用于指示该工作节点从数据库中所能获取到的数据。这样,中央协调节点可以获取到数据库的每个工作节点上所能获取的数据的信息。中央协调节点可以基于待访问数据的标识和数据库的每个工作节点上所能获取的数据的信息,确定能获取到待访问数据的工作节点(后续为了方便描述,可以称为本次工作节点)。并且中央协调节点可以生成代理节点的第一获取请求,在第一获取请求中携带外部表的存储地址和本次工作节点的标识。该第一获取请求用于指示获取本次工作节点的标识对应的代理节点的标识,代理节点的标识可以是代理节点的地址(如代理节点的IP地址等)。然后中央协调节点向主代理节点发送代理节点的第一获取请求。
步骤405,主代理节点接收中央协调节点发送的代理节点的第一获取请求。
步骤406,主代理节点获得第一获取请求中携带的每个工作节点的标识对应的代理节点的标识,生成工作节点与代理节点的对应关系,向中央协调节点发送该工作节点与代理节点的对应关系。
在本实施例中,主代理节点接收中央协调节点发送的第一获取请求,从该第一获取请求中解析得到第一获取请求携带的工作节点的标识和外部表的存储地址。然后主代理节点存储该存储地址,主代理节点基于预设的原则为第一获取请求中的每个工作节点的标识分配代理节点,进而确定出每个工作节点的标识对应的代理节点的标识(代理节点的标识可以是代理节点的地址)。基于每个工作节点的标识对应的代理节点的标识,生成工作节点与代理节点的对应关系,向中央协调节点发送该对应关系。例如,第一获取请求中携带有8个工作节点的标识,代理节点集群可用的代理节点为4个,可以按照轮询的方式依次为每个代理节点上分配一个工作节点,再进行第二次轮询,这样为每个代理节点分配两个工作节点;也可以是代理节点上指定分配的工作节点的数目,如每个代理节点要求分配3个工作节点,具体可以是:主代理节点可以为第一个代理节点分配3个工作节点,为第二个代理节点上分配3个工作节点,为第三个代理节点上分配2个工作节点。还可以是每个代理节点上平分工作节点,即每个代理节点上分配两个工作节点。然后主代理节点可以向中央协调节点返回工作节点与代理节点的对应关系。另外主代理节点将上述存储地址发送至该对应关系中的各代理节点,以使该对应关系中的代理节点将接收到工作节点的数据,按照该存储地址进行存储。
需要说明的是,上述确定工作节点的标识对应的代理节点的标识时,采用了三种方式,其仅为两种举例的形式,本申请实施例不限于上述两种方式。
步骤407,中央协调节点接收主代理节点发送的工作节点与代理节点的对应关系。中央协调节点向本次工作节点该对应关系中的每个工作节点发送***请求及工作节点与代理节点的对应关系。
在本实施例中,中央协调节点接收主代理节点发送的工作节点与代理节点的对应关系,该对应关系中的工作节点为上述提到的本次工作节点。中央协调节点可以向该对应关系中的每个工作节点,发送***请求和上述工作节点与代理节点的对应关系。对于该对应关系中的任一工作节点,该工作节点接收到***请求和工作节点与代理节点的对应关系后,可以在该对应关系中,查找到自身对应的代理节点的标识。然后该工作节点基于自身对应的代理节点的标识与该代理节点建立第一通信链路。具体的,代理节点的标识可以是代理节点的IP地址,第一通信链路可以是传输控制协议(Transmission Control Protocol,TCP)连接的链路。
或者,中央协调节点可以向该对应关系中的每个工作节点,发送***请求和每个工作节点对应的代理节点的标识。对于该对应关系中的任一工作节点,该工作节点基于自身对应的代理节点的标识与该代理节点建立第一通信链路。
此处需要说明的是,对于两种处理中,***请求均是相同的,指示工作节点所要获取的数据的内容完全相同。例如,Spark应用要访问MPPDB获取学生成绩表tableA(intnumber,varchar name,int score),执行计划可以包括tableA(int number,varcharname,int score),用于指示要求工作节点所要获取的数据为tableA中的数据,且属性为(int number,varchar name,int score)。
步骤408,本次工作节点中每个工作节点通过第一通信链路,将获取的数据发送至连接的代理节点,代理节点基于外部表的存储地址,存储接收到的数据。
在本实施例中,本次工作节点中每个工作节点基于接收到的***请求中的待访问数据的标识,获取待访问数据的标识指示的数据,通过第一通信链路将获取到的数据发送至连接的代理节点。代理节点接收到工作节点发送的数据后,可以基于外部表的存储地址,将接收到的数据进行存储。例如,存储地址为分布式文件***的地址(IP地址和存储路径),代理节点可以将接收到的数据存储至分布式文件***中。
步骤409,大数据计算引擎向主代理节点发送的第二获取请求。
其中,第二获取请求用于请求连接本次工作节点的代理节点的标识和任务数目。任务数目为大数据计算引擎本次访问数据库所要创建的任务的数目,即并行获取待访问数据的任务的数目。
步骤410,主代理节点接收大数据计算引擎发送的第二获取请求,主代理节点确定任务数目。主代理节点向大数据计算引擎发送任务数目以及本次工作节点对应的代理节点的标识。
在本实施例中,主代理节点可以获取本次工作节点中每个工作节点对应的代理节点上可用线程的数目(可用线程为当前未使用的线程),以及预先存储的每个任务对应的线程数目(如每个任务对应线程数目为3)。然后主代理节点将该每个工作节点对应的代理节点上的线程的数目相加,获得线程数目总和。主代理节点将线程数目总和除以每个任务对应的线程数目,获得一个数值。若该数值为整数,则该数值为任务数目,若该数值为小数,则比该数值大的最小整数为任务数目。
或者,主代理节点中存储有代理节点数目与任务数目的对应关系,主代理节点可以使用本次工作节点对应的代理节点的数目,在该对应关系中,确定本次工作节点对应的代理节点的数目对应的任务数目,即获取到任务数目,例如,代理节点数目与任务数目的对应关系为一对一的对应关系,主代理节点将本次工作节点对应的代理节点的数目确定为任务数目,即每个代理节点对应一个任务。
主代理节点可以将任务数目和步骤406确定的代理节点的标识,发送至大数据计算引擎。
上述仅为两种举例的形式,当然也可以采用其它方式确定任务数目,本申请实施例不做限定。
步骤411,大数据计算引擎按照任务数目,创建获取待访问数据的任务,并为每个任务分配代理节点。
在本实施例中,大数据计算引擎接收到主代理节点发送的任务数目和代理节点的标识后,可以创建该任务数目个任务,用于获取待访问数据。然后大数据计算引擎将代理节点平均分配给每个任务。
步骤412,大数据计算引擎根据代理节点的标识,通知任务建立任务与代理节点的标识指示的代理节点的第二通信链路。
在本实施例中,大数据计算引擎中的任务可以根据每个任务对应的代理节点的标识,将每个任务与对应的代理节点建立第二通信链路。该第二通信链路可以为TCP连接的通信链路。这样,任务与代理节点之间均有第二通信链路。
步骤413,大数据计算引擎通过第二通信链路,从第二通信链路连接的代理节点,获取待访问数据。
在本实施例中,对于步骤411创建的每个任务,该任务可以从连接的代理节点,获取该代理节点从工作节点获取的数据。具体可以是任务向连接的代理节点发送获取数据的请求,该请求中携带待访问数据的标识,该代理节点从上述存储地址,获取该代理节点连接的工作节点发送的待访问数据的标识对应的数据,将该数据发送至该任务。
步骤414,中央协调节点接收本次工作节点发送的执行完成通知,删除外部表。
在本实施例中,本次工作节点中每个工作节点在将待访问数据的标识对应的数据,发送至代理节点后,可以中央协调节点发送执行完成通知。中央协调节点接收到本次工作节点中每个工作节点发送的执行完成通知,可以进行删除外部表的处理,具体是将步骤403创建的外部表删除。
在一种可能的实施方式中,中央协调节点在删除外部表时,在接收到大数据计算引擎发送的外部表的删除消息后,才进行删除,相应的处理可以为:
中央协调节点在接收本次工作节点中每个工作节点发送的执行完成通知后,可以向大数据计算引擎发送外部表的***完成消息。大数据计算引擎接收到外部表的***完成消息后,若大数据计算引擎中的任务从代理节点获取完数据(具体可以是任务接收到代理节点发送的发送完成通知等),则可以向中央协调节点发送外部表的删除消息,该删除消息携带有外部表的表名。中央协调节点接收到删除消息时,可以从删除消息中,解析获得外部表的表名,将该表名的外部表删除。
大数据计算引擎可以向获取待访问数据的应用反馈待访问数据的标识对应的数据。
至此,大数据计算引擎从数据库中,获取到待访问数据的标识对应的数据,实现对数据库的访问。
另外,在大数据计算引擎为spark时,大数据计算引擎中的任务接收完数据后,将数据生成弹性式分布式数据集(Resilient Distributed Datasets,RDD)。
另外,在大数据计算引擎、数据库和代理节点的交互过程中,每条消息中还需要携带标识外部表的表名,该表名用于指示是在执行该外部表的访问。这样,代理节点就可以确定将该外部表的数据存储至该外部表的数据的存储地址,以及代理节点就可以将该外部表的数据发送至对应的任务,而不会发送至其它任务。
另外,本申请实施例中,还提供了更直观的数据传输示意图,如图5所示,数据从工作节点传输至代理节点,代理节点将数据传输至大数据计算引擎中的任务,而未经过数据库的中央协调节点,图5中一个工作节点连接一个代理节点,一个代理节点连接一个任务。
需要说明的是,在图4所示的流程图中,假定主代理节点也参与数据转发处理。
本申请实施例中,由于中央协调节点进入访问外部表的流程,使工作节点与代理节点建立连接,使代理节点与大数据计算引擎中的任务建立连接。这样,工作节点将数据传输至代理节点,代理节点将数据传输至大数据计算引擎中的任务,使得大数据计算引擎在访问数据库时,数据不需要经过中央协调节点,就能到达大数据计算引擎。
对应上述场景二,如图6所示,本申请实施例还提供了如下访问数据库的处理流程:
步骤601,大数据计算引擎获取数据库的访问请求,其中,访问请求携带所要访问的数据库的标识和待访问数据的标识。
步骤602,大数据计算引擎向数据库的中央协调节点发送外部表的创建请求和外部表的***请求,其中,创建请求携带有外部表的表名和列的属性信息,***请求携带有待访问数据的标识。
步骤603,中央协调节点接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和外部表的***请求,根据创建请求,创建外部表。
步骤601至步骤603的流程与步骤401至步骤403的流程基本相同,过程可参见步骤401至步骤403的描述,只不过步骤603的创建请求中不会携带外部表的存储地址,仅携带了外部表的表名和外部表的列的属性信息,中央协调节点仅会存储外部表的表名和外部表的列的属性信息,其余过程此处不再赘述。
步骤604,大数据计算引擎向中央协调节点发送工作节点的获取请求。
在本实施例中,大数据计算引擎可以向中央协调节点发送工作节点的获取请求,该获取请求中携带有待访问数据的标识。
步骤605,中央协调节点接收大数据计算引擎发送的工作节点的获取请求,确定能获取到待访问数据的工作节点的标识,向大数据计算引擎发送能获取到待访问数据的工作节点的标识。
在本实施例中,中央协调节点接收大数据计算引擎发送的工作节点的获取请求,从中解析获得待访问数据的标识。中央协调节点使用待访问数据的标识,并且可以获取到每个工作节点所能获取到的数据的信息。中央协调节点可以基于待访问数据的标识,确定能获取到待访问数据的工作节点(后续可以称为是本次工作节点)。
然后中央协调节点向大数据计算引擎,发送本次工作节点的标识。
步骤606,大数据计算引擎接收中央协调节点发送的本次工作节点的标识。
步骤607,大数据计算引擎根据工作节点的标识,创建获取所述待访问数据的任务,建立创建的任务与本次工作节点的通信链路。
在本实施例中,大数据计算引擎接收到本次工作节点的标识后,可以创建与工作节点的数目相同的任务。然后大数据计算引擎根据数据库的工作节点的标识,将创建的每个任务与工作节点建立通信链路,且每个任务连接一个工作节点,且每个任务连接不同的工作节点。
在一种可能实现方式中,大数据计算引擎中也可以预设有任务数目与工作节点数目的对应关系,可以基于本次工作节点的数目,确定出任务数目。
步骤608,中央协调节点向本次工作节点发送***请求。
在本实施例中,中央协调节点可以向本次工作节点中每个工作节点发送***请求,该***请求中携带有待访问数据的标识。
本次工作节点中每个工作节点接收到***请求后,可以基于待访问数据的标识,获取到该标识指示的数据。
步骤609,大数据计算引擎的每个任务从通信链路连接的工作节点,获取待访问的数据。
在本实施例中,大数据计算引擎的任务可以通过通信链路(如TCP连接等),向连接的工作节点发送数据获取请求。连接的工作节点将获取到的待访问数据发送至任务。任务接收到待访问数据后,可以将接收到的待访问数据返回给大数据计算引擎的应用。另外,还可以将接收到的待访问数据***外部表中。
另外,将待访问数据***外部表时,可以生成弹性式分布式数据集。
步骤610,中央协调节点接收本次工作节点中每个工作节点发送的执行完成通知,删除外部表。
步骤610与步骤413的处理完全相同,此处不再赘述。
在一种可能的实施方式中,中央协调节点在删除外部表时,在接收到大数据计算引擎发送的外部表的删除消息后,才进行删除,相应的处理可参见图4的处理。
另外,本申请实施例中,还提供了更直观的数据传输示意图,如图7所示,数据从工作节点传输至大数据计算引擎中的任务,而未经过数据库的中央协调节点,图7中是一个工作节点连接一个任务。
本申请实施例中,大数据计算引擎的任务与工作节点直接建立通信链路,从工作节点直接获取数据,数据不需要经过中央协调节点,所以可以降低中央协调节点的负担。
本申请实施例中,如图8所示,还提供了使用本申请的机制,将数据导入数据库(还是以MPPDB为例进行说明)的过程:
步骤801,中央协调节点接收外部表的导入请求,其中,导入请求中携带有外部表的表名和存储地址。
在本实施例中,数据库的使用者想要将数据添加至数据库中,可以通过终端上数据库提供给用户的操作界面,输入所要导入的外部表的表名和存储地址(具体可以是编写导入请求的SQL语句,该表名可以为所要导入数据库的数据的文件名,该存储地址为所要导入数据库的数据当前的存储地址),然后触发确认选项。终端向中央协调节点发送外部表的导入请求。中央协调节点接收终端发送的外部表的导入请求,从中获取到表名、数据量和存储地址。
步骤802,中央协调节点向主代理节点发送代理节点的第三获取请求。
在本实施例中,中央协调节点可以基于外部表中数据的数据量、数据库存储数据的原则,确定该数据库中所要写入数据的工作节点(如选取预设数目个负载量小于预设数值的工作节点等)。然后中央协调节点向主代理节点发送代理节点的第三获取请求,该第三获取请求携带有外部表的存储地址和所要写入数据的工作节点的标识。
步骤803,主代理节点接收第三获取请求,确定所要写入数据的工作节点对应的代理节点,向中央协调节点发送每个工作节点对应的代理节点的标识。
在本实施例中,主代理节点接收中央协调节点发送的第三获取请求,从第三获取请求中解析得到表名、存储地址和所要写入数据的工作节点的标识。主代理节点为了使每个工作节点处理数据的数据量相同,可以选取工作节点的数目个代理节点,然后将工作节点与代理节点一一对应,生成工作节点与代理节点的对应关系。主代理节点向中央协调节点发送工作节点与代理节点的对应关系。并且主代理节点将外部表的数据等分为工作节点的数目份,每个代理节点处理一份,建立表名、代理节点与所要获取的数据的标识的对应关系。
步骤804,中央协调节点接收主代理节点发送的工作节点与代理节点的对应关系。
步骤805,中央协调节点向每个工作节点发送工作节点与代理节点的对应关系。每个工作节点与对应的代理节点建立第三通信链路,从连接的代理节点获取数据。
在本实施例中,中央协调节点接收到每个工作节点对应的代理节点的标识后,可以向每个工作节点发送工作节点与代理节点的对应关系。每个工作节点可以从接收到的对应关系中,获取到自身对应的代理节点的标识。另外,可以是对于每个工作节点,中央协调节点仅发送该工作节点对应的代理节点的标识。
每个工作节点在获取到所要连接的代理节点的标识后,可以使用代理节点的标识(代理节点的标识可以是代理节点的地址),与代理节点建立第三通信链路。第三通信链路可以是TCP连接的通信链路。
每个工作节点可以通过第三通信链路,向连接的代理节点发送数据获取请求,在该数据获取请求中携带外部表的表名。代理节点接收到数据获取请求后,可以从中获取到外部表的表名。然后代理节点,可以基于外部表的表名、代理节点与所要获取的数据的标识的对应关系,确定自身所要获取的数据,将自身获取数据的数据,通过第三通信链路,发送至连接的工作节点。
每个工作节点接收到代理节点发送的数据后,可以将数据存储至数据库,这样,外部表的数据即成功导入数据库中。
每个工作节点将接收自代理节点的数据存储至数据库后,可以向中央协调节点发送执行完成通知。
步骤806,中央协调节点接收工作节点发送的执行完成通知,向数据库的使用者的终端发送导入成功通知。
在本实施例中,中央协调节点接收到所有的工作节点发送的执行完成通知后,可以向数据库的使用者的终端发送导入成功通知。
该终端接收到导入成功通知后,可以显示外部表的数据导入完成的提示信息,这样,数据库的使用者可以确定数据已成功导入数据库中。
另外,本申请实施例中,还提供了更直观的数据传输示意图,如图9所示,外部表的数据从代理节点传输至数据库的工作节点,而未经过数据库的中央协调节点,图9中一个工作节点连接一个代理节点,一个代理节点连接一个任务。
这样,在数据导入数据库的过程中,由于数据没有经过中央协调节点进行传输,所以可以减轻中央协调节点的负载。
图10是本申请实施例提供的访问数据库的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4所述的流程,该装置包括:接收模块1010、获取模块1020和发送模块1030,其中:
接收模块1010,用于接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和所述外部表的***请求,根据所述创建请求创建所述外部表,其中,所述创建请求携带有所述外部表的存储地址,所述***请求携带有所述访问请求携带的待访问数据的标识,具体可以用于实现步骤403的接收功能以及执行步骤403包含的隐含步骤;
获取模块1020,用于向主代理节点提供所述存储地址,从所述主代理节点获取所述数据库的工作节点与代理节点的对应关系,其中,所述数据库的工作节点为所述数据库中可获取到所述待访问数据的工作节点,具体可以用于实现步骤404和步骤407的获取功能以及执行步骤403和步骤407包含的隐含步骤;
发送模块1030,用于向所述数据库的工作节点中每个工作节点发送所述***请求及所述工作节点与代理节点的对应关系,以使每个工作节点根据所述工作节点与代理节点的对应关系分别与对应的代理节点建立第一通信链路,并将执行所述***请求后获取的待访问数据通过所述第一通信链路发送给对应的代理节点,以使代理节点将所述待访问数据存储至所述存储地址,具体可以用于实现步骤407的发送功能以及执行步骤407包含的隐含步骤。
在一种可能的实现方式中,所述接收模块1010,还用于接收所述数据库的工作节点中每个工作节点发送的执行完成通知;
如图11所示,所述装置还包括:删除模块1040,用于删除所述外部表。
在一种可能的实现方式中,所所述发送模块1030,还用于向所述大数据计算引擎发送所述外部表的***完成消息;
所述接收模块1010,还用于接收所述大数据计算引擎发送的所述外部表的删除消息;
所述删除模块1040,用于删除所述外部表。
图12是本申请实施例提供的访问数据库的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4所述的流程,该装置包括:接收模块1210、发送模块1220、获取模块1230、创建模块1240和建立模块1250,其中:
接收模块1210,用于接收数据库的访问请求,其中,所述访问请求携带待访问数据的标识,具体可以用于实现步骤401的接收功能以及执行步骤401包含的隐含步骤;
发送模块1220,用于向所述数据库的中央协调节点发送外部表的创建请求和所述外部表的***请求,其中,所述创建请求携带有所述外部表的存储地址,所述***请求携带有所述待访问数据的标识,具体可以用于实现步骤402的发送功能以及执行步骤402包含的隐含步骤;
获取模块1230,用于从主代理节点获取根据预设的分配规则确定的并行获取所述待访问数据的任务的任务数目以及代理节点的标识,其中,所述数据库的工作节点为所述数据库中可获取到所述待访问数据的工作节点,所述代理节点的标识为与所述数据库的工作节点建立有第一通信链路的代理节点的标识,具体可以用于实现步骤409和步骤410的获取功能以及执行步骤402包含的隐含步骤;
创建模块1240,用于按照所述任务数目,创建获取所述待访问数据的任务,并为每个任务分配代理节点,具体可以用于实现步骤411的创建功能以及执行步骤411包含的隐含步骤;
建立模块1250,还用于建立每个任务与为每个任务分配的代理节点的第二通信链路,具体可以用于实现步骤412的建立功能以及执行步骤412包含的隐含步骤;
所述获取模块1230,还用于每个任务通过所述第二通信链路,从所述第二通信链路连接的代理节点,获取所述待访问数据,具体可以用于实现步骤413的获取功能以及执行步骤413包含的隐含步骤。
在一种可能的实现方式中,所述接收模块1210,还用于接收所述中央协调节点发送的所述外部表的***完成消息;
所述发送模块1220,还用于向所述中央协调节点发送所述外部表的删除消息,所述删除消息用于指示所述中央协调节点删除所述外部表。
图13是本申请实施例提供的访问数据库的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4所述的流程,该装置包括:接收模块1310、确定模块1320和发送模块1330,其中:
接收模块1310,用于接收数据库的中央协调节点提供的存储地址和所述数据库的工作节点的标识,所述存储地址为外部表的存储地址,所述数据库的工作节点为所述数据库中可获取到待访问数据的工作节点,所述外部表用于存储所述待访问数据,具体可以用于实现步骤405的接收功能以及执行步骤405包含的隐含步骤;
确定模块1320,用于根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系,具体可以用于实现步骤406的确定功能以及执行步骤406包含的隐含步骤;
发送模块1330,用于向所述中央协调节点发送所述对应关系,以使所述中央协调节点控制建立所述数据库的工作节点与对应的代理节点的第一通信链路;向所述对应关系中的代理节点发送所述存储地址,具体可以用于实现步骤406的发送功能以及执行步骤406包含的隐含步骤;
所述接收模块1310,还用于接收大数据计算引擎发送的代理节点的获取请求,具体可以用于实现步骤410的接收功能以及执行步骤410包含的隐含步骤;
所述确定模块1320,还用于根据预设的分配原则,确定并行获取所述待访问数据的任务的任务数目,具体可以用于实现步骤410的确定功能以及执行步骤410包含的隐含步骤;
所述发送模块1330,还用于向所述大数据计算引擎发送所述任务数目以及所述数据库的工作节点对应的代理节点的标识,以使所述大数据计算引擎基于所述任务数目,创建任务,根据创建的任务和所述代理节点的标识,控制建立任务与代理节点的第二通信链路,具体可以用于实现步骤410的发送功能以及执行步骤410包含的隐含步骤。
在一种可能的实现方式中,所述主代理节点属于所述对应关系中的代理节点;
所述发送模块1330,还用于:
将从所述第一通信链路获取的所述待访问数据,存储至所述外部表;
通过所述第二通信链路将所述待访问数据传输至所述大数据计算引擎的任务。
在一种可能的实现方式中,所述确定模块1320,还用于:
根据所述数据库的工作节点对应的代理节点、存储的代理节点数目与任务数目的对应关系,确定并行获取所述待访问数据的任务的任务数目;或者,
根据所述数据库的工作节点对应的代理节点上的线程的数目、预设的任务对应的线程数目,确定并行获取所述待访问数据的任务的任务数目。
在一种可能的实现方式中,所述确定模块1320,用于:
按照平均分配方式或者轮询方式,根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系。
图14是本申请实施例提供的访问数据库的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图6所述的流程,该装置包括:接收模块1410、确定模块1420和发送模块1430,其中:
接收模块1410,用于接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和所述外部表的***请求,根据所述创建请求创建所述外部表,其中,所述创建请求携带有所述外部表的表名,所述***请求携带有所述访问请求携带的待访问数据的标识;接收所述大数据计算引擎发送的工作节点的获取请求;
确定模块1420,用于确定所述数据库中可获取到所述待访问数据的工作节点的标识;
发送模块1430,用于向所述大数据计算引擎发送所述工作节点的标识;向所述工作节点的标识所属的工作节点发送所述***请求,以使所述工作节点的标识所属的工作节点将所述待访问数据发送至连接的所述大数据计算引擎的任务。
在一种可能的实现方式中,所述接收模块1410,还用于接收所述数据库的工作节点中每个工作节点发送的执行完成通知,删除所述外部表;
如图15所示,所述装置还包括:删除模块1440,用于删除所述外部表。
在一种可能的实现方式中,所述发送模块1430,还用于向所述大数据计算引擎发送所述外部表的***完成消息;
所述接收模块1410,还用于接收所述大数据计算引擎发送的所述外部表的删除消息;
所述删除模块1440,用于删除所述外部表。
图16是本申请实施例提供的访问数据库的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图6所述的流程,该装置包括:接收模块1610、发送模块1620、创建模块1630、建立模块1640和获取模块1650,其中:
接收模块1610,用于接收数据库的访问请求,其中,所述访问请求携带待访问数据的标识;
发送模块1620,用于向所述数据库的中央协调节点发送外部表的创建请求和所述外部表的***请求,其中,所述创建请求携带有所述外部表的表名,所述外部表***请求携带有所述待访问数据的标识;向所述中央协调节点发送工作节点的获取请求;
所述接收模块1610,还用于接收所述中央协调节点发送的工作节点的标识,其中,所述工作节点的标识为所述数据库中可获取到所述待访问数据的工作节点的标识;
创建模块1630,用于根据所述工作节点的标识,创建获取所述待访问数据的任务,并为每个任务分配工作节点;
建立模块1640,用于建立每个任务与为每个任务分配的工作节点的通信链路;
获取模块1650,用于每个任务通过所述通信链路,从所述通信链路连接的工作节点,获取所述待访问数据。
在一种可能的实现方式中,所述创建模块1630,用于:
根据预设的工作节点数目与任务数目的对应关系、所述工作节点的标识,确定所述工作节点的标识指示的工作节点的数目对应的任务数目;
创建所述任务数目个获取所述待访问数据的任务。
在一种可能的实现方式中,所述接收模块1610,还用于接收所述中央协调节点发送的所述外部表的***完成消息;
所述发送模块1620,还用于向所述中央协调节点发送所述外部表的删除消息,所述删除消息用于指示所述中央协调节点删除所述外部表。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例中还提供了一种访问数据库的计算设备。图17示例性的提供了计算设备1700的一种可能的架构图。
计算设备1700包括存储器1701、处理器1702、通信接口1703以及总线1704。其中,存储器1701、处理器1702、通信接口1703通过总线1704实现彼此之间的通信连接。
存储器1701可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1701可以存储程序,当存储器1701中存储的程序被处理器1702执行时,处理器1702和通信接口1703用于执行访问数据库的方法。存储器1701还可以存储数据集合,例如:存储器1701中的一部分存储资源被划分成一个数据集存储模块,用于存储执行访问数据库的方法所需的数据集。
处理器1702可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路。
处理器1702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的访问数据库的装置的部分或全部功能可以通过处理器1702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1702还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请上述实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1701,处理器1702读取存储器1701中的信息,结合其硬件完成本申请实施例的访问数据库的装置的部分功能。
通信接口1703使用例如但不限于收发器一类的收发模块,来实现计算设备1700与其他设备或通信网络之间的通信。例如,可以通过通信接口1703获取数据集。
总线1704可包括在计算设备1700各个部件(例如,存储器1701、处理器1702、通信接口1703)之间传送信息的通路。
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。
Claims (26)
1.一种访问数据库的方法,其特征在于,应用于数据库的中央协调节点,所述方法包括:
接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和所述外部表的***请求,根据所述创建请求创建所述外部表,其中,所述创建请求携带有所述外部表的存储地址,所述***请求携带有所述访问请求携带的待访问数据的标识;
向主代理节点提供所述存储地址,从所述主代理节点获取所述数据库的工作节点与代理节点的对应关系,其中,所述数据库的工作节点为所述数据库中可获取到所述待访问数据的工作节点;
向所述数据库的工作节点中每个工作节点发送所述***请求及所述工作节点与代理节点的对应关系,以使每个工作节点根据所述工作节点与代理节点的对应关系分别与对应的代理节点建立第一通信链路,并将执行所述***请求后获取的待访问数据通过所述第一通信链路发送给对应的代理节点,以使代理节点将所述待访问数据存储至所述存储地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述数据库的工作节点中每个工作节点发送的执行完成通知,删除所述外部表。
3.根据权利要求2所述的方法,其特征在于,所述删除所述外部表,包括:
向所述大数据计算引擎发送所述外部表的***完成消息;
接收所述大数据计算引擎发送的所述外部表的删除消息,删除所述外部表。
4.一种访问数据库的方法,其特征在于,应用于大数据计算引擎,所述方法包括:
接收数据库的访问请求,其中,所述访问请求携带待访问数据的标识;
向所述数据库的中央协调节点发送外部表的创建请求和所述外部表的***请求,其中,所述创建请求携带有所述外部表的存储地址,所述***请求携带有所述待访问数据的标识;
从主代理节点获取根据预设的分配规则确定的并行获取所述待访问数据的任务的任务数目以及代理节点的标识,其中,所述数据库的工作节点为所述数据库中可获取到所述待访问数据的工作节点,所述代理节点的标识为与所述数据库的工作节点建立有第一通信链路的代理节点的标识;
按照所述任务数目,创建获取所述待访问数据的任务,并为每个任务分配代理节点;
建立每个任务与为每个任务分配的代理节点的第二通信链路;
每个任务通过所述第二通信链路,从所述第二通信链路连接的代理节点,获取所述待访问数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述中央协调节点发送的所述外部表的***完成消息;
向所述中央协调节点发送所述外部表的删除消息,所述删除消息用于指示所述中央协调节点删除所述外部表。
6.一种访问数据库的方法,其特征在于,应用于主代理节点,所述主代理节点用于管理多个代理节点,所述方法包括:
接收数据库的中央协调节点提供的存储地址和所述数据库的工作节点的标识,所述存储地址为外部表的存储地址,所述数据库的工作节点为所述数据库中可获取到待访问数据的工作节点,所述外部表用于存储所述待访问数据;
根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系;
向所述中央协调节点发送所述对应关系,以使所述中央协调节点控制建立所述数据库的工作节点与对应的代理节点的第一通信链路;
向所述对应关系中的代理节点发送所述存储地址;
接收大数据计算引擎发送的代理节点的获取请求;
根据预设的分配原则,确定并行获取所述待访问数据的任务的任务数目;
向所述大数据计算引擎发送所述任务数目以及所述数据库的工作节点对应的代理节点的标识,以使所述大数据计算引擎基于所述任务数目,创建任务,根据创建的任务和所述代理节点的标识,控制建立任务与代理节点的第二通信链路。
7.根据权利要求6所述的方法,其特征在于,所述主代理节点属于所述对应关系中的代理节点;
所述方法还包括:
将从所述第一通信链路获取的所述待访问数据,存储至所述外部表;
通过所述第二通信链路将所述待访问数据传输至所述大数据计算引擎的任务。
8.根据权利要求6或7所述的方法,其特征在于,所述根据预设的分配原则,确定并行获取所述待访问数据的任务的任务数目,包括:
根据所述数据库的工作节点对应的代理节点、存储的代理节点数目与任务数目的对应关系,确定并行获取所述待访问数据的任务的任务数目;或者,
根据所述数据库的工作节点对应的代理节点上的线程的数目、预设的任务对应的线程数目,确定并行获取所述待访问数据的任务的任务数目。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系,包括:
按照平均分配方式或者轮询方式,根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系。
10.一种访问数据库的方法,其特征在于,应用于数据库的中央协调节点,所述方法包括:
接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和所述外部表的***请求,根据所述创建请求创建所述外部表,其中,所述创建请求携带有所述外部表的表名,所述***请求携带有所述访问请求携带的待访问数据的标识;
接收所述大数据计算引擎发送的工作节点的获取请求;
确定所述数据库中可获取到所述待访问数据的工作节点的标识;
向所述大数据计算引擎发送所述工作节点的标识;
向所述工作节点的标识所属的工作节点发送所述***请求,以使所述工作节点的标识所属的工作节点将所述待访问数据发送至连接的所述大数据计算引擎的任务。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
接收所述数据库的工作节点中每个工作节点发送的执行完成通知,删除所述外部表。
12.根据权利要求11所述的方法,其特征在于,所述删除所述外部表,包括:
向所述大数据计算引擎发送所述外部表的***完成消息;
接收所述大数据计算引擎发送的所述外部表的删除消息,删除所述外部表。
13.一种访问数据库的方法,其特征在于,应用于大数据计算引擎,所述方法包括:
接收数据库的访问请求,其中,所述访问请求携带待访问数据的标识;
向所述数据库的中央协调节点发送外部表的创建请求和所述外部表的***请求,其中,所述创建请求携带有所述外部表的表名,所述外部表***请求携带有所述待访问数据的标识;
向所述中央协调节点发送工作节点的获取请求;
接收所述中央协调节点发送的工作节点的标识,其中,所述工作节点的标识为所述数据库中可获取到所述待访问数据的工作节点的标识;
根据所述工作节点的标识,创建获取所述待访问数据的任务,并为每个任务分配工作节点;
建立每个任务与为每个任务分配的工作节点的通信链路;
每个任务通过所述通信链路,从所述通信链路连接的工作节点,获取所述待访问数据。
14.根据权利要求13所述的方法,其特征在于,所述根据所述工作节点的标识,创建获取所述待访问数据的任务,包括:
根据预设的工作节点数目与任务数目的对应关系、所述工作节点的标识,确定所述工作节点的标识指示的工作节点的数目对应的任务数目;
创建所述任务数目个获取所述待访问数据的任务。
15.根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
接收所述中央协调节点发送的所述外部表的***完成消息;
向所述中央协调节点发送所述外部表的删除消息,所述删除消息用于指示所述中央协调节点删除所述外部表。
16.一种访问数据库的装置,其特征在于,应用于数据库的中央协调节点,所述装置包括:
接收模块,用于接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和所述外部表的***请求,根据所述创建请求创建所述外部表,其中,所述创建请求携带有所述外部表的存储地址,所述***请求携带有所述访问请求携带的待访问数据的标识;
获取模块,用于向主代理节点提供所述存储地址,从所述主代理节点获取所述数据库的工作节点与代理节点的对应关系,其中,所述数据库的工作节点为所述数据库中可获取到所述待访问数据的工作节点;
发送模块,用于向所述数据库的工作节点中每个工作节点发送所述***请求及所述工作节点与代理节点的对应关系,以使每个工作节点根据所述工作节点与代理节点的对应关系分别与对应的代理节点建立第一通信链路,并将执行所述***请求后获取的待访问数据通过所述第一通信链路发送给对应的代理节点,以使代理节点将所述待访问数据存储至所述存储地址。
17.根据权利要求16所述的装置,其特征在于,所述接收模块,还用于接收所述数据库的工作节点中每个工作节点发送的执行完成通知;
所述装置还包括:删除模块,用于删除所述外部表。
18.根据权利要求17所述的装置,其特征在于,所述发送模块,还用于向所述大数据计算引擎发送所述外部表的***完成消息;
所述接收模块,还用于接收所述大数据计算引擎发送的所述外部表的删除消息;
所述删除模块,用于删除所述外部表。
19.一种访问数据库的装置,其特征在于,应用于大数据计算引擎,所述装置包括:
接收模块,用于接收数据库的访问请求,其中,所述访问请求携带待访问数据的标识;
发送模块,用于向所述数据库的中央协调节点发送外部表的创建请求和所述外部表的***请求,其中,所述创建请求携带有所述外部表的存储地址,所述***请求携带有所述待访问数据的标识;
获取模块,用于从主代理节点获取根据预设的分配规则确定的并行获取所述待访问数据的任务的任务数目以及代理节点的标识,其中,所述数据库的工作节点为所述数据库中可获取到所述待访问数据的工作节点,所述代理节点的标识为与所述数据库的工作节点建立有第一通信链路的代理节点的标识;
创建模块,用于按照所述任务数目,创建获取所述待访问数据的任务,并为每个任务分配代理节点;
建立模块,还用于建立每个任务与为每个任务分配的代理节点的第二通信链路;
所述获取模块,还用于每个任务通过所述第二通信链路,从所述第二通信链路连接的代理节点,获取所述待访问数据。
20.根据权利要求19所述的装置,其特征在于,所述接收模块,还用于接收所述中央协调节点发送的所述外部表的***完成消息;
所述发送模块,还用于向所述中央协调节点发送所述外部表的删除消息,所述删除消息用于指示所述中央协调节点删除所述外部表。
21.一种访问数据库的装置,其特征在于,应用于主代理节点,所述主代理节点用于管理多个代理节点,所述装置包括:
接收模块,用于接收数据库的中央协调节点提供的存储地址和所述数据库的工作节点的标识,所述存储地址为外部表的存储地址,所述数据库的工作节点为所述数据库中可获取到待访问数据的工作节点,所述外部表用于存储所述待访问数据;
确定模块,用于根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系;
发送模块,用于向所述中央协调节点发送所述对应关系,以使所述中央协调节点控制建立所述数据库的工作节点与对应的代理节点的第一通信链路;向所述对应关系中的代理节点发送所述存储地址;
所述接收模块,还用于接收大数据计算引擎发送的代理节点的获取请求;
所述确定模块,还用于根据预设的分配原则,确定并行获取所述待访问数据的任务的任务数目;
所述发送模块,还用于向所述大数据计算引擎发送所述任务数目以及所述数据库的工作节点对应的代理节点的标识,以使所述大数据计算引擎基于所述任务数目,创建任务,根据创建的任务和所述代理节点的标识,控制建立任务与代理节点的第二通信链路。
22.根据权利要求21所述的装置,其特征在于,所述主代理节点属于所述对应关系中的代理节点;
所述发送模块,还用于:
将从所述第一通信链路获取的所述待访问数据,存储至所述外部表;
通过所述第二通信链路将所述待访问数据传输至所述大数据计算引擎的任务。
23.根据权利要求21或22所述的装置,其特征在于,所述确定模块,还用于:
根据所述数据库的工作节点对应的代理节点、存储的代理节点数目与任务数目的对应关系,确定并行获取所述待访问数据的任务的任务数目;或者,
根据所述数据库的工作节点对应的代理节点上的线程的数目、预设的任务对应的线程数目,确定并行获取所述待访问数据的任务的任务数目。
24.根据权利要求21至23任一项所述的装置,其特征在于,所述确定模块,用于:
按照平均分配方式或者轮询方式,根据所述数据库的工作节点的标识,确定所述数据库的工作节点与代理节点的对应关系。
25.一种访问数据库的装置,其特征在于,应用于数据库的中央协调节点,所述装置包括:
接收模块,用于接收大数据计算引擎在获取到数据库的访问请求时发送的外部表的创建请求和所述外部表的***请求,根据所述创建请求创建所述外部表,其中,所述创建请求携带有所述外部表的表名,所述***请求携带有所述访问请求携带的待访问数据的标识;接收所述大数据计算引擎发送的工作节点的获取请求;
确定模块,用于确定所述数据库中可获取到所述待访问数据的工作节点的标识;
发送模块,用于向所述大数据计算引擎发送所述工作节点的标识;向所述工作节点的标识所属的工作节点发送所述***请求,以使所述工作节点的标识所属的工作节点将所述待访问数据发送至连接的所述大数据计算引擎的任务。
26.一种访问数据库的装置,其特征在于,应用于大数据计算引擎,所述装置包括:
接收模块,用于接收数据库的访问请求,其中,所述访问请求携带待访问数据的标识;
发送模块,用于向所述数据库的中央协调节点发送外部表的创建请求和所述外部表的***请求,其中,所述创建请求携带有所述外部表的表名,所述外部表***请求携带有所述待访问数据的标识;向所述中央协调节点发送工作节点的获取请求;
所述接收模块,还用于接收所述中央协调节点发送的工作节点的标识,其中,所述工作节点的标识为所述数据库中可获取到所述待访问数据的工作节点的标识;
创建模块,用于根据所述工作节点的标识,创建获取所述待访问数据的任务,并为每个任务分配工作节点;
建立模块,用于建立每个任务与为每个任务分配的工作节点的通信链路;
获取模块,用于每个任务通过所述通信链路,从所述通信链路连接的工作节点,获取所述待访问数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401581.9A CN113127477A (zh) | 2019-12-30 | 2019-12-30 | 访问数据库的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401581.9A CN113127477A (zh) | 2019-12-30 | 2019-12-30 | 访问数据库的方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127477A true CN113127477A (zh) | 2021-07-16 |
Family
ID=76769015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911401581.9A Pending CN113127477A (zh) | 2019-12-30 | 2019-12-30 | 访问数据库的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127477A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656484A (zh) * | 2021-08-31 | 2021-11-16 | 平安医疗健康管理股份有限公司 | 数据库的访问***及方法、装置、电子设备、存储介质 |
CN114374644A (zh) * | 2021-12-22 | 2022-04-19 | 烟台东方瑞创达电子科技有限公司 | 基于基础设施逻辑架构的工业互联网标识解析方法及*** |
CN115514726A (zh) * | 2022-09-21 | 2022-12-23 | 浪潮云信息技术股份公司 | 一种基于nats的云边场景的文件同步*** |
-
2019
- 2019-12-30 CN CN201911401581.9A patent/CN113127477A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656484A (zh) * | 2021-08-31 | 2021-11-16 | 平安医疗健康管理股份有限公司 | 数据库的访问***及方法、装置、电子设备、存储介质 |
CN114374644A (zh) * | 2021-12-22 | 2022-04-19 | 烟台东方瑞创达电子科技有限公司 | 基于基础设施逻辑架构的工业互联网标识解析方法及*** |
CN114374644B (zh) * | 2021-12-22 | 2023-09-19 | 烟台东方瑞创达电子科技有限公司 | 基于基础设施逻辑架构的工业互联网标识解析方法及*** |
CN115514726A (zh) * | 2022-09-21 | 2022-12-23 | 浪潮云信息技术股份公司 | 一种基于nats的云边场景的文件同步*** |
CN115514726B (zh) * | 2022-09-21 | 2024-02-20 | 浪潮云信息技术股份公司 | 一种基于nats的云边场景的文件同步*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052675B (zh) | 日志管理方法、***及计算机可读存储介质 | |
CN110990420B (zh) | 数据查询方法、装置 | |
CN113127477A (zh) | 访问数据库的方法、装置、计算机设备和存储介质 | |
CN105472045A (zh) | 数据库迁移的方法和装置 | |
CN113515545B (zh) | 数据查询方法、装置、***、电子设备以及存储介质 | |
CN108363741B (zh) | 大数据统一接口方法、装置、设备及存储介质 | |
US10496645B1 (en) | System and method for analysis of a database proxy | |
CN109151025B (zh) | 基于url的负载均衡方法、装置、计算机存储介质及设备 | |
US20190228009A1 (en) | Information processing system and information processing method | |
US20200242118A1 (en) | Managing persistent database result sets | |
US20120224482A1 (en) | Credit feedback system for parallel data flow control | |
CN114356921A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN111930770A (zh) | 数据查询方法、装置及电子设备 | |
CN112685499A (zh) | 一种工作业务流的流程数据同步方法、装置及设备 | |
CN112364052A (zh) | 异构数据管理方法、装置、设备和计算机可读存储介质 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN107493309B (zh) | 一种分布式***中的文件写入方法及装置 | |
CN103905512A (zh) | 一种数据处理方法和设备 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN110347654B (zh) | 一种上线集群特性的方法和装置 | |
CN116244383A (zh) | 基于bom中台的bom同步处理方法、设备及介质 | |
CN110928895A (zh) | 一种数据查询、数据表建立方法、装置及设备 | |
CN115168358A (zh) | 数据库访问方法、装置、电子设备及存储介质 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
CN110995890B (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 |