CN112182028A - 基于分布式数据库的表的数据行数查询方法和装置 - Google Patents

基于分布式数据库的表的数据行数查询方法和装置 Download PDF

Info

Publication number
CN112182028A
CN112182028A CN202011051532.XA CN202011051532A CN112182028A CN 112182028 A CN112182028 A CN 112182028A CN 202011051532 A CN202011051532 A CN 202011051532A CN 112182028 A CN112182028 A CN 112182028A
Authority
CN
China
Prior art keywords
data
data table
computing node
node
computing
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
CN202011051532.XA
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 Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies 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 Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202011051532.XA priority Critical patent/CN112182028A/zh
Publication of CN112182028A publication Critical patent/CN112182028A/zh
Pending legal-status Critical Current

Links

Images

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本公开涉及一种基于分布式数据库的表的数据行数的查询方法和装置,主节点接收客户端发送的用于查询分布式数据库的第一数据表的数据行数的查询请求,生成聚集操作的分布式执行计划,向各计算节点发送分布式执行计划,各计算节点扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数,主节点对接收到的所有计算节点返回的总行数进行累加,得到第一数据表的数据行数,各计算节点无需扫描第一数据表的所有数据文件中的可见的每一行数据,从而,减少了数据库的I/O资源的消耗,提高了查询的效率,提升了分布式数据库的性能。

Description

基于分布式数据库的表的数据行数查询方法和装置
技术领域
本公开涉及数据库技术领域,尤其涉及一种基于分布式数据库的表的数据行数的查询方法和装置。
背景技术
随着物联网技术的飞速发展,大数据的时代已经到来,与传统数据分析相比,数据量产生了爆发式的增长,能够存储海量数据的分布式数据库广泛地应用于各个领域。
数据的实时查询效率是数据库的总体性能的一个非常重要的指标,其中对于一张表数据的总行数的查询,是一个在数据分析过程中经常需要执行的查询操作。例如,使用结构化查询语言(Structured Query Language,SQL)语句“select count(*)fromtablename”查询一张表数据的总行数,传统数据库执行该查询语句的方法是数据库根据表信息找到表对应的数据文件,然后扫描该表的所有数据文件中的可见的每一行数据,然后进行累加计算得到表的总行数。
然而,采用现有技术的方法,查询一张表数据的总行数会消耗较多的数据库的输入/输出(Input/Output)的资源,导致查询的效率不高,影响了数据库的总体性能。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于分布式数据库的表的数据行数的查询方法和装置。
第一方面,本公开提供一种基于分布式数据库的表的数据行数的查询方法,包括:
主节点接收客户端发送的数据行数的查询请求,所述查询请求用于请求查询分布式数据库的第一数据表的数据行数;
所述主节点生成聚集操作的分布式执行计划,所述分布式执行计划用于指示各计算节点扫描所述第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到所述计算节点对应的总行数;
所述主节点向所述各计算节点发送所述分布式执行计划;
所述主节点接收所述各计算节点返回的所述计算节点对应的总行数;
所述主节点对接收到的所有计算节点返回的总行数进行累加,得到所述第一数据表的数据行数;
所述主节点向所述客户端发送所述第一数据表的数据行数。
可选的,还包括:
计算节点根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数。
可选的,所述计算节点根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数,包括:
计算节点对所述第一数据表的数据文件执行删除操作,所述删除操作用于删除N行数据记录,更新所述第一数据表关联的元数据表中记录的所述数据文件中的行数减N,所述N为大于等于1的整数。
可选的,所述计算节点根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数,包括:
计算节点对所述第一数据表的数据文件执行插入操作,所述插入操作用于插入M行数据记录,更新所述第一数据表关联的元数据表中记录的所述数据文件中的行数增加M,所述M为大于等于1的整数。
可选的,还包括:
计算节点创建所述第一数据表,并创建所述第一数据表关联的源数据表,所述元数据表中记录各数据文件中的行数。
第二方面,本公开提供一种基于分布式数据库的表的数据行数的查询装置,包括:
第一接收模块,用于接收客户端发送的数据行数的查询请求,所述查询请求用于请求查询分布式数据库的第一数据表的数据行数;
生成模块,用于生成聚集操作的分布式执行计划,所述分布式执行计划用于指示各计算节点扫描所述第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到所述计算节点对应的总行数;
第一发送模块,用于向所述各计算节点发送所述分布式执行计划;
第二接收模块,用于接收所述各计算节点返回的所述计算节点对应的总行数;
第一处理模块,用于对接收到的所有计算节点返回的总行数进行累加,得到所述第一数据表的数据行数;
第二发送模块,用于向所述客户端发送所述第一数据表的数据行数。
可选的,还包括:一种计算节点,其中,所述计算节点包括:
第二处理模块,用于根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数。
可选的,第二处理模块还用于对所述第一数据表的数据文件执行删除操作,所述删除操作用于删除N行数据记录,更新所述第一数据表关联的元数据表中记录的所述数据文件中的行数减N,所述N为大于等于1的整数。
可选的,第二处理模块还用于对所述第一数据表的数据文件执行插入操作,所述插入操作用于插入M行数据记录,更新所述第一数据表关联的元数据表中记录的所述数据文件中的行数增加M,所述M为大于等于1的整数。
可选的,第二处理模块还用于创建所述第一数据表,并创建所述第一数据表关联的元数据表,所述元数据表中记录各数据文件中的行数。
第三方面,本公开提供一种分布式数据库系统,包括:主节点和多个计算节点,所述主节点用于执行第一方面任一项所述的方法的步骤。
第四方面,本公开提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述的方法的步骤。
第五方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
主节点接收客户端发送的数据行数的查询请求,查询请求用于请求查询分布式数据库的第一数据表的数据行数;主节点生成聚集操作的分布式执行计划,分布式执行计划用于指示各计算节点扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数;主节点向各计算节点发送分布式执行计划,并且接收各计算节点返回的计算节点对应的总行数;主节点对接收到的所有计算节点返回的总行数进行累加,得到第一数据表的数据行数;即,各计算节点无需扫描第一数据表的所有数据文件中的可见的每一行数据,只需要通过扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,减少了数据库的I/O资源的消耗;并且,计算节点对各数据文件中的行数进行累加就可以得到计算节点对应的总行数,不需要连续地执行加1操作得到计算节点对应的总行数,提高了查询的效率,提升了分布式数据库的性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开提供的分布式数据库的网络架构图;
图2为本公开提供的一种基于分布式数据库的表的数据行数的查询方法实施例的流程示意图;
图3为本公开提供的另一种基于分布式数据库的表的数据行数的查询方法实施例的流程示意图;
图4为本公开提供的一种基于分布式数据库的表的数据行数的查询方法实施例的运行结果图;
图5为本公开提供的一种基于分布式数据库的表的数据行数的查询装置的结构示意图;
图6为本公开提供的一种分布式数据库系统的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
下面以几个具体的实施例对本公开的技术方案进行描述,对于相同或者类似的概念,可以相互参考,不再每处一一赘述。
图1为本公开实施例提供的一种分布式数据库的网络架构图,如图1所示,
本实施例提供的网络架构包括:客户端、主节点和至少一个计算节点。客户端和主节点连接,主节点和计算节点连接。一个主节点可以连接多个计算节点。主节点和每个计算节点都有自己独立的中央处理器,内存和外部存储。主节点负责接收客户端的请求,生成执行计划,并将计划下发到每个计算节点,协调执行计划的完成,最后汇总执行结果返回给客户端。计算节点负责执行接收到的执行计划,提供数据的读写和存储管理。
基于图1所示的网络架构图,对本公开实施例提供的一种基于分布式数据库的表的数据行数的查询方法进行详细说明。
图2为本公开提供的一种基于分布式数据库的表的数据行数的查询方法实施例的流程示意图,如图2所示,本实施例的方法包括:
S201:主节点接收客户端发送的数据行数的查询请求。
其中,查询请求用于请求查询分布式数据库的第一数据表的数据行数。例如,客户端发送SQL查询请求“select count(*)from test_ao”用于查询“test_ao”表的数据总行数。
S202:主节点生成聚集操作的分布式执行计划。
其中,分布式执行计划用于指示各计算节点扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数。
主节点收到客户端的SQL查询请求后,对SQL查询语句进行词法解析、语法解析,生成语法树,对于查询操作,语法树经过语义分析和查询重写生成查询树。通常,对于一个查询请求,查询树中可能存在多个执行计划。因此,优化器对查询树进行处理,从所有可能的执行计划中选择一个最优或接近最优的计划,生成最终的分布式执行计划。
S203:主节点向各计算节点发送分布式执行计划。
计算节点接收主节点发送的分布式执行计划,按照分布式执行计划扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数。计算节点将分布式执行计划的执行结果返回给主节点。
S204:主节点接收各计算节点返回的计算节点对应的总行数。
主节点接收各计算节点返回的执行结果,其中,执行结果中包括该计算节点中存储的第一数据表的总行数。
S205:主节点对接收到的所有计算节点返回的总行数进行累加,得到第一数据表的数据行数。
主节点汇总所有的计算节点返回的执行结果,对所有计算节点对应的总行数进行累加,得到分布式数据库中第一数据表的数据行数。
S206:主节点向客户端发送第一数据表的数据行数。
本实施例,通过主节点接收客户端发送的数据行数的查询请求,查询请求用于请求查询分布式数据库的第一数据表的数据行数,主节点生成聚集操作的分布式执行计划,分布式执行计划用于指示各计算节点扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数,主节点向各计算节点发送分布式执行计划,接收各计算节点返回的计算节点对应的总行数,对接收到的所有计算节点返回的总行数进行累加,得到第一数据表的数据行数,向客户端发送第一数据表的数据行数,即,通过扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,无需扫描第一数据表的海量数据,对各数据文件中的行数进行累加得到计算节点对应的总行数,减少了数据库的I/O资源的消耗,提高了查询的效率,提升了分布式数据库的性能。
图3为本公开提供的另一种基于分布式数据库的表的数据行数的查询方法实施例的流程示意图,图3是在图2所示实施例的基础上,进一步地,还包括:
S301:计算节点根据对第一数据表执行的操作,更新第一数据表关联的元数据表中记录的数据文件中的行数。
其中,对第一数据表执行的操作,包括但不限于以下操作:删除数据、插入数据和更新数据。
一种可能的实现方式是:计算节点根据对第一数据表执行的操作,获取对第一数据表的操作的数据文件中的行数,更新第一数据表关联的元数据表中记录的数据文件中的行数。
本实施例,通过计算节点根据对第一数据表执行的操作,更新第一数据表关联的元数据表中记录的数据文件中的行数,实时更新了元数据表中记录的数据文件的行数,保障了查询的正确性,提升了分布式数据库的性能。
可选的,S301的另一种可能实现方式是:计算节点对第一数据表的数据文件执行删除操作,删除操作用于删除N行数据记录,更新第一数据表关联的元数据表中记录的数据文件中的行数减N,N为大于等于1的整数。
例如,主节点接收客户端发送的用于删除第一数据表的10行数据记录SQL请求。假设,计算节点1中存储了第一数据表的8行数据记录,其中,5行数据记录存储在数据文件1中,3行计算节点1存储在数据文件2中,其余2行数据记录存储在其他计算节点中。主节点生成分布式执行计划,并向各个计算节点发送分布式执行计划。计算节点1接收到分布式执行计划后,找到需要执行删除操作的数据文件1和数据文件2,然后在数据文件1中找到需要删除的3行数据记录,在数据文件2中找到需要删除的5行数据记录,如果第一数据表是追加表,那么在数据文件中不删除数据记录,只修改第一数据表关联的位图(bitmap)表,将bitmap表中对应的数据行的删除标记从0修改为1,表示已删除,更新第一数据表关联的元数据表中记录的数据文件1中的行数减3,更新第一数据表关联的元数据表中记录的数据文件2中的行数减5。其他计算节点收到分布式执行计划后的处理和计算节点1的处理是相同的,此处不再赘述。
可选的,S301的再一种可能的实现方式是:计算节点对第一数据表的数据文件执行插入操作,插入操作用于插入M行数据记录,更新第一数据表关联的元数据表中记录的数据文件中的行数增加M,M为大于等于1的整数。例如,主节点接收客户端发送的用于向第一数据表中插入10行数据记录的SQL请求,主节点生成分布式执行计划,并向各个计算节点发送分布式执行计划。假设,分布式执行计划是在计算节点1中插入6行第一数据表的数据记录,在其他计算节点中插入4行第一数据表的数据记录。计算节点1接收分布式执行计划,判断是否存在数据文件可以插入第一数据表的6行数据记录。如果存在可以插入的数据文件,将第一数据表的6行数据记录插入到该数据文件中,并且更新第一数据表关联的元数据表中记录的该数据文件中的行数增加6;如果不存在可以插入的数据文件,则生成新的数据文件,将第一数据表的6行数据记录插入到新的数据文件中,并且在第一数据表关联的元数据表中增加一行数据记录,该数据记录用于记录新的数据文件中的行数,值为6。其他计算节点收到分布式执行计划后的处理和计算节点1的处理是相同的,此处不再赘述。
可选的,S301的又一种可能的实现方式是:计算节点对第一数据表的数据文件执行更新操作,更新操作转化成删除操作和插入操作。例如,主节点接收客户端发送的用于更新第一数据表中的数据记录的SQL请求,主节点生成分布式执行计划,并向各个计算节点发送分布式执行计划。分布式执行计划中包括对第一数据表的删除操作和插入操作,各计算节点收到分布式执行计划后,先对第一数据表的数据文件执行删除操作,删除操作与上述S301的另一种可能实现方式相同;然后对第一数据表的数据文件执行插入操作,插入操作与上述S301的又一种可能实现方式相同。
对分布式数据库进行并发操作时,如果并发操作的第一数据表是追加表,那么,分布式数据库允许同时执行对第一数据表的读(查询)写(删除、插入和更新等)操作,但是,对第一数据表的写写操作,只允许同时执行多个插入操作,不允许同时执行插入操作和删除操作,也不允许同时执行多个删除操作。原因在于追加表的存储模式限制了插入的数据记录只能添加在数据文件的最后,同时执行的多个插入操作将数据记录写入不同的数据文件中,多个插入操作之间互不影响。由于更新操作转化成了删除操作和插入操作,所以,多个更新操作、更新操作和插入操作、更新操作和删除操作也是不允许同时执行的。通过对第一数据表的同一个数据文件的行数进行同时修改的限制,避免了第一数据表关联的元数据表中记录的各数据文件的行数出现不正确的问题,从而,保障了数据行数的查询结果的正确性,提升了分布式数据库的性能。可选的,还包括:计算节点创建第一数据表,并创建第一数据表关联的元数据表,元数据表中记录各数据文件中的行数。
一种可能的实现方式是:主节点接收客户端发送的创建第一数据表的请求,例如,客户端发送SQL语句“create table test_ao(a int,b int)with(appendonly=true)”创建第一数据表“test_ao”,“test_ao”包括两个字段a和b,限定“test_ao”的存储模式是只追加存储,即“test_ao”是追加表,仅支持数据记录的追加,不支持数据文件的随机修改。主节点对SQL语句进行词法解析、语法解析,生成语法树,数据库定义语言(Data DefinitionLanguage,DDL)语句(例如,创建表、创建索引、删除索引等)对应的语法树是不可优化的,主节点直接创建第一数据表,并创建第一数据表关联的元数据表。主节点将执行命令发送给各计算节点。各计算节点创建第一数据表,并创建第一数据表关联的元数据表,元数据表中记录各数据文件中的行数。可选的,在创建第一数据表关联的元数据表前,创建第一数据表关联的bitmap表,bitmap表用于记录第一数据表的行数据的删除标记,0表示未删除,1表示已删除。
图4为本公开提供的一种基于分布式数据库的表的数据行数的查询方法实施例的运行结果图。
以查询存储10000000行数据记录的表“test_ao”的数据行数为例,主节点接收客户端发送的第一数据表的数据行数的SQL查询请求,“select count(*)from test_ao”,假设,第一数据表“test_ao”中的10000000行数据记录分布在3个计算节点中。主节点生成分布式执行计划,并向这3个计算节点发送分布式执行计划,计算节点扫描“test_ao”关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数。计算节点将计算节点对应的总行数返回给主节点。主节点对接收到的所有计算节点返回的总行数进行累加,得到第一数据表的数据行数,并向客户端发送第一数据表的数据行数。运行结果如图4所示。图4中还对比性地示出了现有技术中查询存储10000000行数据记录的表“test_ao”的数据行数的执行结果,可以看出,本公开提供的实施例减少了查询响应的时间,提高了查询的效率,提升了分布式数据库的性能。
图5为本公开提供的一种基于分布式数据库的表的数据行数的查询装置的结构示意图,本实施例的装置包括:第一接收模块501、生成模块502、第一发送模块503、第二接收模块504、处理模块505和第二发送模块506。
其中,第一接收模块501用于接收客户端发送的数据行数的查询请求,查询请求用于请求查询分布式数据库的第一数据表的数据行数;
生成模块502,用于生成聚集操作的分布式执行计划,分布式执行计划用于指示各计算节点扫描第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到计算节点对应的总行数;
第一发送模块503,用于向各计算节点发送分布式执行计划;
第二接收模块504,用于接收各计算节点返回的计算节点对应的总行数;
第一处理模块505,用于对接收到的所有计算节点返回的总行数进行累加,得到第一数据表的数据行数;
第二发送模块506,用于向客户端发送第一数据表的数据行数。
上述装置实施例,对应的可用于执行图2或图3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选的,基于分布式数据库的表的数据行数的查询装置还包括:一种计算节点,其中,计算节点包括:
第二处理模块,用于根据对第一数据表执行的操作,更新第一数据表关联的元数据表中记录的数据文件中的行数。
可选的,第二处理模块还用于对第一数据表的数据文件执行删除操作,删除操作用于删除N行数据记录,更新第一数据表关联的元数据表中记录的数据文件中的行数减N,N为大于等于1的整数。
可选的,第二处理模块还用于对第一数据表的数据文件执行插入操作,插入操作用于插入M行数据记录,更新第一数据表关联的元数据表中记录的数据文件中的行数增加M,M为大于等于1的整数。
可选的,第二处理模块还用于对第一数据表的数据文件执行更新操作,更新操作转化成删除操作和插入操作。
可选的,第二处理模块还用于创建第一数据表,并创建第一数据表关联的元数据表,元数据表中记录各数据文件中的行数。
图6为本公开提供的一种分布式数据库系统的结构示意图,包括:主节点601和多个计算节点602。其中,主节点601用于执行图2或图3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开实施例提供了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可以实现图2或图3任一所示方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现图2或图3任一所示方法实施例的技术方案。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种基于分布式数据库的表的数据行数的查询方法,其特征在于,包括:
主节点接收客户端发送的数据行数的查询请求,所述查询请求用于请求查询分布式数据库的第一数据表的数据行数;
所述主节点生成聚集操作的分布式执行计划,所述分布式执行计划用于指示各计算节点扫描所述第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到所述计算节点对应的总行数;
所述主节点向所述各计算节点发送所述分布式执行计划;
所述主节点接收所述各计算节点返回的所述计算节点对应的总行数;
所述主节点对接收到的所有计算节点返回的总行数进行累加,得到所述第一数据表的数据行数;
所述主节点向所述客户端发送所述第一数据表的数据行数。
2.根据权利要求1所述的方法,其特征在于,还包括:
计算节点根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数。
3.根据权利要求2所述的方法,其特征在于,所述计算节点根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数,包括:
计算节点对所述第一数据表的数据文件执行删除操作,所述删除操作用于删除N行数据记录,更新所述第一数据表关联的元数据表中记录的所述数据文件中的行数减N,所述N为大于等于1的整数。
4.根据权利要求2所述的方法,其特征在于,所述计算节点根据对所述第一数据表执行的操作,更新所述第一数据表关联的元数据表中记录的数据文件中的行数,包括:
计算节点对所述第一数据表的数据文件执行插入操作,所述插入操作用于插入M行数据记录,更新所述第一数据表关联的元数据表中记录的所述数据文件中的行数增加M,所述M为大于等于1的整数。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
计算节点创建所述第一数据表,并创建所述第一数据表关联的元数据表,所述元数据表中记录各数据文件中的行数。
6.一种基于分布式数据库的表的数据行数的查询装置,其特征在于,包括:
第一接收模块,用于接收客户端发送的数据行数的查询请求,所述查询请求用于请求查询分布式数据库的第一数据表的数据行数;
生成模块,用于生成聚集操作的分布式执行计划,所述分布式执行计划用于指示各计算节点扫描所述第一数据表关联的元数据表中记录的所有数据文件中的行数,并对各数据文件中的行数进行累加得到所述计算节点对应的总行数;
第一发送模块,用于向所述各计算节点发送所述分布式执行计划;
第二接收模块,用于接收所述各计算节点返回的所述计算节点对应的总行数;
第一处理模块,用于对接收到的所有计算节点返回的总行数进行累加,得到所述第一数据表的数据行数;
第二发送模块,用于向所述客户端发送所述第一数据表的数据行数。
7.一种分布式数据库系统,其特征在于,包括:主节点和多个计算节点,所述主节点用于执行权利要求1-5任一项所述的方法的步骤。
8.一种计算机设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述的方法的步骤。
CN202011051532.XA 2020-09-29 2020-09-29 基于分布式数据库的表的数据行数查询方法和装置 Pending CN112182028A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011051532.XA CN112182028A (zh) 2020-09-29 2020-09-29 基于分布式数据库的表的数据行数查询方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011051532.XA CN112182028A (zh) 2020-09-29 2020-09-29 基于分布式数据库的表的数据行数查询方法和装置

Publications (1)

Publication Number Publication Date
CN112182028A true CN112182028A (zh) 2021-01-05

Family

ID=73945985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011051532.XA Pending CN112182028A (zh) 2020-09-29 2020-09-29 基于分布式数据库的表的数据行数查询方法和装置

Country Status (1)

Country Link
CN (1) CN112182028A (zh)

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070276851A1 (en) * 2006-05-02 2007-11-29 International Business Machines Corporation System and method for optimizing federated and ETL'd databases having multidimensionally constrained data
US20070294266A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of time-variant data schemas in data warehouses
CN102323942A (zh) * 2011-09-01 2012-01-18 北京中创信测科技股份有限公司 一种统计查询方法
CN102479217A (zh) * 2010-11-23 2012-05-30 腾讯科技(深圳)有限公司 一种分布式数据仓库中实现计算均衡的方法及装置
CN102521303A (zh) * 2011-11-30 2012-06-27 北京人大金仓信息技术股份有限公司 一种用于列数据库的单表多列序存储方法
CN104063486A (zh) * 2014-07-03 2014-09-24 四川中亚联邦科技有限公司 一种大数据分布式存储方法和系统
US8862606B1 (en) * 2011-09-22 2014-10-14 Emc Corporation Executing correlated and multi-row subqueries in a MPP database
CN104123374A (zh) * 2014-07-28 2014-10-29 北京京东尚科信息技术有限公司 分布式数据库中聚合查询的方法及装置
CN104504154A (zh) * 2015-01-14 2015-04-08 曙光信息产业(北京)有限公司 一种数据聚合查询的方法及装置
CN106250519A (zh) * 2016-08-04 2016-12-21 曙光信息产业(北京)有限公司 用于并行数据库的数据查询方法和装置
US20170329828A1 (en) * 2016-05-13 2017-11-16 Ayla Networks, Inc. Metadata tables for time-series data management
WO2018040722A1 (zh) * 2016-08-31 2018-03-08 华为技术有限公司 表数据查询方法及装置
US10146822B1 (en) * 2015-12-30 2018-12-04 EMC IP Holding Company LLC Automated script generator for processing storage system data files
CN109918450A (zh) * 2019-03-20 2019-06-21 江苏瑞中数据股份有限公司 基于分析类场景下的分布式并行数据库及存储方法
CN110188093A (zh) * 2019-05-21 2019-08-30 江苏锐天信息科技有限公司 一种基于大数据平台针对ais信息源的数据挖掘系统
US10776355B1 (en) * 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
CN112434056A (zh) * 2020-10-12 2021-03-02 南京江北新区生物医药公共服务平台有限公司 一种详情数据的查询方法及装置

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070276851A1 (en) * 2006-05-02 2007-11-29 International Business Machines Corporation System and method for optimizing federated and ETL'd databases having multidimensionally constrained data
US20070294266A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of time-variant data schemas in data warehouses
CN102479217A (zh) * 2010-11-23 2012-05-30 腾讯科技(深圳)有限公司 一种分布式数据仓库中实现计算均衡的方法及装置
CN102323942A (zh) * 2011-09-01 2012-01-18 北京中创信测科技股份有限公司 一种统计查询方法
US8862606B1 (en) * 2011-09-22 2014-10-14 Emc Corporation Executing correlated and multi-row subqueries in a MPP database
CN102521303A (zh) * 2011-11-30 2012-06-27 北京人大金仓信息技术股份有限公司 一种用于列数据库的单表多列序存储方法
CN104063486A (zh) * 2014-07-03 2014-09-24 四川中亚联邦科技有限公司 一种大数据分布式存储方法和系统
CN104123374A (zh) * 2014-07-28 2014-10-29 北京京东尚科信息技术有限公司 分布式数据库中聚合查询的方法及装置
CN104504154A (zh) * 2015-01-14 2015-04-08 曙光信息产业(北京)有限公司 一种数据聚合查询的方法及装置
US10146822B1 (en) * 2015-12-30 2018-12-04 EMC IP Holding Company LLC Automated script generator for processing storage system data files
US20170329828A1 (en) * 2016-05-13 2017-11-16 Ayla Networks, Inc. Metadata tables for time-series data management
CN106250519A (zh) * 2016-08-04 2016-12-21 曙光信息产业(北京)有限公司 用于并行数据库的数据查询方法和装置
WO2018040722A1 (zh) * 2016-08-31 2018-03-08 华为技术有限公司 表数据查询方法及装置
US10776355B1 (en) * 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
CN109918450A (zh) * 2019-03-20 2019-06-21 江苏瑞中数据股份有限公司 基于分析类场景下的分布式并行数据库及存储方法
CN110188093A (zh) * 2019-05-21 2019-08-30 江苏锐天信息科技有限公司 一种基于大数据平台针对ais信息源的数据挖掘系统
CN112434056A (zh) * 2020-10-12 2021-03-02 南京江北新区生物医药公共服务平台有限公司 一种详情数据的查询方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
王毅;刘长城;马建庆;: "一种面向大规模数据处理的数据库引擎", 计算机工程, no. 11 *
盛想: "HAWQ系统中数据读取加速子系统的设计与实现", 中国优秀硕士学位论文全文数据库信息科技辑, pages 138 - 278 *
苟和平;景永霞;李勇;: "信息集成系统中的缓存数据更新方案", 佳木斯大学学报(自然科学版), no. 03 *
邓曦, 卢正鼎, 张巍, 张立明: "多数据库系统查询优化算法的研究", 小型微型计算机系统, no. 03 *

Similar Documents

Publication Publication Date Title
CN107247808B (zh) 一种分布式NewSQL数据库系统及图片数据查询方法
JP3914662B2 (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
CN110990402B (zh) 由行存储到列存储的格式转化方法、查询方法及装置
KR20170024039A (ko) 유연한 스키마를 사용한 데이터 관리
CN104765731A (zh) 数据库查询优化方法和设备
CN105373541A (zh) 数据库的数据操作请求的处理方法和系统
CN109885585B (zh) 支持存储过程、触发器与视图的分布式数据库系统和方法
CN112579610A (zh) 多数据源结构分析方法、系统、终端设备及存储介质
CN110134335A (zh) 一种基于键值对的rdf数据管理方法、装置及存储介质
Kim et al. Type-based semantic optimization for scalable RDF graph pattern matching
CN116431598A (zh) 一种基于Redis的关系型数据库全量内存化的方法
CN111078705A (zh) 基于Spark平台建立数据索引方法及数据查询方法
CN114116767A (zh) 数据库sql查询语句转换方法及装置
US20230401209A1 (en) Columnar Cache Query Using Hybrid Query Execution Plan
US8548980B2 (en) Accelerating queries based on exact knowledge of specific rows satisfying local conditions
WO2020192663A1 (zh) 一种数据管理方法及相关设备
CN111125216A (zh) 数据导入Phoenix的方法及装置
CN112182028A (zh) 基于分布式数据库的表的数据行数查询方法和装置
CN115374121A (zh) 数据库索引的生成方法、机器可读存储介质与计算机设备
CN115495462A (zh) 批量数据更新方法、装置、电子设备和可读存储介质
US20200301922A1 (en) Multiform persistence abstraction
CN114816247A (zh) 一种逻辑数据获取方法及装置
JP2004192657A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
Unbehauen et al. SPARQL Update queries over R2RML mapped data sources
CN110647535A (zh) 一种将业务数据更新至Hive的方法、终端及存储介质

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