CN107632779A - 数据处理方法和装置、服务器 - Google Patents

数据处理方法和装置、服务器 Download PDF

Info

Publication number
CN107632779A
CN107632779A CN201710735412.3A CN201710735412A CN107632779A CN 107632779 A CN107632779 A CN 107632779A CN 201710735412 A CN201710735412 A CN 201710735412A CN 107632779 A CN107632779 A CN 107632779A
Authority
CN
China
Prior art keywords
buffer area
record
section
input
capacity
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.)
Granted
Application number
CN201710735412.3A
Other languages
English (en)
Other versions
CN107632779B (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710735412.3A priority Critical patent/CN107632779B/zh
Publication of CN107632779A publication Critical patent/CN107632779A/zh
Application granted granted Critical
Publication of CN107632779B publication Critical patent/CN107632779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例公开了一种数据处理方法和装置、服务器。所述方法应用于服务器;所述服务器包括内存、固态硬盘和机械硬盘;在所述内存中分配有输入缓存区、多个输出缓存区和迁移缓存区;每个输出缓存区对应有特征值,并且在所述固态硬盘对应有段缓存区;每个段缓存区在所述机械硬盘对应有分区文件;所述方法包括:在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;将每个输出缓存区中的记录写入对应的段缓存区;在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。

Description

数据处理方法和装置、服务器
技术领域
本申请涉及计算机技术领域,特别涉及一种数据处理方法和装置、服务器。
背景技术
散列连接是对多数据表中的数据进行连接处理的一种常用方法,是数据库系统中查询处理的关键算法之一。目前的服务器通常单独采用机械硬盘来存储数据表。机械硬盘由于物理结构的限制,存在磁头寻道操作导致的时间延迟,使得I/O吞吐量较低。这样,服务器在对机械硬盘中的数据表进行散列连接时,机械硬盘的I/O访问次数较多,I/O访问粒度较小,使得散列连接花费的时间较长。
发明内容
本申请实施例的目的是提供一种数据处理方法和装置、服务器,以提高数据处理速度。
为实现上述目的,本申请实施例提供一种数据处理方法,应用于服务器;所述服务器包括内存、固态硬盘和机械硬盘;在所述内存中分配有输入缓存区、多个输出缓存区和迁移缓存区;每个输出缓存区对应有特征值,并在所述固态硬盘对应有段缓存区;每个段缓存区在所述机械硬盘对应有分区文件;每个段缓存区的容量大于对应的输出缓存区的容量;所述机械硬盘中存储有数据表;所述方法包括:在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;将每个输出缓存区中的记录写入对应的段缓存区;在每个段缓存区被写满以后,将该段缓存区中的记录读入所述迁移缓存区,将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。
为实现上述目的,本申请实施例提供一种服务器,包括固态硬盘、机械硬盘和处理器;所述固态硬盘和所述机械硬盘用于存储数据;所述处理器,用于在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;将每个输出缓存区中的记录写入对应的段缓存区;在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件;其中,所述输入缓存区、所述输出缓存区和所述迁移缓存区位于内存;所述段缓存区位于所述固态硬盘;所述数据表和所述分为文件位于所述机械硬盘。
为实现上述目的,本申请实施例提供一种数据处理装置,包括:计算单元,用于在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;其中,所述数据表位于机械硬盘;所述输入缓存区和所述输出缓存区位于内存;段缓存区写入单元;用于将每个输出缓存区中的记录写入对应的段缓存区;其中,所述段缓存区位于固态硬盘;分区文件写入单元,用于在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件;其中,所述分区文件位于固态硬盘。
由以上本申请实施例提供的技术方案可见,本申请实施例中,所述服务器可以包括内存、固态硬盘和机械硬盘。在所述内存中分配有输入缓存区、多个输出缓存区和迁移缓存区;每个输出缓存区对应有特征值;在所述固态硬盘为每个输出缓存区分配有段缓存区;每个段缓存区在所述机械硬盘对应有分区文件;所述段缓存区的容量大于所述输出缓存区;所述机械硬盘中存储有数据表。如此,所述服务器在将所述数据表中的记录读入所述输入缓存区以后,可以计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;可以将每个输出缓存区中的记录写入对应的段缓存区;可以在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。这样,每个段缓存区的容量大于对应的输出缓存区的容量。可以所述段缓存区的容量作为所述服务器对所述机械硬盘的I/O访问粒度。如此,本实施例通过在固态硬盘建立段缓存,减小机械硬盘的I/O访问次数,增加机械硬盘的I/O访问粒度,进而增大了机械硬盘的I/O吞吐量,加快了数据处理速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例中机械硬盘的I/O访问粒度与I/O吞吐量的变化关系图;
图1b为本申请实施例中固态硬盘的I/O访问粒度与I/O吞吐量的变化关系图;
图2为本申请实施例一种数据处理方法的示意图;
图3为本申请实施例一种数据处理方法的流程图;
图4为本申请实施例一种等值连接的示意图;
图5为本申请实施例一种服务器的功能结构示意图;
图6为本申请实施例一种数据处理装置的功能结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
字段一般指数据表中的列。在数据表中,每一列一般称为一个字段。记录一般指数据表中的行。在数据表中,每一行一般称为一个记录。
内存,也称为主存,是指能够与中央处理器(CPU)直接交互数据的存储器。内存可以用于临时存储中央处理器中的数据,以及用于与外存交换的数据。内存具体可以包括静态随机存取内存(SRAM)和动态随机存取内存(DRAM)等。
外存,也称为辅助存储器,是指不能够直接向中央处理器提供数据的存储器。外存与中央处理器间的数据交换通常需要经由内存。外存可以用于持久性的存储数据。外存具体可以包括固态硬盘(Solid State Drive,SSD)、机械硬盘(Hard Disk Drive,HDD)、光盘、U盘等。
通常地,相较于机械硬盘,固态硬盘没有机械运动部件,可以避免磁头寻道操作导致的时间延迟,因而拥有较大的I/O吞吐量和较高的IOPS(Input/Output Operations PerSecond,每秒进行I/O访问的次数)。例如,图1a为某一机械硬盘分别在随机读(RR)、随机写(RW)、顺序读(SR)、顺序写(SW)等4种I/O访问模式下,I/O访问粒度与I/O吞吐量的变化关系图;图1b为某一固态硬盘分别在随机读、随机写、顺序读、顺序写等4种I/O访问模式下,I/O访问粒度与I/O吞吐量的变化关系图。所述I/O访问粒度可以理解为单块硬盘上每次I/O访问的最小单位。根据图1a和图1b的对比可以得到,相较于固态硬盘,机械硬盘的I/O吞吐量较差;在同一I/O访问模式和同一I/O吞吐量的条件下,机械硬盘需要较大的I/O访问粒度;机械硬盘和固态硬盘的I/O吞吐量与I/O访问粒度均正相关;对于机械硬盘,在较大I/O访问粒度的条件下,才能达到较好的I/O吞吐量;对于固态硬盘,在较小I/O访问粒度的条件下,也能够达到较好的I/O吞吐量。
请一并参阅图2和图3。本申请实施例提供一种数据处理方法。所述数据处理方法以服务器为执行主体。所述服务器可以为一个服务器,还可以为包括多个服务器的服务器集群。所述服务器可以为一个具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供支持的软体。
在本实施例中,所述服务器可以包括内存、固态硬盘和机械硬盘等。所述机械硬盘可以存储有待处理的一个或多个数据表。每个数据表可以包括至少一个字段以及至少一个记录。
在本实施例中,在所述内存中可以分配有输入缓存区、多个输出缓存区和迁移缓存区。例如,在所述内存中可以分配有10、11、15个输出缓存区。各个输出缓存区的容量可以相同或不同。每个输出缓存区可以对应有特征值,该特征值可以用于标识该输出缓存区。所述特征值可以为任意实数。例如,在所述内存中分配有3个输出缓存区,所述3个输出缓存区对应的特征值分别为0、1、2。所述迁移缓存区的容量可以大于每个输出缓存区的容量。例如,所述输入缓存区的容量可以为1MB,每个输出缓存区的容量可以为8KB,所述迁移缓存区的容量可以为64MB。
所述服务器可以基于机械硬盘中存储的数据表,在所述内存中分配输入缓存区、多个输出缓存区和迁移缓存区。具体地,所述服务器可以基于所述机械硬盘中存储的数据表,确定输出缓存区的数量、输出缓存区的容量和迁移缓存区的容量;可以基于确定的输出缓存区的容量、确定的输出缓存区的数量和确定的迁移缓存区的容量,在所述内存中分配输入缓存区、多个输出缓存区和迁移缓存区。
具体地,所述服务器可以基于公式来确定输出缓存区的数量。其中,所述N为确定的输出缓存区的数量;所述F为任意1到1.5之间的任意实数,例如可以为1、1.2、1.5等;所述R为机械硬盘中存储的数据表;所述|R|为数据表的数据页数量;所述M表示用于数据处理的内存;所述|M|为用于数据处理的内存容量。需要说明的是,依赖于开发人员的设置,一个数据页的容量可以为4KB、8KB、16KB等;所述|M|可以为所述服务器的内存容量,还可以为所述服务器内存容量的一部分。例如,所述服务器的内存容量可以为8GB,所述|M|可以为4GB或2GB。当然,本领域技术人员应当能够理解,上述用于确定输出缓存区数量的公式仅为示例,在实际上还可以有其它的公式或方法来确定输出缓存区的数量。
具体地,所述服务器可以基于公式|M|=N×|B|+|IB|+|MiB|、机械硬盘I/O吞吐量与I/O访问粒度的对应关系、固态硬盘I/O吞吐量与I/O访问粒度的对应关系,来确定输出缓存区的容量和迁移缓存区的容量。其中,所述M表示用于数据处理的内存;所述|M|为用于数据处理的内容容量;所述N为输出缓存区的数量;所述B表示输出缓存区;所述|B|为输出缓存区的容量;所述IB表示输入缓存区;所述|IB|为输入缓存区的容量;所述MiB表示迁移缓存区;所述|MiB|为迁移缓存区的容量。需要说明的是,所述|IB|可以为指定容量,例如可以为1MB、2MB等。
所述服务器可以将所述|B|作为固态硬盘的I/O访问粒度;可以将所述|MiB|作为机械硬盘的I/O访问粒度;可以将公式|M|=N×|B|+|IB|+|MiB|作为所述|B|和所述|MiB|的约束条件;可以基于机械硬盘I/O吞吐量与I/O访问粒度的对应关系、固态硬盘I/O吞吐量与I/O访问粒度的对应关系,确定出所述|B|和所述|MiB|,以使得所述机械硬盘I/O吞吐量大于或等于第一指定I/O吞吐量,并且所述固态硬盘I/O吞吐量大于或等于第二指定I/O吞吐量。所述第一指定I/O吞吐量例如可以为100MB/Sec,所述第二指定I/O吞吐量例如可以为350MB/Sec。当然,本领域技术人员应当能够理解,上述用于确定输出缓存区容量和迁移缓存区容量的公式仅为示例,在实际上还可以有其它的公式或方法来确定输出缓存区容量和迁移缓存区容量。
在本实施例中,所述服务器可以在所述固态硬盘为每个输出缓存区分配对应的段缓存区。鉴于所述输出缓存区的数量可以为多个,所述段缓存区的数量也可以为多个。各个段缓存区的容量可以相同或不同。每个段缓存区的容量大于对应的输出缓存区的容量,并小于或等于所述迁移缓存区的容量。例如,一个输出缓存区的容量可以为8KB,该输出缓存区对应的段缓存区的容量可以为32MB,所述迁移缓存区的容量可以为64MB。
在本实施例中,所述服务器可以在所述机械硬盘为每个段缓存区建立对应的分区文件。所述分区文件可以用于存储该段缓存区内的数据。所述分区文件例如可以为数据表。当然,所述分区文件还可以为其它形式文件,例如文本。
在本实施例的一个实施方式中,所述输入缓存区可以包括两个子输入缓存区。每个输出缓存区可以包括两个子输出缓存区。所述迁移缓存区可以包括两个子迁移缓存区。每个段缓存区可以包括两个子段缓存区。所述输入缓存区中的两个子输入缓存区的容量可以相同或不同。相类似地,每个输出缓存区中的两个子输出缓存区的容量可以相同或不同;所述迁移缓存区中的两个子迁移缓存区的容量可以相同或不同。
本实施例可以包括以下步骤。
步骤S102:在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区。
在本实施例中,所述服务器可以所述数据表中的记录读入所述输入缓存区;可以计算所述输入缓存区中每个记录的特征值;可以将该记录写入该特征值对应的输出缓存区。
具体地,所述数据表的容量可以小于、等于或大于所述输入缓存区的容量。在所述数据表的容量小于或等于所述输入缓存区的容量时,所述服务器可以将所述数据表中的记录一次全部读入所述输入缓存区;或者,还可以将所述数据表中的记录多次读入所述输入缓存区。在所述数据表的容量大于所述输入缓存区的容量时,所述服务器可以将所述数据表中的记录多次读入所述输入缓存区。例如,所述数据表的容量可以为2MB,具体可以包括512个数据页,每个数据页的容量可以为4KB。所述输入缓存区的容量可以为1MB。那么,所述服务器可以将所述数据表的256个数据页中的记录读入所述输入缓存区;在将所述输入缓存区中的各个记录写入输出缓存区以后,可以将所述数据表中剩余256个数据页中的记录读入所述输入缓存区。
具体地,所述服务器可以计算所述输入缓存区中每个记录的哈希值;可以将所述哈希值与指定数值进行取余数运算;可以将运算结果作为该记录对应的特征值;可以将该记录写入该特征值对应的输出缓存区。所述哈希值可以包括MD5(Message DigestAlgorithm,消息摘要算法)值、SHA1(Secure Hash Algorithm,安全散列算法)值、SHA256、SHA384、SHA512值、和CRC32(Cyclic Redundancy Check,循环冗余校验算法)值等。所述指定数值具体可以为所述输出缓存区的数量。例如,在所述内存中可以分配有输出缓存区B1、输出缓存区B2、输出缓存区B3。所述输出缓存区B1对应的特征值可以为0。所述输出缓存区B2对应的特征值可以为1。所述输出缓存区B3对应的特征值可以为2。所述指定数值可以为3。所述服务器计算所述输入缓存区中一个记录的哈希值为5;可以将所述哈希值5与所述指定数值3进行取余数运算,得到运算结果2;可以将运算结果2作为该记录对应的特征值;可以该记录写入输出缓存区B3。当然,所述指定数值可以为其它的数值,例如可以为所述输出缓存区的数量与自然数1的差值。本领域技术人员应当能够理解,所述服务器还可以采用其它的方式计算所述输入缓存区中每个记录的特征值,本实施例对此并不做具体限定。
步骤S104:将每个输出缓存区中的记录写入对应的段缓存区。
在本实施例中,鉴于每个段缓存区的容量大于对应的输出缓存区的容量,所述服务器可以将每个输出缓存区中的记录写入对应的段缓存区。具体地,所述服务器可以在每个输出缓存区被写满时,将该输出缓存区中的记录写入对应的段缓存区。如此,可以将所述输出缓存区的容量作为所述服务器对所述固态硬盘的I/O访问粒度。当然,鉴于固态硬盘在较小I/O访问粒度的条件下,也可以具有较大的I/O吞吐量。如此,所述服务器还可以在每个输出缓存区没有被写满时,将该输出缓存区中的记录写入对应的段缓存区。例如,所述服务器还可以在每个输出缓存区被写至容量时,将该输出缓存区中的记录写入对应的段缓存区。
在本实施例中,所述服务器在将每个输出缓存区中的记录写入对应的段缓存区以后,可以清除该输出缓存区中的记录。如此,在需要在该输出缓存区写入新的记录时,所述服务器可以直接在该输出缓存区写入新的记录。当然,所述服务器在将每个输出缓存区中的记录写入对应的段缓存区以后,也可以不清除该输出缓存区中的记录。如此,在需要在该输出缓存区写入新的记录时,所述服务器可以使用新的记录覆盖该输出缓存区中的已有记录。
步骤S106:在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。
在本实施例中,鉴于每个段缓存区的容量小于或等于所述迁移缓存区的容量,所述服务器在每个段缓存区被写满时,可以将该段缓存区中的记录读入所述迁移缓存区;继而可以将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。如此,所述服务器可以实现将所述机械硬盘中的数据表划分为多个分区文件。
在本实施例中,可以将所述缓存区的容量(或迁移缓存区的容量)作为所述服务器对所述机械硬盘的访问粒度。机械硬盘的I/O吞吐量与I/O访问粒度正相关。并且对于机械硬盘,增加I/O访问粒度,可以较好的增加I/O吞吐量。因此本实施例可以加快数据表的划分速度。
在本实施例的一个实施方式中,如前所述,所述输入缓存区可以包括两个子输入缓存区;每个输出缓存区可以包括两个子输出缓存区;每个段缓存区可以包括两个子段缓存区;所述迁移缓存区可以包括两个子迁移缓存区。这里为了便于描述,可以将所述输入缓存区的一个子输入缓存区作为第一子输入缓存区,可以将所述输入缓存区的另一个子输入缓存区作为第二子输入缓存区;可以将每个输出缓存区的一个子输出缓存区作为第一子输出缓存区,可以将该输出缓存区的另一个子输出缓存区作为第二子输出缓存区;可以将每个段缓存区的一个子段缓存区作为第一子段缓存区,可以将该段缓存区的另一个子段缓存区作为第二子段缓存区;可以将所述迁移缓存区的一个子迁移缓存区作为第一子迁移缓存区,可以将所述迁移缓存区的另一个子迁移缓存区作为第二子迁移缓存区。
如此,所述服务器可以将所述数据表中的记录读入所述第一子输入缓存区,可以计算所述第一子输入缓存区中每个记录对应的特征值,可以将该记录写入该特征值对应输出缓存区的第一子输出缓存区;针对该特征值对应输出缓存区,可以将该输出缓存区的第二子输出缓存区中的记录,写入该输出缓存区对应段缓存区的第二子段缓存区;针对该输出缓存区对应段缓存区,可以将该段缓存区的第一子段缓存区中的记录写入所述第一子迁移缓存区,可以将所述第一迁移子缓存区中的记录写入该段缓存区对应的分区文件。这样,所述服务器可以并行地对数据进行处理,可以加快数据处理速度。
本领域技术人员应当能够理解,以上的术语第一、第二仅用来描述各种信息,但这些信息并不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。具体地,例如,所述服务器还可以将所述数据表中的其它记录读入所述第二子输入缓存区,可以计算所述第二子输入缓存区中每个记录对应的特征值,可以将该记录写入该特征值对应输出缓存区的第二子输出缓存区;针对该特征值对应输出缓存区,可以将该输出缓存区的第一子输出缓存区中的记录,写入该输出缓存区对应段缓存区的第一子段缓存区;针对该输出缓存区对应段缓存区,可以将该段缓存区的第二子段缓存区中的记录写入所述第二子迁移缓存区,可以将所述第二迁移子缓存区中的记录写入该段缓存区对应的分区文件。
在本实施例中,所述服务器可以包括内存、固态硬盘和机械硬盘。在所述内存中分配有输入缓存区、多个输出缓存区和迁移缓存区;每个输出缓存区对应有特征值;在所述固态硬盘为每个输出缓存区分配有段缓存区;每个段缓存区在所述机械硬盘对应有分区文件;所述段缓存区的容量大于所述输出缓存区;所述机械硬盘中存储有数据表。如此,所述服务器在将所述数据表中的记录读入所述输入缓存区以后,可以计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;可以将每个输出缓存区中的记录写入对应的段缓存区;可以在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。这样,每个段缓存区的容量大于对应的输出缓存区的容量。可以所述段缓存区的容量作为所述服务器对所述机械硬盘的I/O访问粒度。如此,本实施例通过在固态硬盘建立段缓存,增加了机械硬盘的I/O访问粒度,进而增大了机械硬盘的I/O吞吐量,加快了数据处理速度。
另外,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以下以散列连接算法为例,介绍本申请实施例的一个应用场景。为了方便本领域技术人员理解本场景示例,下面先对本场景示例的技术环境进行说明。
在本场景示例中,连接(JOIN)运算通常是指将多个具有相同字段属性的数据表,通过某些条件对这些字段进行约束后,将所述多个数据表并为一个数据表的运算过程。例如,连接运算的一个类型可以为等值连接。所述等值连接通常是指连接条件为相等运算,即,将数据表中具有相等值的相关记录进行连接。具体地,例如,在图4中,将数据表R和数据表S中具有相同字段B的相等值进行连接,得到了数据表O。
数据库系统中实现连接运算的一个算法可以为散列连接算法。所述散列连接算法可以包括简单散列连接算法(Simple Hash Join,SHJ)、Grace散列连接算法(Grace HashJoin,GHJ)、混合散列连接算法(Hybird Hash Join,HHJ)等。
在本场景示例中,所述服务器可以包括内存、固态硬盘和机械硬盘。所述机械硬盘可以存储有数据表R和数据表S。所述数据表R和所述数据表S可以具有相同字段,所述服务器可以将所述相同字段作为指定字段。所述数据表R的数据页的数量可以小于或等于所述数据表S。所述服务器可以基于数据表R,在所述内存中分配输入缓存区、N个输出缓存区和迁移缓存区;可以在固态硬盘为每个输出缓存区分配对应的段缓存区;可以在机械硬盘为每个段缓存区建立对应的分区文件。其中,每个段缓存区的容量大于对应的输出缓存区的容量,并小于或等于所述迁移缓存区的容量;所述N可以为大于1的自然数。
在本场景示例中,基于前述本申请实施例,所述服务器可以将所述数据表R划分为N个分区文件;可以将所述数据表S划分为N个分区文件。具体地,所述服务器可以将数据表R划分为R_Bkt1、R_Bkt2、……、R_Bktn等N个分区文件;可以将数据表S划分为S_Bkt1、S_Bkt2、……、S_Bktn等N个分区文件。其中,分区文件R_Bkt1可以与分区文件S_Bkt1相对应。这里,分区文件R_Bkt1与分区文件S_Bkt1相对应,可以理解为:分区文件R_Bkt1和分区文件S_Bkt1中的记录来自同一段缓存区;或者,来自同一输出缓存区。相类似地,分区文件R_Bkt2可以与分区文件S_Bkt2相对应;分区文件R_Bktn可以与分区文件S_Bktn相对应。
如此,所述服务器可以将分区文件R_Bkt1中的各个记录读入内存。所述服务器可以将分区文件S_Bkt1中的记录逐一读入内存;并可以将读入内存的该记录在指定字段的数值,与分区文件R_Bkt1中每个记录在指定字段的数值进行比对;在二者相等时,可以建立二者之间的连接关系。相类似地,所述服务器还可以将分区文件R_Bkt2中的各个记录读入内存。所述服务器可以将分区文件S_Bkt2中的记录逐一读入内存;并可以将读入内存的该记录在指定字段的数值,与分区文件R_Bkt2中每个记录在指定字段的数值进行比对;在二者相等时,可以建立二者之间的连接关系。相类似地,所述服务器还可以将分区文件R_Bktn中的各个记录读入内存。所述服务器可以将分区文件S_Bktn中的记录逐一读入内存;并可以将读入内存的该记录在指定字段的数值,与分区文件R_Bktn中每个记录在指定字段的数值进行比对;在二者相等时,可以建立二者之间的连接关系。
请参阅图5。本申请实施例还提供一种服务器。所述服务器可以包括存储器和处理器。
在本实施例中,所述存储器可以包括固态硬盘和机械硬盘。所述固态硬盘和所述机械硬盘可以用于存储数据。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本实施例中,所述处理器可以用于在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;将每个输出缓存区中的记录写入对应的段缓存区;在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。其中,所述输入缓存区、所述输出缓存区和所述迁移缓存区位于内存;所述段缓存区位于所述固态硬盘;所述数据表和所述分为文件位于所述机械硬盘。
本申请实施例公开的服务器,其存储器和处理器实现的具体功能,可以与本申请中的前述实施例对照进行解释。
请参阅图6。本申请实施例还提供一种数据处理装置。所述装置包括计算单元602、段缓存区写入单元604和分区文件写入单元606。
计算单元602,用于在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;其中,所述数据表位于机械硬盘;所述输入缓存区和所述输出缓存区位于内存;
段缓存区写入单元604;用于将每个输出缓存区中的记录写入对应的段缓存区;其中,所述段缓存区位于固态硬盘;
分区文件写入单元606,用于在每个段缓存区被写满时,将该段缓存区中的记录读入所述迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件;其中,所述分区文件位于固态硬盘。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务器实施例和异常主体识别装置实施例而言,由于其基本相似于异常主体识别方法实施例,所以描述的比较简单,相关之处参见异常主体识别方法实施例的部分说明即可。
另外,可以理解的是,所属领域技术人员在阅读本申请文件之后,可以无需创造性劳动想到本申请文件中列举的部分或全部实施例之间可以组合,这些组合也在本申请公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

Claims (10)

1.一种数据处理方法,应用于服务器;所述服务器包括内存、固态硬盘和机械硬盘;在所述内存中分配有输入缓存区、多个输出缓存区和迁移缓存区;每个输出缓存区对应有特征值,并在所述固态硬盘对应有段缓存区;每个段缓存区在所述机械硬盘对应有分区文件;每个段缓存区的容量大于对应的输出缓存区的容量;所述机械硬盘中存储有数据表;所述方法包括:
在将所述数据表中的记录读入所述输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;
将每个输出缓存区中的记录写入对应的段缓存区;
在每个段缓存区被写满以后,将该段缓存区中的记录读入所述迁移缓存区,将所述迁移缓存区中的记录写入该段缓存区对应的分区文件。
2.如权利要求1所述的方法,每个段缓存区的容量小于或等于所述迁移缓存区的容量。
3.如权利要求1所述的方法,所述输入缓存区包括两个子输入缓存区;每个输出缓存区包括两个子输出缓存区;每个段缓存区包括两个子段缓存区;所述迁移缓存区包括两个子迁移缓存区。
4.如权利要求1所述的方法,采用如下方式在所述内存中分配输入缓存区、多个输出缓存区和迁移缓存区:
基于所述数据表,确定输出缓存区的数量、输出缓存区的容量和迁移缓存区的容量;
基于确定的输出缓存区的容量、输出缓存区的数量和迁移缓存区的容量,在所述内存中分配输入缓存区、多个输出缓存区和迁移缓存区。
5.如权利要求4所述的方法,所述基于所述数据表,确定输出缓存区的容量和迁移缓存区的容量,包括:
基于公式|M|=N×|B|+|IB|+|MiB|、所述机械硬盘I/O吞吐量与I/O访问粒度的对应关系、所述固态硬盘I/O吞吐量与I/O访问粒度的对应关系,确定输出缓存区的容量和迁移缓存区的容量;其中,所述|M|为用于数据处理的内容容量;所述N为输出缓存区的数量,具体基于所述数据表得到;所述|B|为输出缓存区的容量;所述|IB|为输入缓存区的容量;所述|MiB|为迁移缓存区的容量。
6.如权利要求5所述的方法,采用如下方式确定输出缓存区的数量:
基于公式确定输出缓存区的数量;其中,所述F为正实数;所述|R|为数据表的数据页数量。
7.如权利要求1所述的方法,所述计算所述输入缓存区中每个记录对应的特征值,包括:
计算所述输入缓存区中每个记录的哈希值;将所述哈希值与指定数值进行取余数运算,将运算结果作为该记录对应的特征值。
8.如权利要求1所述的方法,所述将每个输出缓存区中的记录写入对应的段缓存区,包括:
在每个输出缓存区被写满以后,将该输出缓存区中的记录写入对应的段缓存区。
9.一种服务器,包括固态硬盘、机械硬盘和处理器;
所述固态硬盘和所述机械硬盘用于存储数据;
所述处理器,用于在将数据表中的记录读入输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;将每个输出缓存区中的记录写入对应的段缓存区;在每个段缓存区被写满时,将该段缓存区中的记录读入迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件;其中,所述输入缓存区、所述输出缓存区和所述迁移缓存区位于内存;所述段缓存区位于所述固态硬盘;所述数据表和所述分为文件位于所述机械硬盘。
10.一种数据处理装置,包括:
计算单元,用于在将数据表中的记录读入输入缓存区以后,计算所述输入缓存区中每个记录对应的特征值,将该记录写入该特征值对应的输出缓存区;其中,所述数据表位于机械硬盘;所述输入缓存区和所述输出缓存区位于内存;
段缓存区写入单元;用于将每个输出缓存区中的记录写入对应的段缓存区;其中,所述段缓存区位于固态硬盘;
分区文件写入单元,用于在每个段缓存区被写满时,将该段缓存区中的记录读入迁移缓存区,继而将所述迁移缓存区中的记录写入该段缓存区对应的分区文件;其中,所述分区文件位于固态硬盘。
CN201710735412.3A 2017-08-24 2017-08-24 数据处理方法和装置、服务器 Active CN107632779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710735412.3A CN107632779B (zh) 2017-08-24 2017-08-24 数据处理方法和装置、服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710735412.3A CN107632779B (zh) 2017-08-24 2017-08-24 数据处理方法和装置、服务器

Publications (2)

Publication Number Publication Date
CN107632779A true CN107632779A (zh) 2018-01-26
CN107632779B CN107632779B (zh) 2020-07-03

Family

ID=61101438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710735412.3A Active CN107632779B (zh) 2017-08-24 2017-08-24 数据处理方法和装置、服务器

Country Status (1)

Country Link
CN (1) CN107632779B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825314A (zh) * 2018-08-10 2020-02-21 浙江宇视科技有限公司 一种数据调度方法及装置
CN111488626A (zh) * 2020-04-09 2020-08-04 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及介质
CN115840541A (zh) * 2023-02-23 2023-03-24 成都体育学院 一种运动数据存储方法、系统和介质
WO2023060943A1 (zh) * 2021-10-14 2023-04-20 华为技术有限公司 一种流控方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101310338A (zh) * 2005-09-26 2008-11-19 拉姆伯斯公司 在矩阵拓扑中包括多个集成电路存储器器件和多个缓冲器器件的存储器模块
US20160012098A1 (en) * 2010-12-28 2016-01-14 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
CN106021266A (zh) * 2015-03-27 2016-10-12 国际商业机器公司 支持动态更新的快速多层索引
CN106201911A (zh) * 2015-05-05 2016-12-07 苏州携云信息科技有限公司 一种基于固态硬盘的缓存加速方法
CN106537345A (zh) * 2014-06-13 2017-03-22 皮沃塔尔软件公司 在多进程计算环境中精确跟踪内存使用

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101310338A (zh) * 2005-09-26 2008-11-19 拉姆伯斯公司 在矩阵拓扑中包括多个集成电路存储器器件和多个缓冲器器件的存储器模块
US20160012098A1 (en) * 2010-12-28 2016-01-14 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
CN106537345A (zh) * 2014-06-13 2017-03-22 皮沃塔尔软件公司 在多进程计算环境中精确跟踪内存使用
CN106021266A (zh) * 2015-03-27 2016-10-12 国际商业机器公司 支持动态更新的快速多层索引
CN106201911A (zh) * 2015-05-05 2016-12-07 苏州携云信息科技有限公司 一种基于固态硬盘的缓存加速方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘明超: "多存储层次能效散列连接算法", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825314A (zh) * 2018-08-10 2020-02-21 浙江宇视科技有限公司 一种数据调度方法及装置
CN110825314B (zh) * 2018-08-10 2024-02-02 浙江宇视科技有限公司 一种数据调度方法及装置
CN111488626A (zh) * 2020-04-09 2020-08-04 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及介质
WO2023060943A1 (zh) * 2021-10-14 2023-04-20 华为技术有限公司 一种流控方法及装置
CN115840541A (zh) * 2023-02-23 2023-03-24 成都体育学院 一种运动数据存储方法、系统和介质

Also Published As

Publication number Publication date
CN107632779B (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
US20200233820A1 (en) Enhancing processing performance of a dnn module by bandwidth control of fabric interface
US8131969B2 (en) Updating system configuration information
CN109977111A (zh) 采用基于散列和基于树的键-值数据结构的数据管理系统
US11947814B2 (en) Optimizing resiliency group formation stability
CN107632779A (zh) 数据处理方法和装置、服务器
EP2992439A1 (en) Selective backup of program data to non-volatile memory
US20220011945A1 (en) Optimizing dynamic power loss protection adjustment in a storage system
US11955187B2 (en) Refresh of differing capacity NAND
US10713162B1 (en) System and method for computer data garbage collection acceleration using peer to peer data transfers
US12067274B2 (en) Writing segments and erase blocks based on ordering
CN112148226A (zh) 一种数据存储方法及相关装置
CN109460406A (zh) 一种数据处理方法及装置
JP5773493B2 (ja) 情報処理装置
CN114489475B (zh) 分布式存储系统及其数据存储方法
CN118556229A (zh) 动态数据段大小设定
CN111435331B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
KR20220088274A (ko) 코어별 저널 구조를 포함하는 컴퓨팅 시스템
US8977814B1 (en) Information lifecycle management for binding content
CN101859232A (zh) 一种可变长度数据存储接口
US11079951B2 (en) Multi-tier storage and mirrored volumes
Vasudevan Energy-efficient data-intensive computing with a fast array of wimpy nodes
Mendon et al. A hardware filesystem implementation with multidisk support
EP4213021A1 (en) Electronic system, operating method thereof, and operating method of memory device
US20240339159A1 (en) Optimizing allocation unit sizes for heterogeneous storage systems
US20240289036A1 (en) Data storage system with managed flash

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1248860

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right