CN105183901A - 一种数据查询引擎读取数据库表的方法及装置 - Google Patents

一种数据查询引擎读取数据库表的方法及装置 Download PDF

Info

Publication number
CN105183901A
CN105183901A CN201510640513.3A CN201510640513A CN105183901A CN 105183901 A CN105183901 A CN 105183901A CN 201510640513 A CN201510640513 A CN 201510640513A CN 105183901 A CN105183901 A CN 105183901A
Authority
CN
China
Prior art keywords
data
cutting field
query engine
database table
data fragmentation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510640513.3A
Other languages
English (en)
Inventor
郭李明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201510640513.3A priority Critical patent/CN105183901A/zh
Publication of CN105183901A publication Critical patent/CN105183901A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations

Landscapes

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

Abstract

本发明实施例公开了一种数据查询引擎读取数据库表的方法和装置。该方法包括:在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息;根据所述切分信息,将所述相应数据库表切分成至少两个数据分片;将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。本发明实施例所采用的技术方案,在响应查询请求后,实现了数据查询引擎对数据读取阶段的多线程并行处理,减少了数据读取阶段工作时间,进而提高数据查询引擎的查询性能以及整体查询速度,同时提升数据查询引擎的吞吐率和用户体验。

Description

一种数据查询引擎读取数据库表的方法及装置
技术领域
本发明实施例涉及交互式数据查询引擎技术,尤其涉及一种数据查询引擎读取数据库表的方法及装置。
背景技术
Presto为FaceBook(脸书)开源产品,是目前较为流行的一种分布式交互查询引擎,适用于大数据交互式分析查询。Presto数据查询引擎定义了一个通用的JDBC连接模块,通过适当的变通可以连接各种关系型数据库,进行相应数据库的快速查询,常见的关系型数据库有ORACLE、SQLServer以及MySQL等。图1为Presto数据查询引擎客户端10向其服务器端提交一个查询请求后的查询流程示意图,由图1可以看出,Presto的服务器端由管理节点11和计算节点12组成,其查询过程为:当Presto数据查询引擎接收到客户端10发出的查询请求时,先由管理节点11进行解析生成逻辑的执行计划,然后由调度节点13调度处理,即将执行计划分配到具体的计算节点进行执行,再由计算节点12进行查询处理。
由此可以看出,Presto数据读取阶段处于整个查询过程的最初阶段,是数据处理计算的数据源头,数据读取的快慢很大程度影响了整个查询过程的快慢。对于现有的Presto数据查询引擎,读取数据库表时,一个数据库表只对应一个计算节点,即只有一个计算节点用来读取执行任务所对应的数据库表。如果数据库表的数据量很大,则计算节点读取数据的时间消耗就会很长且存储数据的自身内存也存在数据量过大而溢出的隐患。Presto是一个致力于能做出快速响应以及满***互式的查询引擎,若数据读取阶段耗时较长则会影响整个Presto的查询响应时间,显然在连接关系型数据库作为数据源时,单个计算节点处理单个表的模式已经远远的偏离了Presto的设计初衷以及用户体验也相应降低。
发明内容
本发明提供一种数据查询引擎读取数据库表的方法及装置,以降低数据查询引擎数据读取阶段的时间,提升查询性能,进而提高数据查询引擎的整体查询速度,同时提升数据查询引擎的吞吐率。
一方面,本发明实施例提供了一种数据查询引擎读取数据库表的方法,包括:
在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息;
根据所述切分信息,将所述相应数据库表切分成至少两个数据分片;
将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
另一方面,本发明实施例提供了一种数据查询引擎读取数据库表的装置,集成在数据查询引擎中,该装置包括:
切分信息设定模块,用于在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息;
数据分片生成模块,用于根据所述切分信息,将所述相应数据库表切分成至少两个数据分片;
数据分片调度模块,用于将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
本发明实施例中提供的一种数据查询引擎读取数据库表的方法及装置,在数据查询引擎响应查询请求,进行语法解析以及生成逻辑执行计划后,设定执行计划相应数据库表的切分信息,依据切分信息将相应数据库表切分成至少两个数据分片,最后将数据分片调度给不同计算节点进行数据读取。利用该方法实现了数据查询引擎对数据读取阶段的多线程并行处理,减少了数据读取阶段工作时间,进而提高数据查询引擎的查询性能以及整体查询速度,同时提升数据查询引擎的吞吐率和用户体验。
附图说明
图1为现有技术中数据查询引擎Presto结构示意图;
图2为本发明实施例一提供的一种数据查询引擎读取数据库表的方法的流程示意图;
图3为本发明实施例二提供的一种数据查询引擎读取数据库表的方法的流程示意图;
图4A为本发明实施例三提供的一种数据查询引擎读取数据库表的方法的流程示意图;
图4B为本发明实施例三提供的一种数据查询引擎读取数据库表的方法中的Presto应用场景的结构示意图;
图5为本发明实施例四提供的一种数据查询引擎读取数据库表的装置的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图2为本发明实施例一提供的一种数据查询引擎读取数据库表方法的流程示意图,该方法可以由数据查询引擎读取数据库表的装置执行,其中该装置作为数据查询引擎的一部分集成在数据查询引擎中,本发明实施例一提供的数据查询引擎读取数据库表的方法,如图2所示,包括如下操作:
步骤201、在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息。
在本实施例中,所述生成逻辑执行计划具体可为:在数据查询引擎服务器端响应客户端的查询请求后,数据查询引擎服务器端的管理节点首先对查询请求的结构化查询语言(StructuredQueryLanguage,SQL)进行解析,基于解析内容生成逻辑执行计划,所述逻辑执行计划作为查询任务可在管理节点的调度步骤中进行分配。示例性的,逻辑执行计划的内容就可理解为要进行的查询任务,如可以是查询北京市2015.08.23和2015.08.25之间提交的商品订单数量、查询某商品2015年8月份的交易成功数量等待查询任务。
在本实施例中,所述执行计划的相应数据库表具体可指:所要查询的执行计划在关系型数据库中所对应的数据库表,所述数据库表中包含执行计划所需的数据信息。所述设定所述执行计划的相应数据库表的切分信息具体可为:设定对相应数据库表进行切分时所要依据的信息,所述切分信息可根据执行计划要查询的相关属性信息设定。
进一步的,所述设定所述执行计划的相应数据库表的切分信息,包括:
设定所述相应数据库表的切分字段、总切分字段最小值、总切分字段最大值以及读取数据的计算节点个数,作为所述切分信息。
在本实施例中,所述切分字段具体可指所述相应数据库表的特定属性值,所述属性值类型为整数型,且可根据数据库表的数据信息自增产生,例如年份、月份、天数等便于计算的数字信息。所述读取数据的计算节点个数具体可为参与所述执行计划数据读取的计算节点个数。
在本实施例中,所述总切分字段最小值和总切分字段最大值具体可为执行计划的相应数据库表中依据切分字段所限定的数据库表的查询起始值以及结束值。在切分信息设定中,所述对总切分字段最小值和总切分字段最大值的设定主要通过数据查询引擎与所述相应数据库表的通信获取,其获取步骤具体描述为:数据查询引擎与数据库表建立通信后,基于SQL语言的的相关语句来获取。示例性的,所述获取相应数据库表切分字段最大值和最小值SQL语句可表述为:SELECTMAX(SPLITFIELD),MIN(SPLITFIELD)FROM表名,其中,SPLITFIELD为选定的作为切分字段的属性值、表名为执行计划的相应数据库表的名称、MAX(SPLITFIELD)对应总切分字段最大值、MIN(SPLITFIELD)对应总切分字段最小值。
步骤202、根据所述切分信息,将所述相应数据库表切分成至少两个数据分片。
在现有数据查询引擎中,对于一个执行计划,管理节点首先将执行计划作为读取任务调度给其中一个计算节点进行数据读取,此时所述计算节点负责读取执行计划对应的整张数据库表的数据信息并负责读取数据后将数据存入自身内存,若所述数据库表的数据量过大,计算节点会消耗很多时间读取,同时自身内存也存在数据溢出的隐患。
在本实施例中,根据所述切分信息,可将执行计划的相应数据库表划分成至少两个数据分片,所述数据分片具体可为数据库表中的一部分表,携带数据库表的部分信息,一张数据库表可基于切分信息划分为至少两个数据分片。
步骤203、将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
一般地,在数据查询引擎中,计算节点执行的任务可为数据读取任务和数据处理任务,所有的执行任务均由计算节点负责处理,每个计算节点所负责的具体任务主要通过管理节点的调度步骤分配。
在本实施例中,所述执行任务具体可指分配给计算节点的数据读取任务,在所述数据读取任务中,封装的不再是执行计划的整个数据库表信息,而是一个数据分片。即,将一个数据库表的多个数据分片分别封装成多个数据读取任务,然后调度给不同的计算节点进行数据读取操作。在对数据读取任务的操作中,不同计算节点的读取操作是同步进行的,这样节省整个查询过程中数据读取阶段的时间。进一步的,所述计算节点在进行读取任务时还可以接收管理节点调度的其他执行任务,即一个计算节点可同时参与多个任务处理,不会因为将很多计算节点用于并行读取数据而影响其它任务的操作处理。
本发明实施例一提供的一种数据查询引擎读取数据库表的方法,在数据查询引擎响应查询请求,进行语法解析以及生成逻辑执行计划后,设定执行计划相应数据库表的切分信息,依据切分信息将相应数据库表切分成至少两个数据分片,最后将数据分片调度给不同计算节点进行数据读取。利用该方法实现数据查询引擎的多线程并行读取,降低数据读取阶段读取时间,提升查询性能,进而提高数据查询引擎的整体查询速度以及吞吐率,同时提升数据查询引擎的用户体验。
实施例二
图3为本发明实施例二提供的一种数据查询引擎读取数据库表的方法流程示意图。本发明实施例二以上述实施例为基础进行优化,在本实施例中,将步骤将所述相应数据库表切分成至少两个数据分片优化为:计算所述总切分字段最大值与总切分字段最小值之间的差值,作为所述相应数据库表的总记录行数;将所述总记录行数除以读取数据的计算节点个数,以计算数据分片偏移量;根据所述数据分片偏移量切分数据库表。
相应的,如图3所示,本发明实施例的方法包括如下步骤:
步骤301、在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息。
在本实施例中,所述切分信息的设定具体在数据查询引擎服务器端的管理节点中进行,主要依据生成的逻辑执行计划对相应的数据库表进行切分设定。
步骤302、根据所述切分信息,计算相应数据库表的总记录行数。
在本实施例中,所述相应数据库表的总记录行数具体可为:执行计划中需要进行查询的数据在数据库表中对应的总行数。由于切分字段为整数型,可直接对切分字段值进行运算操作,所以所述数据库表的总记录行数可通过总切分字段最大值与总切分字段最小值的差值得到。总记录行数信息的获取,可用于在管理节点执行调度步骤前舍弃相关数据库表中不必要的数据信息,同时确定有效的数据集范围。
步骤303、根据所述切分信息及总记录行数,计算数据分片偏移量。
在本实施例中,所述数据分片偏移量具体可指:一个数据分片中至多包含的数据库表的记录行数。此外,还可以认为数据分片偏移量就是基于设定的切分信息中读取数据的计算节点个数对计算出的总记录行数进行均分,由此保证每个数据分片包含的数据信息量相近,进而在数据读取阶段每个计算节点进行的读取操作的工作量也相近。
在本实施例中,通过计算总记录行数除以读取数据的计算节点个数得到数据分片偏移量,即,将二者计算出的商作为数据分片偏移量。在计算数据分片偏移量期间,不必考虑二者是否能够整除。
步骤304、根据数据分片偏移量切分数据库表。
在本实施例中,在计算出数据分片偏移量后,可基于数据分片偏移量对执行计划的相应数据库表进行切分。
进一步的,根据数据分片偏移量切分数据库表,包括:
从所述总切分字段最小值开始,加上所述数据分片偏移量作为第一数据分片;
从上一数据分片的结束切分字段值加1开始,再加上所述数据分片偏移量作为当前数据分片;
判断当前数据分片中是否包含所述总切分字段最大值,若是,则停止切分,并将当前数据分片作为最终数据分片;若否,则重复执行确定当前数据分片的步骤。
在本实施例中,可将一个数据分片信息看作是一个计算节点中可读取的数据集范围,范围的设定就是对数据库表的切分,其切分方法是:从总切分字段最小值开始进行数据库表的切分,加上数据分片偏移量,就能得到第一数据分片,接下来从第一数据分片的结束位置值加1开始,再加上数据分片偏移量就能得到第二数据分片,接下来依次从上一数据分片的结束位置值加1开始,再加上数据分片偏移量可得到当前数据分片,直到得到的数据分片包含总切分字段最大值才停止对数据库表的切分。同时将包含总切分字段最大值的数据分片作为最终数据分片,其中,一个数据分片的结束位置值为该数据分片的结束切分字段值。
进一步的,所述总切分字段最大值小于等于最终数据分片的结束切分字段值。
在本实施例中,由于数据分片偏移量的值为总记录行数除以读取数据的计算节点个数的商。存在二者不能整除的可能,此时总切分字段最大值不一定就是最终数据分片的结束切分字段值,有可能小于该结束切分字段值。这样做不仅省去了数据分片偏移量计算的麻烦,还防止了数据库表中因数据增长而出现的遗漏数据的情况。
步骤305、将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
在本实施例中,对数据库表进行数据分片的操作发生在管理节点中的调度步骤前,实质上,可将一个数据库表的切分看作在提交给数据库执行的SQL语句中增加了一组过滤条件,该过滤条件的格式为:数据分片的开始位置不小于总切分字段的最小值并且数据分片的结束位置不大于总切分字段最大值。数据库表基于过滤条件过滤生成至少两个数据分片后,再通过管理节点的调度步骤将数据分片分别封装到执行任务中,并将封装有数据分片的执行任务分派给不同计算节点,实现计算节点对同一数据表的并行读取。
本发明实施例二提供的一种数据查询引擎读取数据库表的方法,在数据查询引擎响应查询请求,进行语法解析以及生成逻辑执行计划后,设定执行计划相应数据库表的切分信息,依据切分信息计算相应数据库表与执行计划有关的总记录行数;接着计算用于切分数据库表的数据分片偏移量,可依据数据分片偏移量将数据库表切分成至少两个数据分片;最后将数据分片调度给不同计算节点进行数据读取。利用该方法实现对数据库表中有效数据信息的划分以及多余数据信息的过滤,保证了数据查询引擎的多线程并行读取,减少了数据读取阶段时间,提高了查询性能和吞吐率,进而加快了数据查询引擎的整体查询速度,同时提升了数据查询引擎的用户体验。
实施例三
如图4A所示,本发明实施例三提供了一种数据查询引擎读取数据库表的方法的优选实施例,本实施例在图1所示的Presto应用场景的基础上,进一步增加了配置模块14,用于存储预先配置的数据库中各数据表的切分信息,具体的本实施例的应用场景如图4B所示。下面具体结合图4A,详细说明图4B所示应用场景的具体查询过程,如图4A所示,给出了本发明实施例的方法基于Presto数据查询引擎实现数据并行读取的流程示意图,具体包括如下步骤:
步骤401、管理节点接收来自客户端发送的数据查询请求;
步骤402、所述管理节点对所述数据查询请求进行语法解析生成执行计划,并将所述执行计划发送至调度节点;
所述语法解析为Presto数据查询引擎管理节点中执行的第一步,主要对查询请求的SQL语句进行解析。
步骤403、所述调度节点根据所述执行任务从所述配置模块中获取所述执行计划的相应数据库表的切分信息;
所述生成逻辑执行计划为Presto数据查询引擎管理节点中执行的第二步,主要在语法解析后生成相应的可执行的逻辑执行计划。所述执行计划对应关系型数据库中的一个数据库表。
步骤404、根据所述切分信息,将所述相应数据库表切分成至少两个数据分片。
本发明实施例提供的读取数据库表的方法,实质上是在数据查询引擎的管理节点进行任务调度步骤前,从所述配置模块中获取切分信息,然后将切分信息封装到执行任务中。
所述设定切分信息就是设定执行计划相应数据库表的的切分信息。所述切分信息包括:切分字段、总切分字段最小值、总切分字段最大值以及读取数据的计算节点个数。切分字段为相应数据库表的特定属性值,类型为整数型;总切分字段最大值和总切分字段最小值通过SQL语句与数据库建立通信获取。
在该步骤中,Presto数据查询引擎根据所述切分信息,将所述相应数据库表切分成至少两个数据分片。其切分过程为:首先将总切分字段最大值与总切分字段最小值的差值作为总记录行数;然后用总记录行数除以读取数据的计算节点个数的商作为数据分片偏移量;最后从总切分字段最小值开始依次数据分片偏移量直到包含总切分字段最大值结束,将数据库表切分为多个数据分片。其中,这些数据分片记为第一数据分片、第二数据分片、...和最终数据分片。
步骤405、所述调度节点将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取;
该步骤将执行计划相应数据库表的数据分片分别封装到执行任务中,再通过调度分配给不同计算节点读取数据,以实现Presto数据查询引擎的对数据库表的并行读取。
步骤406、各个计算节点根据所述切分信息分别从数据表中对应分片中读取数据。
在Presto数据查询引擎的管理节点对数据库表进行处理后,在数据读取阶段,一个计算节点负责读取一个数据分片的数据信息,并将数据信息存入自身内存。
本发明实施例三提供了一种数据查询引擎读取数据库表的方法的优选实施例,在该优选实施例中,Presto数据查询引擎在响应查询请求后,利用本发明提供的数据查询引擎读取数据库表的方法对数据库表进行切分处理,实现Presto数据查询引擎的多线程并行读取,降低了数据读取阶段读取时间,提升了Presto查询性能,进而提高了Presto数据查询引擎的整体查询速度以及吞吐率,同时提升Presto数据查询引擎的用户体验。
实施例四
图5为本发明实施例四提供的一种数据查询引擎读取数据库表的装置结构框图,该装置可作为数据查询引擎的一部分集成在数据查询引擎中。如图5所示,该装置包括:
切分信息设定模块501,用于在生成逻辑执行计划后,设定执行计划的相应数据库表的切分信息;
数据分片生成模块502,用于根据切分信息,将相应数据库表切分成至少两个数据分片;
数据分片调度模块503,用于将至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
本发明实施例四提供的一种数据查询引擎读取数据库表的装置,集成在数据查询引擎中,在数据查询引擎管理节点的调度模块将执行任务分配给计算节点之前,通过切分信息设定模块配置逻辑执行计划的相应数据库表的切分信息,再通过数据分片生成模块,基于切分信息将数据库表切分成至少两个数据分片,最终再通过调度模块将数据分片一一封装在执行任务中,实现多个计算节点对相关数据库表的并行读取。利用所述装置可实现数据查询引擎在响应数据查询请求后多线程并行读取数据库数据信息,提高了数据读取阶段的速度,减少数据读取阶段时间,提升查询性能和吞吐率,进而降低数据查询引擎的整体查询时间,同时提升数据查询引擎的用户体验。
进一步的,切分信息设定模块501,具体用于:
设定相应数据库表的切分字段、总切分字段最小值、总切分字段最大值以及读取数据的计算节点个数,作为切分信息。
进一步的,数据分片生成模块502,包括:
总记录行数计算单元,用于计算所述总切分字段最大值与总切分字段最小值之间的差值,作为所述相应数据库表的总记录行数;
数据分片偏移量计算单元,用于将所述总记录行数除以读取数据的计算节点个数,以计算数据分片偏移量;
数据分片切分单元,用于根据所述数据分片偏移量切分数据库表。
进一步的,数据分片切分单元,具体用于:
从所述总切分字段最小值开始,加上所述数据分片偏移量作为第一数据分片;
从上一数据分片的结束切分字段值加1开始,再加上所述数据分片偏移量作为当前数据分片;
判断当前数据分片中是否包含所述总切分字段最大值,若是,则停止切分,并将当前数据分片作为最终数据分片;若否,则重复执行确定当前数据分片的步骤。
进一步的,所述总切分字段最大值小于等于最终数据分片的结束切分字段值。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据查询引擎读取数据库表的方法,其特征在于,包括:
在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息;
根据所述切分信息,将所述相应数据库表切分成至少两个数据分片;
将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
2.根据权利要求1所述的方法,其特征在于,所述设定所述执行计划的相应数据库表的切分信息,包括:
设定所述相应数据库表的切分字段、总切分字段最小值、总切分字段最大值以及读取数据的计算节点个数,作为所述切分信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述相应数据库表切分成至少两个数据分片,包括:
计算所述总切分字段最大值与总切分字段最小值之间的差值,作为所述相应数据库表的总记录行数;
将所述总记录行数除以读取数据的计算节点个数,以计算数据分片偏移量;
根据所述数据分片偏移量切分数据库表。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据分片偏移量切分数据库表,包括:
从所述总切分字段最小值开始,加上所述数据分片偏移量作为第一数据分片;
从上一数据分片的结束切分字段值加1开始,再加上所述数据分片偏移量作为当前数据分片;
判断当前数据分片中是否包含所述总切分字段最大值,若是,则停止切分,并将当前数据分片作为最终数据分片;若否,则重复执行确定当前数据分片的步骤。
5.根据权利要求4所述的方法,其特征在于,所述总切分字段最大值小于等于最终数据分片的结束切分字段值。
6.一种数据查询引擎读取数据库表的装置,集成在数据查询引擎中,其特征在于,包括:
切分信息设定模块,用于在生成逻辑执行计划后,设定所述执行计划的相应数据库表的切分信息;
数据分片生成模块,用于根据所述切分信息,将所述相应数据库表切分成至少两个数据分片;
数据分片调度模块,用于将所述至少两个数据分片分别封装到执行任务,分别调度给不同计算节点进行数据读取。
7.根据权利要求6所述的装置,其特征在于,所述切分信息设定模块,具体用于:
设定所述相应数据库表的切分字段、总切分字段最小值、总切分字段最大值以及读取数据的计算节点个数,作为所述切分信息。
8.根据权利要求7所述的装置,其特征在于,所述数据分片生成模块,包括:
总记录行数计算单元,用于计算所述总切分字段最大值与总切分字段最小值之间的差值,作为所述相应数据库表的总记录行数;
数据分片偏移量计算单元,用于将所述总记录行数除以读取数据的计算节点个数,以计算数据分片偏移量;
数据分片切分单元,用于根据所述数据分片偏移量切分数据库表。
9.根据权利要求8所述的装置,其特征在于,所述数据分片切分单元,具体用于:
从所述总切分字段最小值开始,加上所述数据分片偏移量作为第一数据分片;
从上一数据分片的结束切分字段值加1开始,再加上所述数据分片偏移量作为当前数据分片;
判断当前数据分片中是否包含所述总切分字段最大值,若是,则停止切分,并将当前数据分片作为最终数据分片;若否,则重复执行确定当前数据分片的步骤。
10.根据权利要求9所述的装置,其特征在于,所述总切分字段最大值小于等于最终数据分片的结束切分字段值。
CN201510640513.3A 2015-09-30 2015-09-30 一种数据查询引擎读取数据库表的方法及装置 Pending CN105183901A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510640513.3A CN105183901A (zh) 2015-09-30 2015-09-30 一种数据查询引擎读取数据库表的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510640513.3A CN105183901A (zh) 2015-09-30 2015-09-30 一种数据查询引擎读取数据库表的方法及装置

Publications (1)

Publication Number Publication Date
CN105183901A true CN105183901A (zh) 2015-12-23

Family

ID=54905982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510640513.3A Pending CN105183901A (zh) 2015-09-30 2015-09-30 一种数据查询引擎读取数据库表的方法及装置

Country Status (1)

Country Link
CN (1) CN105183901A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293940A (zh) * 2016-08-08 2017-01-04 浪潮通用软件有限公司 一种金融行业中并行跑批的方法
CN107291720A (zh) * 2016-03-30 2017-10-24 阿里巴巴集团控股有限公司 一种实现批量数据处理的方法、***和计算机集群
CN108009261A (zh) * 2017-12-12 2018-05-08 北京奇艺世纪科技有限公司 一种数据同步方法、装置及电子设备
CN108984549A (zh) * 2017-05-31 2018-12-11 北京京东尚科信息技术有限公司 一种基于动态配置数据库的分库分表数据抽取方法和装置
CN109597810A (zh) * 2018-11-21 2019-04-09 金色熊猫有限公司 一种任务切分方法、装置、介质及电子设备
CN110597618A (zh) * 2019-07-26 2019-12-20 苏宁云计算有限公司 一种数据交换***的任务拆分方法及装置
CN110851419A (zh) * 2018-08-03 2020-02-28 北京京东金融科技控股有限公司 一种数据迁移的方法和装置
CN111382174A (zh) * 2018-12-28 2020-07-07 百度在线网络技术(北京)有限公司 多方数据联合查询方法、装置、服务器和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019922A1 (en) * 2000-06-02 2002-02-14 Reuter James M. Data migration using parallel, distributed table driven I/O mapping
CN101908075A (zh) * 2010-08-17 2010-12-08 上海云数信息科技有限公司 基于sql的并行计算***及方法
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询***和方法
CN102521406A (zh) * 2011-12-26 2012-06-27 中国科学院计算技术研究所 海量结构化数据复杂查询任务的分布式查询方法和***
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法
CN102725753A (zh) * 2011-11-28 2012-10-10 华为技术有限公司 优化数据访问的方法及装置、优化数据存储的方法及装置
CN103123652A (zh) * 2013-03-14 2013-05-29 曙光信息产业(北京)有限公司 数据查询方法和集群数据库***
CN103488778A (zh) * 2013-09-27 2014-01-01 华为技术有限公司 一种数据查询方法及装置
CN103605750A (zh) * 2013-11-22 2014-02-26 厦门雅迅网络股份有限公司 一种快速的分布式数据分页方法
CN104462269A (zh) * 2014-11-24 2015-03-25 中国联合网络通信集团有限公司 一种异构数据库数据交换方法及***

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019922A1 (en) * 2000-06-02 2002-02-14 Reuter James M. Data migration using parallel, distributed table driven I/O mapping
CN101908075A (zh) * 2010-08-17 2010-12-08 上海云数信息科技有限公司 基于sql的并行计算***及方法
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询***和方法
CN102725753A (zh) * 2011-11-28 2012-10-10 华为技术有限公司 优化数据访问的方法及装置、优化数据存储的方法及装置
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法
CN102521406A (zh) * 2011-12-26 2012-06-27 中国科学院计算技术研究所 海量结构化数据复杂查询任务的分布式查询方法和***
CN103123652A (zh) * 2013-03-14 2013-05-29 曙光信息产业(北京)有限公司 数据查询方法和集群数据库***
CN103488778A (zh) * 2013-09-27 2014-01-01 华为技术有限公司 一种数据查询方法及装置
CN103605750A (zh) * 2013-11-22 2014-02-26 厦门雅迅网络股份有限公司 一种快速的分布式数据分页方法
CN104462269A (zh) * 2014-11-24 2015-03-25 中国联合网络通信集团有限公司 一种异构数据库数据交换方法及***

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291720A (zh) * 2016-03-30 2017-10-24 阿里巴巴集团控股有限公司 一种实现批量数据处理的方法、***和计算机集群
CN107291720B (zh) * 2016-03-30 2020-10-02 阿里巴巴集团控股有限公司 一种实现批量数据处理的方法、***和计算机集群
CN106293940A (zh) * 2016-08-08 2017-01-04 浪潮通用软件有限公司 一种金融行业中并行跑批的方法
CN108984549A (zh) * 2017-05-31 2018-12-11 北京京东尚科信息技术有限公司 一种基于动态配置数据库的分库分表数据抽取方法和装置
CN108009261A (zh) * 2017-12-12 2018-05-08 北京奇艺世纪科技有限公司 一种数据同步方法、装置及电子设备
CN110851419A (zh) * 2018-08-03 2020-02-28 北京京东金融科技控股有限公司 一种数据迁移的方法和装置
CN110851419B (zh) * 2018-08-03 2024-07-16 京东科技控股股份有限公司 一种数据迁移的方法和装置
CN109597810A (zh) * 2018-11-21 2019-04-09 金色熊猫有限公司 一种任务切分方法、装置、介质及电子设备
CN109597810B (zh) * 2018-11-21 2021-11-09 金色熊猫有限公司 一种任务切分方法、装置、介质及电子设备
CN111382174A (zh) * 2018-12-28 2020-07-07 百度在线网络技术(北京)有限公司 多方数据联合查询方法、装置、服务器和存储介质
CN111382174B (zh) * 2018-12-28 2023-10-17 百度在线网络技术(北京)有限公司 多方数据联合查询方法、装置、服务器和存储介质
CN110597618A (zh) * 2019-07-26 2019-12-20 苏宁云计算有限公司 一种数据交换***的任务拆分方法及装置
CN110597618B (zh) * 2019-07-26 2022-06-07 苏宁云计算有限公司 一种数据交换***的任务拆分方法及装置

Similar Documents

Publication Publication Date Title
CN105183901A (zh) 一种数据查询引擎读取数据库表的方法及装置
CN104123374B (zh) 分布式数据库中聚合查询的方法及装置
CN105824957A (zh) 分布式内存列式数据库的查询引擎***及查询方法
US9886486B2 (en) Enriching events with dynamically typed big data for event processing
CN104885078B (zh) 用于大规模并行处理数据库集群中的两阶段查询优化的方法
CN109189589A (zh) 一种分布式大数据计算引擎及架构方法
CN108052635A (zh) 一种异构数据源统一联合查询方法
US20150032695A1 (en) Client and server integration for replicating data
CN102799690A (zh) 一种利用数据库技术校验网页输入的方法
CN109325039A (zh) 一种区块链浏览器及区块链信息浏览方法
CN105138326B (zh) 一种基于ibatis实现sql动态配置的方法及***
CN101382957A (zh) 建立查询模型的***及建立方法
WO2020187023A1 (zh) 数据配置查询方法和装置
CN107220376B (zh) 一种数据查询方法和装置
CN114722119A (zh) 数据同步方法及***
US20110040773A1 (en) Data row packing apparatus, systems, and methods
CN102857949A (zh) 一种规划数据一致性保证的方法和装置
CN108769103A (zh) 一种基于通信业务数据稽核结果展示的控制方法及***
US20100036824A1 (en) System, method, and computer program product for accessing and manipulating remote datasets
CN111159300A (zh) 基于区块链的数据处理方法及装置
CN107451211B (zh) 一种基于RabbitMQ和MongoDB的下载***
CN113469647A (zh) 一种企业信息集成***和业务处理方法
CN111522840B (zh) 标签的配置方法、装置、设备及计算机可读存储介质
CN107798139A (zh) 一种基于cim/xml的主备数据异构方法
US11789957B2 (en) System, method, and apparatus for querying a database

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20151223

RJ01 Rejection of invention patent application after publication