分布式环境下的远程连接系统及方法与流程
未命名
09-03
阅读:86
评论:0

背景技术:
::2.随着社会的发展,数据正在爆发式增长。随之需要更有效、更灵活的数据服务、信息处理以及数据管理等功能。3.根据这些要求数据库管理系统(dbms)应运而生。收集数据的集合称为数据库(database:db),管理这些数据库的系统称为dbms。通过dbms可以将组织所需的数据整合到数据库中进行存储和管理,并且可以解决现有的文件系统中存在的因数据重复引起的问题。4.用于在dbms中搜索数据的方法是连接(join)。连接是指连接两个以上的表从而搜索数据的方法,通常使用两个以上的行的共同值进行连接。5.在现有的连接方法中,不是远程连接(remotejoin)条件的情况下,将连接所需表的所有数据导入本地(local)并执行连接。例如,即使当连接条件由分片键(shardkey)组成时,在分片(sharding)策略不同的情况下,各表连接条件对应的数据被分配到不同的节点中。因此在现有方式中,将连接所需表的所有数据导入本地进行连接。6.如果将连接所需表的所有数据导入本地并进行连接,则无法使用表上生成的索引,并且存在用于从所有节点将连接所需的数据导入本地的网络成本以及用于在本地处理所导入数据的资源使用增加的问题。7.【现有技术文献】8.【专利文献】9.(韩国专利文献0001)公开特许公报第10-2021-0053831号(2021.05.12.公开)技术实现要素:10.要解决的技术课题11.为了解决上述问题,本发明要实现的技术课题是提供一种分布式环境下的远程连接系统及方法,以在分布式环境中即使连接条件为非远程连接条件时,也能够在执行远程连接后将连接结果导入至本地。12.本发明的解决课题不限于以上所提到的内容,本领域的普通技术人员可通过以下的记载内容可以明确理解未提及的其他解决课题。13.技术方案14.为了解决上述问题,根据本发明的实施例所提供的一种分布式环境下的远程连接系统,包括:多个数据库服务器,该多个数据库服务器包含第一数据库服务器,以用于当用户输入用户查询(query)时生成用于远程连接的执行计划,多个第二数据库服务器,以用于根据第一数据库服务器的执行计划执行远程连接;数据收集单元,以用于从多个数据库服务器收集数据;以及数据分配单元,以用于生成用于远程连接的临时表,并将数据收集单元收集的数据存储在所生成的临时表;其中,数据收集单元向多个数据库服务器发送与临时表的连接执行有关的集群查询(clusterquery),多个数据库服务器根据集群查询各自执行连接,而后向数据收集单元发送连接执行结果。15.优选地,第一数据库服务器和第二数据库服务器可以将数据分别分配并存储到适用了第一分配策略的表和适用了第二分配策略的表中。16.并且优选地,数据收集单元可以向多个第二数据库服务器分别发送用于收集适用了第一分配策略的表的数据的集群查询,可以从第一数据库服务器接收执行计划的执行结果,可以从第二数据库服务器接收对集群查询的执行结果。17.并且优选地,数据分配单元可以在多个数据库服务器上分别生成临时表,并根据分配策略将所收集的数据可以分配到多个数据库服务器各自的临时表。18.并且优选地,数据分配单元根据第二分配策略可以将所收集的数据分配到临时表。19.另外,根据本发明的其他实施例所提供的一种分布式环境下的远程连接方法,其中分布式环境包括多个数据库服务器,所述方法包括如下步骤:多个数据库服务器中的一个从用户接收用户查询;在接收到用户查询的数据库服务器中,生成用于远程连接的执行计划;从多个数据库服务器收集数据;生成用于远程连接的临时表;将收集的数据存储在所生成的临时表;向多个数据库服务器发送与临时表的连接执行相关的集群查询;多个数据库服务器根据集群查询各自执行连接;以及从多个数据库服务器接收连接执行的结果。20.优选地,第一数据库服务器和第二数据库服务器可以将数据分别分配并存储到适用了第一分配策略的表和适用了第二分配策略的表中。21.并且优选地,收集数据的步骤可以包括:向多个数据库服务器中未接收用户查询的各数据库服务器发送用于收集适用了第一分配策略的表的数据的集群查询;从接收到用户查询的数据库服务器接收执行计划的执行结果;以及从未接收用户查询的各数据库服务器接收对集群查询的执行结果。22.并且优选地,在生成临时表的步骤中,可以在多个数据库服务器上分别生成临时表。23.并且优选地,在向临时表进行存储的步骤中,可以根据第二分配策略将所收集的数据分配到临时表。24.有益效果25.根据本发明,通过用于生成临时表的执行节点,即使在非远程连接条件的情况下,也可以在各节点执行连接,从而可以提供能够分布式执行连接的分布式环境中的远程连接系统及方法。26.另外,在参与连接的表中,除了临时表之外,其他表还可以使用索引,并且由于分布式执行而具有资源使用也得以分布的效果。特别是分布式执行的连接的结果大量减少,因此具有降低网络成本的效果。27.本发明的效果不限于以上所述的内容,本领域的普通技术人员通过以下的记载可以明确理解未提及的其他效果。附图说明28.附图用于向本领域的普通技术人员更加详细地描述本发明的内容,本发明的技术思想并不限定于此。29.图1是根据本发明的优选实施例所提供的分布式环境中的远程连接系统的网络结构图。30.图2是示出图1所示多个数据库服务器的结构的图。31.图3a至图3d是用于说明根据本发明的优选实施例所提供的分布式环境中的连接系统之操作的图。32.图4是根据本发明的优选实施例所提供的分布式环境中的远程连接系统的操作方法的流程图。33.【附图标记说明】34.100:数据收集单元35.110:数据分配单元36.200:多个数据库服务器37.210:第一数据库服务器38.220、230:第二数据库服务器具体实施方式39.通过与附图相关的以下优选实施例可容易理解以上本发明的目的、其他目的、特征及优点。但是,本发明不限于此处说明的实施例,也可以以其他形式具体实施。相反,此处介绍的实施例用于使公开的内容变得清晰和完整,并使本发明的思想充分地传达到本领域的普通技术人员。40.本说明书中,当提到某个构成要素位于另一个构成要素上时,意味着其可以直接安装在其他构成要素上,或者可以在它们之间插入第三构成要素。另外,附图中构成要素的厚度被夸大以有效地描述技术内容。41.本说明书中,第一、第二等术语用于描述构成要素时,此类术语并非限定这些构成要素。此类术语只是用于区分某个构成要素与其他构成要素。在此描述和举例说明的实施例还包括其互补的实施例。42.另外,当提到第一元件(或构成要素)在第二元件(或构成要素)上(on)操作或执行时,应当理解为第一元件(或构成要素)在操作或执行第二元件(或构成要素)的环境中操作或执行,或者通过直接或间接地与第二元件(或构成要素)相互作用来操作或执行。43.如果提及某个元件、构成要素、设备或系统包含由程序或软件组成的构成要素,则即使没有明确提及,也应当理解为该元件、构成要素、设备或系统包含该程序或软件运行或工作所需的硬件(例如存储器、cpu等)或者其他程序或软件(例如驱动操作系统或硬件所需的驱动程序等)。44.另外,如果在实现某个元件(或构成要素)时没有做特别说明,则应当理解为该元件(或构成要素)可以以软件、硬件或软件及硬件的任何形式实现。45.另外,本说明书使用的术语是为了说明实施例,并不构成对本发明的限制。在本说明书中,除非句子中有明确提及,否则单数型包括复数型。说明书中所使用的“包括(comprises)”和/或“包括的(comprising)”意指所提及的构成要素不排除存在或添加一个或多个其他构成要素。46.图1是根据本发明的优选实施例所提供的分布式环境中的远程连接系统的网络结构图,图2是示出图1所示多个数据库服务器的结构的图。47.如图1所示,根据本发明的优选实施例提供的分布式环境中的远程连接系统包括多个数据库服务器200、数据收集单元100和数据分配单元110。分布式环境中的远程连接系统可以包含其他配置,但这里仅举例说明远程连接所需的配置。48.多个数据库可以以集群(cluster)为单位进行捆绑,以集群为单位捆绑的多个数据库可以形成各自的数据库服务器。在此,集群相当于像表(table)或索引(index)一样具有存储空间的一个对象(object),但属于表的上位概念。另外,在由集群生成的对象内生成表,并且不能将数据输入到没有表的集群中。49.参照图2,查看多个数据库服务器200。在本实施例中,举例说明“3by1”集群时的多个数据库服务器200的结构,每个数据库服务器的数据库称为g1、g2和g3。50.在此以如下情形为前提:各数据库服务器210、220、230进行哈希分片(hashsharding),分片键(shardingkey)为“sk”,定义要分割的哈希分片的个数(hashshardcount)为3。51.多个数据库服务器210、220、230各自分别生成名为“h1”的表。如果输入的数据是“101、102、103、201、202、203、301、302、303”,则如图所示,将数据分别分配并存储在各数据库服务器210、220、230内的“h1”表中。每个数据库服务器210、220、230都可以以节点的概念运行。此时,可以根据预设的分配策略将数据分配和存储在表中。52.多个数据库服务器200中的一个可以接收用户查询(userquery)。以下,在多个数据库服务器200中,将接收用户查询的一个服务器称为第一数据库服务器,除第一数据库服务器外的其余数据库服务器称为第二数据库服务器。在本实施例中,将多个数据库服务器200区分为第一数据库服务器和第二数据库服务器,只是为了区分接收用户查询输入的数据库服务器和没有接收用户查询的数据库服务器,它们都可以执行相同的操作。即,多个数据库服务器200中的任何一个都可以接收用户查询输入。53.数据收集单元100是执行查询的节点,在集群中从本地或远程收集数据。为此,数据收集单元100可以通过向构成收集对象的节点发送集群查询(clusterquery)来收集相应数据。54.即,数据收集单元100从多个数据库服务器200收集数据。更具体地,数据收集单元100,在多个数据库服务器200中,向未接收用户查询的远程端发送用于收集适用了第一分配策略的表之数据的集群查询,并从接收了用户查询的节点接收执行计划的执行结果,以及从远程端接收集群查询的执行结果。55.数据分配单元110也与数据收集单元100相同,是执行查询的节点。如图所示,数据分配单元110可以作为包含在数据收集单元100下位的概念进行操作。但是,应当明白数据分配单元110并不一定以包含在数据收集单元100的下位的概念进行操作。例如,数据分配单元110和数据收集单元100还能够以同等概念进行操作。56.数据分配单元110的作用是为使数据收集单元100执行具有质量的有效查询,在相应节点生成用于远程连接的临时表,并在该临时表上分配数据。数据分配单元110在向临时表分配数据时,可以根据第二分配策略分配数据。57.在本实施例中,以多个数据库服务器200使用第一分配策略和第二分配策略为例进行了说明。但是,使用一个分配政策时也可以同样适用。58.数据收集单元100的操作是在现有本地连接方式中所使用的概念,而数据分配单元110的操作是在现有本地连接方式中未使用过的概念。关于这些数据收集单元100和数据分配单元110的操作,将参照后述的图3a至图3d进行详细说明。59.图3a至图3d是用于说明根据本发明的优选实施例所提供的分布式环境中的连接系统之操作的图。60.在本实施例,也如前述实施例中所描述的那样,在“3by1”集群时的多个数据库服务器200的结构中,描述本发明分布式环境的连接系统的操作。61.为了便于说明,将包括g1的数据库服务器称为第一数据库服务器210,分别包括g2和g3的数据库服务器称为第二数据库服务器220、230。即,第一数据库服务器210相当于接收用户查询a的数据库服务器。62.第一数据库服务器210和第二数据库服务器220、230分别生成有名为“hs3”和“hs6”的表。hs3表和hs6表是设置了不同的数据分配策略的表,所述数据分配策略是有关如何向g1、g2和g3分配并存储数据的策略,hs3表将所要分割的哈希分片的数量指定为3个,hs6表将所要分割的哈希分片的数量指定为6个。另外,每张表都包含分别命名为“sk”和“nk”的列。63.以表中数据存储状态为例,按不同的分配策略,“303”的数据根据hs3策略存储在g1中,根据hs6策略存储在g2中。64.在第一数据库服务器210,当输入用户查询a时,执行所输入的用户查询a。在第一数据库服务器210中为了执行用户查询a,生成用于执行用户查询a的执行计划b,在图3a示出了该执行计划b。65.如图所示,用户查询a被输入到第一数据库服务器210,并且第一数据库服务器210生成用于用户查询a的执行计划b。执行计划b中的块代表执行节点。执行节点对应于通过执行查询以处理数据的执行计划的各执行单位。在执行计划b中,执行节点从图上的下位开始执行。66.由于每个表的分配策略不同,用于比较“hs3.sk=hs6.sk”条件的数据配置在不同的节点中。例如,hs3.sk的303数据配置在g1中,而hs6.sk的303数据配置在g2中。因此,为了比较“hs3.sk=hs6.sk”的条件,可以生成将hs3.sk的数据按照hs6的分配策略发送到各节点从而执行远程连接的执行计划b。67.图3b示出了图3a的执行计划b中与“数据收集单元操作(planbasedcluster)”执行节点相对应的操作。68.数据收集单元100向第二数据库服务器220、230发送用于向本地导入(或,向本地同步)hs3表数据的集群查询c。更具体地,数据收集单元100将根据基于集群的执行计划向本地导入hs3表数据的集群查询c发送到第二数据库服务器220、230,从而可以收集数据。对此用实线箭头做了标记。69.之后,数据收集单元100,从第一数据库服务器210接收对用于用户查询的执行计划的执行结果,并从第二数据库服务器220、230接收对集群查询c的执行结果。对此用虚线箭头做了标记。70.图3c示出了图3a的执行计划b中与“数据分配单元操作”执行节点相对应的操作。71.数据分配单元110向多个数据库服务器200的每一个分别发送集群查询d,该集群查询d用于生成临时表,该临时表用于向执行远程连接的节点存储参与连接的表的数据。对此用实线箭头做了标记。由此在多个数据库服务器200的每一个都生成被命名为“session_schema._$ni_5”的临时表。72.在多个数据库服务器200分别生成临时表后,数据分配单元110根据hs6分配策略将之前导入到本地的数据加载(load)到相应节点的临时表中。对此用虚线箭头做了标记。向临时表加载数据的过程执行完毕,各节点便完成执行连接所需的数据构建。73.图3d示出了图3a的执行计划b中与“数据收集单元操作(singlecluster)”执行节点相对应的操作。74.数据收集单元100向执行远程连接的节点,即,多个数据库服务器200发送与临时表的连接执行相关的集群查询e。对此用实线箭头做了标记。75.接收到与临时表的连接执行相关的集群查询e的多个数据库服务器200各自分别执行临时表“session_schema._$ni_5”与hs6表的连接。此时,多个数据库服务器200各自分别根据相同的执行计划执行连接。76.之后,数据收集单元100从多个数据库服务器200接收对集群查询e的执行结果。对此用虚线箭头做了标记。77.图4是根据本发明的优选实施例所提供的分布式环境中的远程连接系统的操作方法的流程图。78.多个数据库服务器200中的一个从用户接收用户查询(s310)。多个数据库服务器200中的第一数据库服务器210可以接收用户查询。79.第一数据库服务器210根据用户输入的用户查询生成用于远程连接的执行计划(s320)。用于远程连接的执行计划与图3a中说明的内容相同。80.数据收集单元100从多个数据库服务器200收集数据(s330)。更具体地,数据收集单元100向未接收用户查询的第二数据库服务器220、230发送集群查询,该集群查询用于收集适用了第一分配策略的表的数据。81.数据分配单元110生成用于远程连接的临时表(s340)。由此在多个数据库服务器200,即,第一数据库服务器210和第二数据库服务器220、230上分别生成临时表。82.数据分配单元110,在生成临时表后,将根据数据收集单元100的操作所收集的数据按照预定的分配策略分配并储存到临时表中(s350)。83.在临时表中完成数据存储后,数据收集单元100向多个数据库服务器200发送与临时表的连接执行相关的集群查询(s360)。84.从数据收集单元100接收到与临时表的连接执行相关的集群查询的多个数据库服务器200分别执行连接(s370),并将连接执行结果发送到数据收集单元100(s380)。85.通过这种操作,可以在多个数据库服务器200即各节点上能够执行连接。即,数据分配单元110生成临时表,并且各节点通过该临时表执行连接,从而可以分散执行连接,因此具有并行处理连接的效果。86.本发明所属领域的普通技术人员可以理解,本发明在不改变其技术思想或必要特征的情况下可以以其他具体形式实施。因此必须理解以上描述的实施例在所有方面都是示例性的,而非限定性的。本发明的范围由权利要求书所确定,而非由上述详细的说明所确定,权利要求书的含义及范围以及从其等效概念导出的所有变更或变形的形态应被解释为包含在本发明的范围内。当前第1页12当前第1页12
技术特征:
1.一种分布式环境下的远程连接系统,包括:多个数据库服务器,该多个数据库服务器包含:第一数据库服务器,以用于当用户输入用户查询时生成用于远程连接的执行计划;多个第二数据库服务器,以用于根据所述第一数据库服务器的所述执行计划执行远程连接;数据收集单元,以用于从所述多个数据库服务器收集数据;以及数据分配单元,以用于生成用于所述远程连接的临时表,并将所述数据收集单元收集的数据存储在所生成的所述临时表;其中,所述数据收集单元向所述多个数据库服务器发送与所述临时表的连接执行有关的集群查询,所述多个数据库服务器根据所述集群查询各自执行连接,而后向所述数据收集单元发送连接执行结果。2.如权利要求1所述的分布式环境下的远程连接系统,其特征在于,所述第一数据库服务器和所述第二数据库服务器将数据分别分配并存储到适用了第一分配策略的表和适用了第二分配策略的表中。3.如权利要求2所述的分布式环境下的远程连接系统,其特征在于,所述数据收集单元向所述多个第二数据库服务器分别发送用于收集适用了所述第一分配策略的表的数据的集群查询,从所述第一数据库服务器接收所述执行计划的执行结果,从所述第二数据库服务器接收对所述集群查询的执行结果。4.如权利要求2所述的分布式环境下的远程连接系统,其特征在于,所述数据分配单元在所述多个数据库服务器上分别生成临时表,并根据分配策略将所收集的数据分配到所述多个数据库服务器各自的临时表。5.如权利要求4所述的分布式环境下的远程连接系统,其特征在于,所述数据分配单元根据所述第二分配策略将所收集的数据分配到所述临时表。6.一种分布式环境下的远程连接方法,其中分布式环境包括多个数据库服务器,所述方法包括如下步骤:所述多个数据库服务器中的一个从用户接收用户查询;在接收到所述用户查询的数据库服务器中,生成用于远程连接的执行计划;从所述多个数据库服务器收集数据;生成用于所述远程连接的临时表;将收集的数据存储在所生成的所述临时表;向所述多个数据库服务器发送与所述临时表的连接执行相关的集群查询;所述多个数据库服务器根据所述集群查询各自执行连接;以及从所述多个数据库服务器接收连接执行的结果。7.如权利要求6所述的分布式环境下的远程连接方法,其特征在于,所述第一数据库服务器和所述第二数据库服务器将数据分别分配并存储到适用了第一分配策略的表和适用了第二分配策略的表中。8.如权利要求7所述的分布式环境下的远程连接方法,其特征在于,所述收集数据的步骤包括:向所述多个数据库服务器中未接收所述用户查询的各数据库服务器发送用于收集适
用了所述第一分配策略的表的数据的集群查询;从接收到所述用户查询的数据库服务器接收所述执行计划的执行结果;以及从未接收所述用户查询的各数据库服务器接收对所述集群查询的执行结果。9.如权利要求7所述的分布式环境下的远程连接方法,其特征在于,在生成所述临时表的步骤中,于所述多个数据库服务器上分别生成所述临时表。10.如权利要求9所述的分布式环境下的远程连接方法,其特征在于,在向所述临时表进行存储的步骤中,根据所述第二分配策略将所收集的数据分配到所述临时表。
技术总结
本发明揭示了分布式环境下的远程连接系统及方法。所述系统,包括:多个数据库服务器,该多个数据库服务器包含第一数据库服务器,以用于当用户输入用户查询时生成用于远程连接的执行计划,多个第二数据库服务器,以用于根据第一数据库服务器的执行计划执行远程连接;数据收集单元,以用于从多个数据库服务器收集数据;以及数据分配单元,以用于生成用于远程连接的临时表,并将数据收集单元收集的数据存储在所生成的临时表;其中,数据收集单元向多个数据库服务器发送与临时表的连接执行有关的集群查询,多个数据库服务器根据集群查询各自执行连接,而后向数据收集单元发送连接执行结果。由此,即使在非远程连接条件的情况下也能进行远程连接。能进行远程连接。能进行远程连接。
技术研发人员:朴恩嬉 李卿牟 金政炫
受保护的技术使用者:北京科蓝软件系统股份有限公司
技术研发日:2023.06.25
技术公布日:2023/8/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/