CN113254493A - 分布式数据库的数据分组统计方法及*** - Google Patents

分布式数据库的数据分组统计方法及*** Download PDF

Info

Publication number
CN113254493A
CN113254493A CN202010752066.1A CN202010752066A CN113254493A CN 113254493 A CN113254493 A CN 113254493A CN 202010752066 A CN202010752066 A CN 202010752066A CN 113254493 A CN113254493 A CN 113254493A
Authority
CN
China
Prior art keywords
data
grouping
fragmentation
target
grouped
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
CN202010752066.1A
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.)
Shenzhen Hanyun Technology Co ltd
Original Assignee
Shenzhen Hanyun 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 Shenzhen Hanyun Technology Co ltd filed Critical Shenzhen Hanyun Technology Co ltd
Priority to CN202010752066.1A priority Critical patent/CN113254493A/zh
Publication of CN113254493A publication Critical patent/CN113254493A/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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • 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

Landscapes

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

Abstract

本申请适用于数据分析技术领域,尤其涉及一种分布式数据库的数据分组统计方法及***。该方法根据服务器与N个数据节点对分布在N个数据节点中的待分组数据集进行数据分组统计,通过服务器获取待分组数据集的数据分片类型,使N个数据节点根据待分组数据集的数据分片类型进行一次分组统计或两次分组统计,服务器再对N个数据节点的分组统计结果进行统计,实现对分布在N个数据节点的待分组数据集的数据分组统计,应对大量数据时无需通过服务器进行分组,避免了服务器从N个数据节点调取大量数据构成的待分组数据集,减少了服务器的响应时间,提高了服务器分组统计效率。

Description

分布式数据库的数据分组统计方法及***
技术领域
本申请属于数据分析技术领域,尤其涉及一种分布式数据库的数据分组统计方法及***。
背景技术
分布式数据库是将待分组数据集分散存储在多个数据节点(DataNode,DN)中,在对分散在多个DN上的数据进行分组统计时,需要服务器从所有DN上读取符合条件的数据,然后在服务器中进行分组统计。然而,在待分组数据集较大时,通过服务器进行分组统计,响应时间较长,导致服务器分组统计效率较低。
发明内容
本申请实施例提供了一种分布式数据库的数据分组统计方法及***,可以解决现有技术在对较大数据集进行分组统计时,服务器的分组统计效率较低的问题。
第一方面,本申请实施例提供了一种分布式数据库的数据分组统计方法,所述数据分组统计方法应用于分布式数据库的数据分组统计***,所述数据分组统计***包括服务器和N个数据节点,N为大于1的整数,待分组数据集分布于所述N个数据节点,所述数据分组统计方法包括:
所述服务器获取待分组数据集的数据分片类型;
所述N个数据节点根据所述待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集,其中,一个数据节点的本地数据集为所述待分组数据集分布在该数据节点的数据集,一个数据节点对应一个所述目标分组统计结果集;
所述服务器对所述N个目标分组统计结果集进行统计,确定目标统计结果。
第二方面,本申请实施例提供了一种分布式数据库的数据分组统计***,所述数据分组统计***包括服务器和N个数据节点,N为大于1的整数,待分组数据集分布于所述N个数据节点;
所述服务器,用于获取待分组数据集的数据分片类型;
所述N个数据节点,用于根据所述待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集,其中,一个数据节点的本地数据集为所述待分组数据集分布在该数据节点的数据集,一个数据节点对应一个所述目标分组统计结果集;
所述服务器,用于对所述N个目标分组统计结果集进行统计,确定目标统计结果。
本申请实施例与现有技术相比存在的有益效果是:本申请根据服务器与N个数据节点对分布在N个数据节点中的待分组数据集进行数据分组统计,通过服务器获取待分组数据集的数据分片类型,使N个数据节点根据待分组数据集的数据分片类型进行一次分组统计或两次分组统计,服务器再对N个数据节点的分组统计结果进行统计,可得到最终的统计结果。即本申请可通过N个数据节点对待分组数据集进行分组统计,应对大量数据时无需通过服务器进行分组,避免了服务器从N个数据节点调取大量数据构成的待分组数据集,减少了服务器的响应时间,提高了服务器分组统计效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的分布式数据库的数据分组统计方法的流程示意图;
图2是本申请实施例一提供的哈希分片数据分组统计的流程示意图;
图3是本申请实施例二提供的分布式数据库的数据分组统计方法的流程示意图;
图4是本申请实施例二提供的非哈希分片大数据分组统计的流程示意图;
图5是本申请实施例二提供的非哈希分片小数据分组统计的流程示意图;
图6是本申请实施例二提供的类归并分组统计方法的流程示意图;
图7是本申请实施例三提供的分布式数据库的数据分组统计***的网络架构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的一种分布式数据库的数据分组统计方法可以应用于桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
参见图1,是本申请实施例一提供的一种分布式数据库的数据分组统计方法的流程示意图,该数据分组统计方法可用于分布式数据库的数据分组统计***,该数据分组统计***包括服务器和N个数据节点,N为大于1的整数,如图1所示,该数据分组统计方法可以包括以下步骤:
步骤S101,服务器获取待分组数据集的数据分片类型。
其中,待分组数据集分布于N个数据节点,待分组数据集包括M种字段集,M为大于或等于1的整数,如图2所示,DN1(数据节点1)上的待分组数据集(DN1的原始数据)中待分组数据集的字段集包括姓名(张三、李四等)、班级(一班、二班)、课程(语文、数学)和分数(90、96等)。
待分组数据集可以是以数据表的形式分布于N个数据节点,数据表的属性包括数据分片类型等属性信息,服务器可以通过获取待分组数据集对应的数据表的属性,得到待分组数据集的数据分片类型,例如,服务器向任意N个数据节点发送获取待分组数据集的属性信息指令,接收到该属性信息指令的数据节点将待分组数据集的属性信息反馈至服务器,实现服务器获取待分组数据集的数据分片类型。
可选的是,上述服务器为调度服务器,该调度服务器与N个数据节点均连接。
步骤S102,N个数据节点根据待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集。
其中,一个数据节点的本地数据集为待分组数据集分布在该数据节点的数据集,N个数据节点对各自的本地数据集进行分组统计,得到各自的目标分组统计结果集,一个数据节点对应一个目标分组统计结果集,N个数据节点即对应N个目标分组统计结果集。
可选的是,N个数据节点根据待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集包括:
N个数据节点在待分组数据集的数据分片类型为哈希分片,且待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集时,对各自的本地数据集进行分组统计,得到N个目标分组统计结果集。
其中,服务器在获取待分组数据集的数据分片类型之后,检测待分组数据集的数据分片类型是否为哈希分片;若待分组数据集的数据分片类型为哈希分片,则检测待分组数据集的哈希分片的分片字段集是否属于目标分片字段集的子集。
目标分片字段集为M种字段集中的至少一种,例如,字段集包括姓名、班级、课程和分数,目标分片字段集可以为班级和课程,目标分片字段集的子集为班级或课程,若待分组数据集为哈希分片时,哈希分片的分片字段集为班级,则待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集,若待分组数据集为哈希分片时,哈希分片的分片字段集为姓名,则待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集。
在待分组数据集的数据分片类型为哈希分片,且待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集时,服务器向N个数据节点发送第一结果信息,N个数据节点在收到第一结果信息后,对各自的本地数据集进行分组统计,得到N个目标分组统计结果集,其中,第一结果信息可以是指待分组数据集的数据分片类型为哈希分片,且待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集对应的信息。
如图2所示是待分组数据集为哈希分片,且哈希分片的分片字段集属于目标分片字段集的子集时数据分组统计的流程示意图,其中,哈希分片的分片字段集为班级,每个数据节点对自身的本地数据集(图2中的原始数据)按照“班级”和“课程”进行分组统计,统计结果为“班级、课程、总分数和平均分数”,d1、d2、d3分别表示DN1(数据节点1)、DN2(数据节点2)、DN3(数据节点3)的目标分组统计结果集,将所有的目标分组统计结果集汇集在一起即为目标统计结果。
可选的是,数据分组统计方法还包括:
服务器检测待分组数据集的数据分片类型是否为哈希分片;
若待分组数据集的数据分片类型为哈希分片,则检测待分组数据集的哈希分片的分片字段集是否属于目标分片字段集的子集,得到第一检测结果,并将第一检测结果发送至N个数据节点;
若待分组数据集的数据分片类型不为哈希分片,则得到第二检测结果,并将第二检测结果发送至N个数据节点;
其中,第一检测结果包括待分组数据集的数据分片类型为哈希分片且待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集,以及待分组数据集的数据分片类型为哈希分片且待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集,第二检测结果是指待分组数据集的数据分片类型不为哈希分片。
其中,服务器将第一检测结果或者第二检测结果发送给数据节点,数据节点根据第一检测结果或者第二检测结果中的信息执行相应的步骤。
步骤S103,服务器对N个目标分组统计结果集进行汇集,确定目标统计结果。
其中,在N个数据节点得到各自的目标分组统计结果集之后,将目标分组统计结果集发送至服务器,服务器对N个目标分组统计结果集进行汇集,例如,将N个目标分组统计结果集进行整合,得到目标统计结果。在一个实施方式中,服务器向数据节点发送目标分组统计结果集获取指令,等待该数据节点分组统计完成得到目标分组统计结果集,该数据节点响应目标分组统计结果集获取指令,将目标分组统计结果集反馈至服务器。
本申请实施例可通过N个数据节点对待分组数据集进行分组统计,应对大量数据时无需通过服务器进行分组,避免了服务器从N个数据节点调取大量数据构成的待分组数据集,减少了服务器的响应时间,提高了服务器分组统计效率。
参见图3,是本申请实施例二提供的一种分布式数据库的数据分组统计方法的流程示意图,如图3所示,该数据分组统计方法可以包括以下步骤:
步骤S301,服务器获取待分组数据集的数据分片类型。
步骤S302,N个数据节点在待分组数据集的数据分片类型不为哈希分片,或者待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集时,对各自的本地数据集进行第一次分组统计,得到N个初始分组统计结果集。
其中,服务器在获取待分组数据集的数据分片类型之后,检测待分组数据集的数据分片类型是否为哈希分片;若待分组数据集的数据分片类型为哈希分片,则检测待分组数据集的哈希分片的分片字段集是否属于目标分片字段集的子集。
在待分组数据集的数据分片类型为哈希分片,且待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集,或者待分组数据集的数据分片类型不为哈希分片时,服务器向N个数据节点发送第二结果信息,N个数据节点在收到第二结果信息后,对各自的本地数据集进行分组统计,得到N个初始分组统计结果集,其中,第二结果信息可以是指待分组数据集的数据分片类型为哈希分片,且待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集,或者待分组数据集的数据分片类型不为哈希分片对应的信息。
如图4所示是待分组数据集不为哈希分片的流程示意图,其中,每个数据节点对自身的本地数据集(图4中的原始数据)按照“班级”和“课程”进行分组统计,统计结果为“班级、课程、总分数和个数”,d1表示DN1(数据节点1)的初始分组统计结果集、d2表示DN2(数据节点2)的初始分组统计结果集、d3表示DN3(数据节点3)的初始分组统计结果集。
步骤S303,N个数据节点在N个初始分组统计结果集的总行数大于行数阈值时,根据目标分片字段集,对各自的初始分组统计结果集进行哈希分片,得到各自的哈希分片结果集。
其中,在N个数据节点得到各自的初始分组统计结果集之后,根据N个初始分组统计结果集的总行数,确定是否需要对各自的初始分组统计结果集进行哈希分片。由于总行数较大,初始分组统计结果集的数据量较大,为了保证统计的效率,当总行数大于行数阈值时,对各自的初始分组统计结果集进行哈希分片,得到哈希分片结果集,一个数据节点对其自身的哈希分片结果集进行分组统计,得到该数据节点的目标分组统计结果集。
可选的是,N个数据节点根据目标分片字段集,对各自的初始分组统计结果集进行哈希分片,得到各自的哈希分片结果集包括:
N个数据节点根据目标分片字段集,利用哈希分片将各自的初始分组统计结果集中的每行数据分发至对应的数据节点,得到各自的哈希分片结果集。
其中,初始分组统计结果集中的每行数据可以是一组初始分组统计结果,如图4所示,DN1的初始分组统计结果集d1中“一班语文94 1”为一行数据,初始分组统计结果集d1中包括6行数据,根据目标分片字段集将每行数据对应分发至对应的数据节点。
如图4所示,若d1、d2、d3的初始分组统计结果集的总行数大于行数阈值时,数据节点对自身的初始分组统计结果集进行哈希分片,图4中DN1将“四班语文90 1”和“四班数学76 1”分发至DN2,最终,3个数据节点中的哈希分片结果集为以“班级”分组类别的哈希分片。
可选的是,N个数据节点根据目标分片字段集,利用哈希分片将各自的初始分组统计结果集中的每行数据分发至对应的数据节点,得到各自的哈希分片结果集包括:
N个数据节点获取各自的初始分组统计结果集的每行数据中目标数据的哈希值,并对各自的初始分组统计结果集的每行数据中目标数据的哈希值求余数,将每行数据分发至N个数据节点中与余数对应的数据节点,得到各自的哈希分片结果集,其中,目标数据是指每行数据中字段集为目标分片字段集的数据。
其中,数据节点读取其中的一行数据,并计算该行数据组中目标数据的哈希值,对哈希值求余,根据余数决定哈希值对应的一行数据分发至哪个数据节点,可以根据需求将哈希值相近的目标数据分发至一个数据节点中,例如,将“一班”和“二班”的数据分发至一个数据节点。目标数据可以是指该行数据组中字段集为目标分片字段集的数据,例如,该行数据组为“一班语文94 1”,目标分片字段集为班级,则该行数据组的目标数据为“一班”,计算“一班”的哈希值,该哈希值与数据节点1对应,则数据节点将“一班语文94 1”分发至数据节点1,如图4所示,“一班”和“二班”的哈希值均对应DN1,DN2将“一班数学98 1”、“二班语文80 1”和“二班数学86 1”三个数据分发至DN1,结合DN1上保留的“一班语文94 1”、“二班语文90 1”和“二班数学96 1”,构成DN1的哈希分片结果集。
步骤S304,N个数据节点对各自的哈希分片结果集进行第二次分组统计,得到N个目标分组统计结果集。
其中,一个数据节点对其自身的哈希分片结果集进行分组统计,该分组统计可以采用“类归并分组统计”算法,得到该数据节点的目标分组统计结果集,如图4所示,DN1对自身的哈希分片结果集进行分组统计得到ds1,ds1为DN1的目标分组统计结果集,ds2为DN2的目标分组统计结果集,ds3为DN3的目标分组统计结果集,服务器将ds1、ds2、ds3汇集在一起即为目标统计结果。
步骤S305,服务器对N个目标分组统计结果集进行汇集,确定目标统计结果。
其中,步骤S301、步骤S305与上述实施例一中步骤S101、步骤S103的内容相同,可参考步骤S101、步骤S103的描述,在此不再赘述。
可选的是,该数据分组统计方法还包括:
服务器在总行数小于或等于行数阈值时,对N个初始分组统计结果集进行分组统计,得到目标统计结果。
其中,在N个数据节点得到各自的初始分组统计结果集之后,根据N个初始分组统计结果集的总行数,确定是否需要对各自的初始分组统计结果集进行哈希分片。由于总行数较小,初始分组统计结果集的数据量不大,可以直接采用服务器对初始分组统计结果集进行分组统计,既可以保证分组统计性能,还可以节省服务器与数据节点之间的通信时间。
如图5所示是待分组数据集不为哈希分片的流程示意图,其中,每个数据节点对自身的本地数据集(图5中的原始数据)按照“班级”和“课程”进行分组统计,统计结果为“班级、课程、总分数和个数”,d1表示DN1(数据节点1)的初始分组统计结果集、d2表示DN2(数据节点2)的初始分组统计结果集、d3表示DN3(数据节点3)的初始分组统计结果集,若d1、d2、d3的初始分组统计结果集的总行数小于或等于行数阈值时,服务器直接对d1、d2、d3进行分组统计,得到目标统计结果。
可选的是,对N个初始分组统计结果集进行分组统计,得到目标统计结果包括:
按照分片字段集升序,对N个初始分组统计结果集中每行数据进行排序;
获取N个初始分组统计结果集的N个首行数据;
将N个首行数据的中分片字段集最小的数据归为同一分组并进行统计,得到一个分组统计结果;
将分片字段集最小的数据从对应的初始分组统计结果集中移除,并将对应的初始分组统计结果集中分片字段集最小的数据后的数据作为首行数据;
遍历N个初始分组统计结果集的每行数据,得到所有的分组统计结果即为目标统计结果。
服务器对d1、d2、d3进行分组统计,该分组统计可以采用“类归并分组统计”算法处理,如图6所示,初始分组统计结果集中的数据按“班级”和“课程”升序排序,利用类似“归并”的思想进行数据处理:
(1)步骤一:分别读取数据集d1、d2、d3的首行数据,查找基于“班级”和“课程”进行数据比较时,获得的最小的数据。
若基于“班级”比较,可以将“一班”作为最小的数据,若基于“课程”比较,可以将“语文”作为最小的数据,若基于“班级”和“课程”比较,如图6所示,最小的数据为d1的“一班语文94 1”,将其视为一个分组进行统计:总分94,人数1人,故平均分=94/1=94,将该分组统计结果“一班语文9494”输出到结果集,然后从d1中移走首行数据。
(2)步骤二:分别读取数据集d1、d2、d3的首行数据,查找基于“班级”和“课程”进行数据比较时,获得的最小的数据。
若基于“班级”和“课程”比较,如图6所示,最小的数据为d2的“一班数学98 1”,将其视为一个分组进行统计:总分98,人数1人,故平均分=98/1=98,将该分组统计结果“一班数学98 98”输出到结果集,然后从d2中移走首行数据。
(3)步骤三:分别读取数据集d1、d2、d3的首行数据,查找基于“班级”和“课程”进行数据比较时,获得的最小的数据。
若基于“班级”和“课程”比较,如图6所示,最小的数据为d1的“二班语文90 1”和来自d2的“二班语文80 1”,将这两条数据视为一个分组进行统计:总分90+80=170,人数1+1=2人,故平均分=170/2=85,将该分组统计结果“二班语文170 85”输出到结果集,然后从d1和d2中分别移走首行数据。
依次类推,循环处理d1、d2、d3的首行数据,直至d1、d2、d3的所有数据处理完,将所有移走的首行数据统计在一起即为目标分组结果。
可选的是,该数据分组统计方法还包括:
服务器获取N个初始分组统计结果集的总行数,并判断所述总行数是否大于行数阈值。
其中,在N个数据节点得到各自的初始分组统计结果集之后,每个数据节点可以将自身的初始分组统计结果集的行数发送给服务器,服务器汇总并得到N个初始分组统计结果集的总行数。在一个实施方式中,在数据节点得到初始分组统计结果集之后,数据节点向服务器发送分组统计完成指令,服务器接收分组统计完成指令,并向该数据节点发送行数获取指令,数据节点根据行数获取指令,计算自身的初始分组统计结果集的行数,并将行数反馈至服务器。
本申请实施例可通过N个数据节点实现对非哈希分布在N个数据节点的待分组数据集的数据分组统计,应对大量数据时无需通过服务器进行分组,避免了服务器从N个数据节点调取大量数据构成的待分组数据集,减少了服务器的响应时间,提高了服务器分组统计效率。
对应于上文实施例的数据分组统计方法,图7示出了本申请实施例三提供的分布式数据库的数据分组统计***的网络架构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
参见图7,该数据分组统计***包括:服务器和N个数据节点,N为大于1的整数,待分组数据集分布于N个数据节点;
服务器,用于获取待分组数据集的数据分片类型;
N个数据节点,用于根据待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集,其中,一个数据节点的本地数据集为待分组数据集分布在该数据节点的数据集,一个数据节点对应一个目标分组统计结果集;
服务器,用于对N个目标分组统计结果集进行汇集,确定目标统计结果。
可选的是,N个数据节点具体用于:
在待分组数据集的数据分片类型为哈希分片,且待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集时,对各自的本地数据集进行分组统计,得到N个目标分组统计结果集。
可选的是,N个数据节点具体用于:
在待分组数据集的数据分片类型不为哈希分片,或者待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集时,对各自的本地数据集进行分组统计,得到N个初始分组统计结果集;
在N个初始分组统计结果集的总行数大于行数阈值时,根据目标分片字段集,对各自的初始分组统计结果集进行哈希分片,得到各自的哈希分片结果集;
对各自的哈希分片结果集进行分组统计,得到N个目标分组统计结果集。
可选的是,服务器还用于:
在总行数小于或等于行数阈值时,对N个初始分组统计结果集进行分组统计,得到目标统计结果。
可选的是,在总行数小于或等于行数阈值时,服务器具体用于:
按照分片字段集升序,对N个初始分组统计结果集中每行数据进行排序;
获取N个初始分组统计结果集的N个首行数据;
将N个首行数据的中分片字段集最小的数据归为同一分组并进行统计,得到一个分组统计结果;
将分片字段集最小的数据从对应的初始分组统计结果集中移除,并将对应的初始分组统计结果集中分片字段集最小的数据后的数据作为首行数据;
遍历N个初始分组统计结果集的每行数据,得到所有的分组统计结果即为目标统计结果。
可选的是,N个数据节点具体用于:
根据目标分片字段集,利用哈希分片将各自的初始分组统计结果集中的每行数据分发至对应的数据节点,得到各自的哈希分片结果集。
可选的是,N个数据节点具体用于:
获取各自的初始分组统计结果集的每行数据中目标数据的哈希值,并对各自的初始分组统计结果集的每行数据中目标数据的哈希值求余数,将每行数据分发至N个数据节点中与余数对应的数据节点,得到各自的哈希分片结果集,其中,目标数据是指所述每行数据中字段集为目标分片字段集的数据。
可选的是,服务器还用于:
获取N个初始分组统计结果集的总行数,并判断所述总行数是否大于行数阈值。
可选的是,服务器还用于:
检测待分组数据集的数据分片类型是否为哈希分片;
若待分组数据集的数据分片类型为哈希分片,则检测待分组数据集的哈希分片的分片字段集是否属于目标分片字段集的子集,得到第一检测结果,并将第一检测结果发送至N个数据节点;
若待分组数据集的数据分片类型不为哈希分片,则得到第二检测结果,并将第二检测结果发送至N个数据节点;
其中,第一检测结果包括待分组数据集的数据分片类型为哈希分片且待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集,以及待分组数据集的数据分片类型为哈希分片且待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集,第二检测结果是指待分组数据集的数据分片类型不为哈希分片。
需要说明的是,上述服务器与N个数据节点之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种分布式数据库的数据分组统计方法,所述数据分组统计方法应用于分布式数据库的数据分组统计***,所述数据分组统计***包括服务器和N个数据节点,N为大于1的整数,其特征在于,待分组数据集分布于所述N个数据节点,所述数据分组统计方法包括:
所述服务器获取待分组数据集的数据分片类型;
所述N个数据节点根据所述待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集,其中,一个数据节点的本地数据集为所述待分组数据集分布在该数据节点的数据集,一个数据节点对应一个所述目标分组统计结果集;
所述服务器对所述N个目标分组统计结果集进行统计,确定目标统计结果。
2.根据权利要求1所述的数据分组统计方法,其特征在于,所述N个数据节点根据所述待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集包括:
所述N个数据节点在所述待分组数据集的数据分片类型为哈希分片,且所述待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集时,对各自的本地数据集进行分组统计,得到N个目标分组统计结果集。
3.根据权利要求1所述的数据分组统计方法,其特征在于,所述N个数据节点根据所述待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集包括:
所述N个数据节点在所述待分组数据集的数据分片类型不为哈希分片,或者所述待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集时,对各自的本地数据集进行第一次分组统计,得到N个初始分组统计结果集;
所述N个数据节点在所述N个初始分组统计结果集的总行数大于行数阈值时,根据所述目标分片字段集,对各自的初始分组统计结果集进行哈希分片,得到各自的哈希分片结果集;
所述N个数据节点对各自的哈希分片结果集进行第二次分组统计,得到所述N个目标分组统计结果集。
4.根据权利要求3所述的数据分组统计方法,其特征在于,所述数据分组统计方法还包括:
所述服务器在所述总行数小于或等于行数阈值时,对所述N个初始分组统计结果集进行分组统计,得到目标统计结果。
5.根据权利要求4所述的数据分组统计方法,其特征在于,所述对所述N个初始分组统计结果集进行分组统计,得到目标统计结果包括:
按照分片字段集升序,对所述N个初始分组统计结果集中每行数据进行排序;
获取所述N个初始分组统计结果集的N个首行数据;
将所述N个首行数据的中分片字段集最小的数据归为同一分组并进行统计,得到一个分组统计结果;
将所述分片字段集最小的数据从对应的初始分组统计结果集中移除,并将所述对应的初始分组统计结果集中所述分片字段集最小的数据后的数据作为首行数据;
遍历所述N个初始分组统计结果集的每行数据,得到所有的分组统计结果即为目标统计结果。
6.根据权利要求3所述的数据分组统计方法,其特征在于,所述N个数据节点根据所述目标分片字段集,对各自的初始分组统计结果集进行哈希分片,得到各自的哈希分片结果集包括:
所述N个数据节点根据所述目标分片字段集,利用哈希分片将各自的初始分组统计结果集中的每行数据分发至对应的数据节点,得到各自的哈希分片结果集。
7.根据权利要求6所述的数据分组统计方法,其特征在于,所述N个数据节点根据所述目标分片字段集,利用哈希分片将各自的初始分组统计结果集中的每行数据分发至对应的数据节点,得到各自的哈希分片结果集包括:
所述N个数据节点获取各自的初始分组统计结果集的每行数据中目标数据的哈希值,并对各自的初始分组统计结果集的每行数据中目标数据的哈希值求余数,将所述每行数据分发至所述N个数据节点中与所述余数对应的数据节点,得到各自的哈希分片结果集,其中,所述目标数据是指所述每行数据中字段集为所述目标分片字段集的数据。
8.根据权利要求3所述的数据分组统计方法,所述数据分组统计方法还包括:
所述服务器获取所述N个初始分组统计结果集的总行数,并判断所述总行数是否大于行数阈值。
9.根据权利要求2或3所述的数据分组统计方法,其特征在于,所述数据分组统计方法还包括:
所述服务器检测所述待分组数据集的数据分片类型是否为哈希分片;
若所述待分组数据集的数据分片类型为哈希分片,则检测所述待分组数据集的哈希分片的分片字段集是否属于目标分片字段集的子集,得到第一检测结果,并将所述第一检测结果发送至所述N个数据节点;
若所述待分组数据集的数据分片类型不为哈希分片,则得到第二检测结果,并将所述第二检测结果发送至所述N个数据节点;
其中,所述第一检测结果包括所述待分组数据集的数据分片类型为哈希分片且所述待分组数据集的哈希分片的分片字段集属于目标分片字段集的子集,以及所述待分组数据集的数据分片类型为哈希分片且所述待分组数据集的哈希分片的分片字段集不属于目标分片字段集的子集,所述第二检测结果是指所述待分组数据集的数据分片类型不为哈希分片。
10.一种分布式数据库的数据分组统计***,所述数据分组统计***包括服务器和N个数据节点,N为大于1的整数,其特征在于,待分组数据集分布于所述N个数据节点;
所述服务器,用于获取待分组数据集的数据分片类型;
所述N个数据节点,用于根据所述待分组数据集的数据分片类型,对各自的本地数据集进行一次分组统计或两次分组统计,得到N个目标分组统计结果集,其中,一个数据节点的本地数据集为所述待分组数据集分布在该数据节点的数据集,一个数据节点对应一个所述目标分组统计结果集;
所述服务器,用于对所述N个目标分组统计结果集进行统计,确定目标统计结果。
CN202010752066.1A 2020-07-30 2020-07-30 分布式数据库的数据分组统计方法及*** Pending CN113254493A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010752066.1A CN113254493A (zh) 2020-07-30 2020-07-30 分布式数据库的数据分组统计方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010752066.1A CN113254493A (zh) 2020-07-30 2020-07-30 分布式数据库的数据分组统计方法及***

Publications (1)

Publication Number Publication Date
CN113254493A true CN113254493A (zh) 2021-08-13

Family

ID=77220104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010752066.1A Pending CN113254493A (zh) 2020-07-30 2020-07-30 分布式数据库的数据分组统计方法及***

Country Status (1)

Country Link
CN (1) CN113254493A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327261A (zh) * 2021-12-06 2022-04-12 神州融安数字科技(北京)有限公司 数据文件的存储方法及数据安全代理

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327261A (zh) * 2021-12-06 2022-04-12 神州融安数字科技(北京)有限公司 数据文件的存储方法及数据安全代理

Similar Documents

Publication Publication Date Title
US11863439B2 (en) Method, apparatus and storage medium for application identification
CN111740950A (zh) 一种SDN环境DDoS攻击检测防御方法
CN110505179A (zh) 一种网络异常流量的检测方法及***
US11706114B2 (en) Network flow measurement method, network measurement device, and control plane device
WO2021022875A1 (zh) 数据的分布式存储方法及***
CN111507479B (zh) 特征分箱方法、装置、设备及计算机可读存储介质
CN113987002A (zh) 基于海量数据分析平台的数据交换方法
CN112543145A (zh) 发送数据的设备节点通信路径选择方法及装置
WO2024083270A1 (zh) 光伏设备搜索方法、管理模块、***及存储介质
CN113254493A (zh) 分布式数据库的数据分组统计方法及***
CN107483310B (zh) 一种终端与转发节点之间组网的方法和***
CN116980281A (zh) 节点选取方法、装置、第一节点、存储介质及程序产品
CN112019589B (zh) 一种多层级负载均衡数据包处理方法
CN104133907A (zh) 一种云计算数据自动分类统计的方法和***
WO2017054515A1 (zh) 一种色情图像检测方法和***
CN110061922B (zh) 报文转发方法和装置
CN115086186B (zh) 数据中心网络流量需求数据的生成方法和装置
CN117278660B (zh) 一种基于dpdk技术的流量过滤的协议解析方法
CN116980378B (zh) 一种标记微信群重复消息的方法和***
CN112214290B (zh) 日志信息处理方法、边缘节点、中心节点和***
CN109002448B (zh) 一种报表统计方法、装置及***
CN107517140B (zh) 移动互联网的业务识别方法及装置
CN115941119A (zh) 一种信息传输方法、装置及介质
CN117041009A (zh) 用于告警分析的规则数据库的生成方法及其装置
CN117061534A (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