CN102906740A - 压缩数据记录和处理压缩数据记录的方法和系统 - Google Patents

压缩数据记录和处理压缩数据记录的方法和系统 Download PDF

Info

Publication number
CN102906740A
CN102906740A CN2011800157341A CN201180015734A CN102906740A CN 102906740 A CN102906740 A CN 102906740A CN 2011800157341 A CN2011800157341 A CN 2011800157341A CN 201180015734 A CN201180015734 A CN 201180015734A CN 102906740 A CN102906740 A CN 102906740A
Authority
CN
China
Prior art keywords
piece
subregion
data
bit vector
trivial
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
CN2011800157341A
Other languages
English (en)
Other versions
CN102906740B (zh
Inventor
J.比尔纳特
M.赫梅尔
N.霍伊斯尔
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.)
ParStream GmbH
Original Assignee
ParStream GmbH
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 ParStream GmbH filed Critical ParStream GmbH
Publication of CN102906740A publication Critical patent/CN102906740A/zh
Application granted granted Critical
Publication of CN102906740B publication Critical patent/CN102906740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices

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)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了通过如下步骤压缩数据记录的系统和方法:提供具有二进制结构的数据记录;将数据记录划分成若干位矢量;通过如下分步骤减小每个位矢量的大小:将位矢量划分成大小相等的相继分区,每个分区由n个位组成,将分区分类成平凡分区、准平凡分区、和非平凡分区,将一个非平凡或几个相继非平凡分区组合成一个所谓的R块,以及除去平凡分区;以及将一个准平凡或几个相继准平凡分区组合成一个所谓的O块。

Description

压缩数据记录和处理压缩数据记录的方法和系统
技术领域
本发明涉及处理由数据记录组成的数据集合,尤其在数据库系统中处理由数据记录组成的数据集合的方法。更具体地说,本发明涉及数据记录的压缩和压缩数据的处理。本发明进一步涉及包含压缩数据记录的数据结构产品,以及数据库计算机系统和计算机程序。
背景技术
借助于数据库,数据集合可以,例如,通过搜索它们或通过将它们相互组合评估它们来处理。
在许多情况下,提供数据集合是为了在从数据集合中生成的具有二进制结构的数据记录中,取决于使用的数据,部分包含在宽广的局部区域上只包括零值的二进制数据结构。当生成数据集合时,可以碰到,例如,只略为不同的数据不能组合在一起,而是生成两个不同数据记录的情况。因此,数据库中的数据记录的数量经常非常大。
不过,为了能够良好地管理数据记录,不损失信息地减小数据的大小已成为趋势。这是通过,例如,数据压缩实现的。
这具有在很大程度上减少,例如,要以电子形式存储的数据的数量的优点。但是,在像数据组合那样的电子处理操作中,每个压缩数据都必须完全解压,因此返回到原始状态,以便能够进行相应处理操作。作为进行解压处理的后果,使处理时间增加了。
并且,数据在处理之前必须返回到原始状态或被解压,只可以依次处理数据。这样做的原因是由于压缩的类型,在大多数情况下,只能依次进行解压。为了在数据的电子处理中存储中间结果,需要可以保持解压的很大随机访问存储器。
EP 0 633 537 B1公开了在以压缩代码形式存储在压缩文件中存储的多个字符串的同时搜索压缩文件的方法和系统。接收查询请求,将查询请求转换成压缩代码,将转换的查询请求与存储在压缩文件中的压缩代码相比较。
发明内容
按照本发明,分别提出了包含权利要求1的特征的方法、具有权利要求15和16的特征的数据存储介质或数据结构产品、利用权利要求22的特征处理压缩数据记录的方法以及具有权利要求25和26的特征的数据库计算机系统。
本发明提供了将具有二进制结构的数据记录划分成若干位矢量。每个位矢量的大小通过首先将位矢量划分成大小相等的相继分区来减小,每个分区由n个位组成。然后,取决于它们的内容结构,将这些分区分类成平凡分区(trivial partial area)、准平凡分区或非平凡分区。
将位矢量的一个或几个相继非平凡分区组合成一个所谓的R块。除去平凡分区。将位矢量的一个或几个相继准平凡分区组合成一个所谓的O块。
这样,可以显著减小数据记录的大小。
当将一个位矢量的非平凡分区组合成一个所谓的R块时,可以将包括在各自R块中的第一非平凡分区的第一位的绝对位矢量位置PR和所谓R块中的相继非平凡分区的个数mR标注在R块中。这为R块的内容的快速确定和相应快速数据检索创造了条件。个数mR给出R块中的相继非平凡分区的计数或数量。
当将一个位矢量的准平凡分区组合成一个所谓的O块时,可以将包括在所谓O块中的第一准平凡分区的第一位的绝对位矢量位置PO和O块中的相继准平凡分区的个数mO标注在O块中。这为O块的内容的快速确定和相应快速数据检索创造了条件。个数mO给出O块中的相继准平凡分区的计数或数量。
并且,可以除去(删除)有助于另外减小位矢量的大小的准平凡分区。
在如本发明所提出的减小中,没有信息损失。该减小可以,例如,在电子数据处理中通过数据压缩来进行。由于位矢量的大小的减小,所以使要处理的数据的数量显著减少。在这种背景下,本发明保证了通过这种压缩减少每个位矢量的大小。为此,将每个位矢量划分成大小相等的相继分区,每个分区由n个位组成。分区现在可以包含具有不同值的位或只包含具有相同值的位。
在此基础上,可以将分区分类成不同分区。平凡分区和准平凡分区可以是,例如,具有规则位结构的分区。可以将平凡分区定义成只包含零的分区,而可以将准平凡分区定义成只包含一的分区。非平凡分区是包含一和零两者的分区。要注意的是,上面对分区的各自名称的定义不应该理解为限制性的,而只是作为例子给出。当然,在本发明的背景下也可以将位只具有1值的分区定义成平凡分区,然后将位只具有0值的分区定义成准平凡分区。
可以将相继非平凡分区和相继准平凡分区组合成块。将非平凡分区组合成R块。在每个R块中,标注包括在在位矢量中在原始状态下具有该位的每个R块中的第一分区的第一位的位置PR。而且,可以标注包含在R块中的相继非平凡分区的个数mR。如果准平凡分区或平凡分区紧跟在一个非平凡分区后面,则将单个非平凡分区放入R块中,并且可以标注位矢量位置PR和个数mR=1。
准平凡分区基本上可以通过找出相继准平凡分区,并与一个O块中的相继准平凡分区的个数mO一起标注名义上包括在在位矢量的原始状态下具有该位的每个O块中的第一准平凡分区的第一位的绝对位置PO来“名义上”组合。除去准平凡分区,以便只有有关绝对位矢量位置PO和个数mO的信息仍然包括在O块中。如果平凡分区或非平凡分区紧跟在一个准平凡分区后面,则只标注这个准平凡分区的第一位的绝对位矢量位置PO和个数mO=1。
完全除去平凡分区。
通过标注包括在每个R块中的第一分区的第一位的绝对位置和R块中的相继非平凡分区的个数mR,可以不必使位矢量返回到原始状态或解压它地使用包括在每个R块中的数据。
通过使用原来包括在每个O块中的准平凡分区的绝对位矢量位置PO和O块中的原来相继准平凡分区的个数mO,O块包括足够的信息以便不必使位矢量返回到原始状态或解压它地将这些数据用在数据记录的处理中。
O块或R块的绝对位矢量位置PO和PR已知的事实进一步使包括在这些块中的数据可以用于并行数据处理。因此,例如,可以根据至少两个位矢量成为一个解或结果矢量的组合,可以并行地进行各个O块和/或R块的组合。这使数据记录的处理尤其迅速。而且,也可以并行地处理含有每一个在结果位矢量的一个块内的n位的相继信息区。
绝对位矢量位置PR和R块中的相继非平凡分区的个数mR可以标注在每个R块的开头。这可以以二进制形式完成。在每个R块中,可以生成,例如,以二进制形式标注绝对位矢量位置PR和R块中的相继非平凡分区的个数mR的含有n个位的信息区。可以将个数mR标注在信息区的最后x个位中,x=log2n。这种类型的标记或指定需要少量数据。通过在每个块的起点上提供信息区,简化了包括在R块中的数据的处理,因为在开始处理给定R块时已经知道有多少数据包括在R块中以及这些数据原来处在位矢量中的什么地方。
由于每个分区由n个位组成和每个R块总是包括整数mR个非平凡分区,所以绝对位矢量位置PR总是n的整数倍。
因此,例如,当以二进制形式标注绝对位矢量位置PR时,倘若x=log2n,则信息区的最后x个位总是保持0。因此,信息区的最后x个位不是标注绝对位矢量位置PR所需的,从而可以在其中标注相继非平凡分区的个数mR。这样就减少了信息区所需的数据量。
并且,唯一地,可以在O块中标注绝对位矢量位置PO、原来包括在O块中的准平凡分区的个数mo和O块的标识,例如,以二进制形式。在这种情况下,可以提供在每个O块中,生成例如以二进制形式标注绝对位矢量位置PO和原来包括在O块中的准平凡分区的个数mO的每一个具有n个位的第一和第二信息区。绝对位矢量位置PO可以标注在第一信息区中,而个数mO可以标注在第二信息区中(当然,也可以反过来进行)。可以进一步将标识标注在第一信息区的最后x个位中,x=log2n。例如,标识或标记可以基于具有0值的最后x个位。
以这样的方式,根据与绝对位矢量位置PO和个数mO有关的包括在O块中的信息,可以生成需要少量存储容量的O块。
本发明的一个实施例提供了对于个数mR,关系mR≤n-1有效。可以进一步提供,对于个数mO,关系mO≤2n有效。每个位矢量可以具有2n+n-1的最大长度。
通过选择至少两个位矢量并将至少两个位矢量组合一个解矢量,可以使如上所述压缩或减小的数据记录可以不必回复到它们的原始解压状态地得到处理,其中位矢量的组合通过位矢量的O块和/或R块的组合来进行。
由于压缩数据记录的结构,本发明允许并行地进行位矢量的O块和/或R块的几种组合。
数据记录的处理可以由包括若干SIMD处理器(SIMD-单指令多数据)的计算机单元来进行,其中将并行组合分配给若干SIMD处理器。
本发明还涵盖了含有程序编码部件的计算机程序,该程序编码部件适用于当该计算机程序运行在计算机上,执行如上所述的按照本发明的方法。该计算机程序本身以及存储在计算机可读介质上是要求保护的。
本发明的进一步特征和实施例可以从如下的描述和附图中明显看出。
应该明白,上述的特征以及下文所述的那些特征不仅可以以规定的组合使用,而且可以以其他组合或单独使用,这都不偏离本发明的范围。
本发明以举例的形式通过实施例示意性地例示在附图中,下文将参考附图加以详细说明。应该明白,该描述决不是限制本发明的范围,而仅仅是例示本发明的优选实施例。
附图说明
图1是例示本发明的示意性方块图描绘;
图2是可以实现本发明的计算机数据库系统的示意图;
图3是图2的计算机系统的更详细方块图;以及
图4是按照本发明的SIMD处理器上的并行处理的例示。
具体实施方式
处理数据记录,尤其在数据库系统中处理数据记录的按照本发明的方法可以在,例如,电信行业中的会计系统中用于呼叫数据记录(CDR)的数据库系统的背景下使用。
将电信服务的数据集合存储在,例如,数据库系统中。这些数据集可以包含,例如,电话号码、呼叫持续时间、呼叫时间等。这些数据的评估可以通过数据库系统来完成。
但是,数据集或记录经常以只有一个像时间或持续时间那样的信息有效的方式生成。即使快速相继地从一条连线向同一个电话号码发出呼叫,也将这些叫做当作两个独立呼叫,并生成两个不同数据集。这导致了非常大量的数据。例如,在德国,这样数据的数量达数十亿个。
这些数据的集合被转换成具有二进制结构的数据记录。这可以以,例如,矩阵(位图)的形式出现,其中的行表示各自呼叫而列表示像,例如,时间、持续时间等那样的相应条件。
在这样的矩阵中,二进制值1意味着相应信息是真的,而二进制值0意味着相应信息非真。由于如上所述的数据记录的性质,如图1所示的矩阵形式的二进制结构包含包括具有0值的位的巨大区域,还存在包括具有1值的多个相继位的区域。
现在可以将二进制结构划分成位矢量,其中在图1的描绘中,每列代表一个位矢量。
现在可以不损失任何信息地减小位矢量的大小。为此,将位矢量划分成大小相同的相继分区。每个分区由n个位组成。相应分区示意性地例示在图1中。为了更好地描绘起见,在图1中只示出了位矢量的第一分区、位矢量的第三分区和位矢量的第五分区。在例示的实施例中,每个分区由32个位组成,因为在当今的许多计算机中,基本存储单位由32个位组成。更近的系统具有包含64个位的基本存储单位,使得当然也可以提供具有64个位的分区。
将分区分类。各自包括以任意顺序具有0和1值的位的分区—在本申请的背景下—是所谓的非平凡分区。唯一包括具有1值的位的分区是所谓的准平凡分区。唯一包括具有0值的位的分区是所谓的平凡分区。
将几个相继非平凡分区分组合成所谓的R块。
在R块中,在R块的开头生成长度为n个位的信息区。在例示的实施例中,R块的信息区具有32个位的长度。在这个信息区中,标注组合成这个R块的原始位矢量的相继分区的第一位的绝对位置。在图中,将绝对位矢量位置指定成偏移量。
与显示在图1中的实施例一样,每个分区具有32个位的长度,当标注绝对位矢量位置PR时,信息区的最后五个位,即,第28到32位总是不变的,使得它们不是标注绝对位矢量位置PR所需的。因此,第28到32位可以用于标注R块中的相继非平凡分区的个数mR
在图1的描绘中,信息区的第27位具有0值,这意味着位矢量位置PR也是0。第32位具有1值,这指示非平凡分区包括在这个块中。最多31个非平凡分区可以包括在一个R块中。如果在一个位矢量中存在大于31个的相继非平凡分区,则将它们划分两个或更多个不同R块。
在位矢量具有64个位的长度的情况下,信息区的最后6个位是自由的,使得从第58位开始标注绝对位矢量。于是,63个非平凡分区包括在一个R块中。
因此,对于作为包含在一个给定R块中的非平凡分区的数量的个数mR,关系mR≤n-1有效。
一个给定R块可以只包括一个非平凡分区,例如,如图的例子所例示。
只包括具有1值的位的准平凡分区也被组合成指定为所谓O块的块。这样做时,只是“名义上”组合这些块。这意味着在本申请的背景下O块可以仅仅包括第一信息区和第二信息区。
第一信息区包括这个块是O块的标识。并且,标注名义上包括在O块中的第一分区的第一位的绝对位矢量位置。在图1的例子中,绝对位矢量位置PO是64,使得第一信息区的第26位具有1值。进行标识以便在第一信息区中第28到32位具有0值。这样,可以将O块与R块区分开。
在第二信息区中,例如,以二进制形式标注名义上包括在O块中的准平凡分区的数量的个数mO。在例示的实施例中,最多232个准平凡分区可以名义上包括在一个O块中。
在分区由64个位组成的系统中,在第一信息区的第59到64位中通过将这些位设置成0来标注标识。也在第二信息区中标注个数,其中在这种情况下,名义上相继准平凡分区的个数理论上最多mO=264
然后除去准平凡分区。
而且,也除去位值总是0的平凡分区。
这样做时,通过位矢量的所述减小或“压缩”可以大大减少要存储的数据的数量。这对于如上所述性质的数据记录特别有意义,其中包括具有0值的位或包括具有1值的位的大量数据是相继排列的。
在例如结合数据查询的压缩数据记录的进一步处理中,选择和组合至少两个位矢量。
位矢量的选择取决于特定请求。在位矢量的组合中,组合位矢量的O块和/或R块。
为此,首先确定要组合的两个块是否具有相交区。然后,通过相应运算简单组合这个相交区。这可以是,例如,AND或OR运算。将结果写入解矢量中。
可以以压缩形式将解写入解矢量。当然,也可以在非压缩状态下输出解矢量。在后一种情况下,然后用0填充组合之后解矢量中剩余的空空间中。
现在可以从解矢量中检索满足各自请求的呼叫(像对持续时间长于像一个分钟或一小时那样的给定时段的呼叫的查询那样),因为对于这些呼叫,位矢量在解矢量的相应位置上是1。
当组合位矢量时,可以并行地进行位矢量的O块和/或R块的组合,因为在这些块中,包括在这些块中的分区的绝对位矢量位置是已知的。尤其,对于该组合,不要求位矢量返回(回复)到它们的原始状态,即,不要求解压它们。
因此,可以在组合的过程中节省大量时间。而且,在使用处理数据记录的计算机系统时,组合的存储需求很低。
图2以非常示意的方式例示了可以实现本发明的实施例的计算机系统10。该计算机系统10包含带有传送数据的总线22、处理单元14和存储数据集的数据库存储介质(数据库)20的计算机12。该计算机系统10进一步包含输入/输出设备18,在图1的描绘中,该输入/输出设备18是带有键盘18.1、用于光标控制的定位设备18.3和监视器18.1的客户机。至少一个输入/输出设备18可以与,例如,内联网络内的计算机连接。
图3更详细地例示了图1的计算机系统10。该计算机系统10包括传送信息的总线22或其他通信机构、和处理信息的与总线22耦合的处理器14。该计算机系统10还包括像随机访问存储器(RAM)或其他动态存储设备(例如,动态RAM(DRAM)、静态RAM(SRAM)、和同步DRAM(SDRAM))那样,存储信息和处理器14要执行的指令的与总线22耦合的主存储器24。
另外,主存储器24可以用于在处理器14执行指令期间存储临时变量或其他中间信息。该计算机系统10进一步包括存储静态信息和处理器14的指令的与总线22耦合的只读存储器(ROM)25或其他静态存储设备(例如,可编程ROM(PROM)、可擦除PROM(EPROM)、和电可擦除PROM(EEPROM))。
该计算机系统10还包括与总线22耦合的盘控制器26,以便控制像硬磁盘27、和可移除媒体控制器28(例如,软盘驱动器、只读光盘驱动器、可读/写光盘驱动器、光盘自动交换机、磁带驱动器、和可移除磁光驱动器)那样,存储信息和指令的一个或多个存储设备。可以使用适当设备接口(例如,小型计算机系统接口(SCSI)、集成设备电子(IDE)、增强型IDE(E-IDE)、直接存储器访问(DMA)或超级DMA(Ultra-DMA))将存储设备加入计算机系统10中。
该计算机系统10还可以包括与总线22耦合的显示器控制器29,以便控制像阴极射线管(CRT)或液晶显示器(LCD)等那样,向计算机用户显示信息的显示器或监视器18.1。该计算机系统10还包括像键盘18.2和定位设备18.3那样,与计算机用户交互并将信息提供给处理器14的输入设备。定位设备18.3可以是,例如,向处理器传送方向信息和命令选择以及控制显示器18.1上的光标移动的鼠标、跟踪球或定位棒。另外,打印机可以提供计算机系统10存储和/或生成的数据的打印列表。
该计算机系统10响应处理器14执行包含在像主存储器24那样的存储器中的一条或多条指令的一个或多个序列,执行本发明的一部分和所有处理步骤。这样的指令可以从像硬盘27或可移除媒体驱动器28那样的另一个计算机可读介质读入主存储器24中。也可以应用多处理装置中的一个或多个处理器来执行包含在主存储器24中的指令序列。在可替代实施例中,可以取代软件指令或与软件指令结合地使用硬连线电路。因此,这些实施例不局限于硬件电路和软件的任何特定组合。
来自电话40的电话呼叫数据通过计算机系统中的数据链路连接(可以是无线的)收集。收集的数据变成按照本发明在数据存储介质20中建立的数据集合的一部分。
如上所述,计算机系统10包括保存按照本发明的教导编程的指令和包含描述在其中的数据结构、表格、记录或其他数据的至少一个计算机可读介质或存储器。计算机可读介质的例子是光盘、硬盘、软盘、磁带、磁光盘、PROM(EPROM、EEPROM、闪速EEPROM)、DRAM、SRAM、SDRAM或任何其他磁介质、光盘(例如,CD-ROM)或任何其他光介质、穿孔卡片、纸带或存在孔图案的其它物体介质、载波(如下所述)、或计算机可以读取的任何其它介质。
当存储在计算机可读介质的任何一个或组合体上时,本发明包括控制计算机系统10,驱动实现本发明的一个或多个设备,以及使计算机系统10能够与像操作员那样的使用人员交互的软件。这样的软件可以包括但不限于设备驱动程序、操作系统、开发工具、和应用软件。这样的计算机可读介质进一步包括进行在实现本发明时进行的所有或一部分(如果处理是分布式的)处理的本发明的计算机程序产品。
本发明的计算机代码设备可以是任何可解释或可执行代码机构,包括但不限于脚本、可解释程序、动态链接库(DLL)、Java类、和完全可执行程序。此外,为了有利于性能、可靠性和/或成本,本发明的各个处理部分可以是分布式的。
如本文使用的术语“计算机可读介质”指的是参与将指令提供给处理器14以便加以执行中的任何介质。计算机可读介质可以采取许多形式,包括但不限于非易失性介质、易失性介质、和传输介质。非易失性介质包括,例如,像硬盘27或可移除媒体驱动器28那样的光盘、磁盘和磁光盘。易失性介质包括像主存储器24那样的动态存储器。传输介质包括同轴电缆、铜线和光纤,包括构成总线22的电线。传输介质还可以采取像在无线电波和红外数据传输期间生成的那样的声波或光波的形式。
该计算机系统10还包括与总线22耦合的通信接口16。通信接口16提供与网络链路30耦合的双向数据通信,网络链路30与,例如,局域网(LAN)32,或与像互联网那样的另一个通信网络33连接。例如,通信接口16可以是附在任何分组交换LAN上的网络接口卡。作为另一个例子,通信接口16可以是向相应类型的通信线提供数据通信连接的非对称数字用户线(ADSL)、综合业务数字网(ISDN)卡或调制解调器。也可以实现无线链接。在任何这样的实现方式中,通信接口16都发送和接收携带代表各种类型信息的数字数据流的电,电磁或光信号。
网络链路30通常通过一个或多个网络提供与其它数据设备的数据通信。例如,网络链路30可以通过局部网络32(例如,LAN)或通过由通信网络33提供通信服务的服务提供者提供的装备来提供与另一台计算机的连接。局部网络30和通信网络33使用,例如,携带数字数据流的电,电磁或光信号,以及相关物理层(例如,CAT 5电缆、同轴电缆、光纤等)。此外,网络链路30可以通过LAN 32提供与像个人数据助理(PDA)、膝上型电脑、或蜂窝式电话那样的移动设备34的连接。
按照本发明,保证了可以在例示在图4的描绘中的若干SIMD(单指令多数据)处理器上并行地进行组合操作。
图4在左侧(从描绘的观看者方向来看)示出了两个位矢量BV1和BV2。这些位矢量BV1和BV2的每一个都包含许多R块和O块,这些块的每一个再次由绝对位矢量位置PR或PO、和相应个数mR和mO组成。R块也包含数据位序列(图4中的位矢量的描绘中的右列)。O块只包含绝对位矢量位置和反映相继准平凡分区的数目/数量的个数。按照本发明,准平凡分区本身被删除。
处理位矢量通过将它们组合成解或结果矢量SBV来完成。这可以由多个处理器以如图4所示的示范性方式并行地完成。图4例示了三个处理器对两个所描绘位矢量BV1和BV2进行AND运算的例子;但是,可以使用任何合适个数的可用处理器。
在例示在图4中的实施例中,将可用在图形卡上的SIMD处理器用于处理位矢量。在这种情况下,可以提供,例如,几个图形卡包括在一个计算机单元中。
对于所需组合任务来说SIMD处理器足够了。另外,它们可大量地用在普通计算机系统中。例如,强大的图形卡的图形芯片包含256个SIMD处理器。因此,可以同时进行大量组合操作,以便可以非常迅速地进行数据处理。
位矢量的组合通过组合位矢量的O块和/或R块来进行。
当然,按照本发明的方法也可以应用在与通信数据不同的数据记录中。在具有大量0位值或大量1位值以相继次序排列的二进制结构那种类型的数据记录的情况下,按照本发明的方法特别强大。
在下文中,以编号列表的形式列举本发明的各个方面。
1.一种处理数据集合,尤其在数据库系统中处理数据集合的方法,包含如下步骤:
-生成数据集合;
-以二进制结构排列数据集合;
-将数据记录划分成若干位矢量;
-减小每个位矢量的大小,其包含如下分步骤:
-将位矢量划分成大小相等的相继分区,每个分区由n个位组成;
-将分区分类成平凡分区、准平凡分区、和非平凡分区;
-将一个非平凡或几个相继非平凡分区组合成相应R块,分别并标注包括在每个R块中的第一非平凡分区的第一位的绝对位矢量位置PR和包含在一个R块中的相继非平凡分区的个数mR
-除去平凡分区;
-将一个准平凡或几个相继准平凡分区组合成O块,分别标注包括在每个O块中的第一准平凡分区的第一位的绝对位矢量位置PO和包含在一个O块中的相继准平凡分区的个数mO,并除去准平凡分区;以及
-选择至少两个位矢量并将至少两个位矢量组合成一个解矢量,其中位矢量的组合通过位矢量的O块和/或R块的组合来进行。
2.按照方面1所述的方法,其中在至少两个位矢量的组合中,并行地进行位矢量的O块和/或R块的几种组合。
3.按照方面1或2所述的方法,其中绝对位矢量位置PR和一个R块中的相继非平凡分区的个数mR被标注在含有非平凡分区的每个R块的起点上,优选的是以二进制形式。
4.按照方面1至3之一所述的方法,其中绝对位矢量位置PO、原来包括在一个O块中的准平凡分区的个数mO和O块的标识被标注在O块中,优选的是以二进制形式。
5.按照方面1至4之一所述的方法,其中对于个数mR,关系mR≤n-1有效。
6.按照方面1至5之一所述的方法,其中对于个数mO,关系mO≤2n有效。
7.按照方面1至6的任何一项所述的方法,其中每个位矢量具有2n+n-1的最大长度。
8.按照方面3至7的任何一项所述的方法,其中在每个R块中,生成具有n个位的信息区,在该信息区中以二进制形式标注绝对位矢量位置PR和一个R块中的相继非平凡分区的个数mR,其中个数mR被标注在该信息区的最后x个位中,x=log2n。
9.按照方面4至7的任何一项所述的方法,其中在每个O块中,生成以二进制形式标注绝对位矢量位置PO和原来包括在一个O块中的准平凡分区的个数mO的每一个具有n个位的第一和第二信息区,其中绝对位矢量位置PO被标注在第一信息区中,而个数mO被标注在第二信息区中,以及其中将标识标注在第一信息区的最后x个位中,x=log2n。
10.按照方面2至10的任何一项所述的方法,其中并行组合在含有几个SIMD处理器的计算机单元上进行。

Claims (30)

1.一种在数据库系统中压缩数据记录的方法,该方法包含如下步骤:
-提供具有二进制结构的数据记录;
-将数据记录划分成若干位矢量;
-通过如下分步骤减小每个位矢量的大小:
-将位矢量划分成大小相等的相继分区,每个分区由n个位组成;
-将分区分类成平凡分区、准平凡分区、和非平凡分区;
-将一个非平凡或几个相继非平凡分区组合成一个相应R块;以及
-除去平凡分区;以及
-将一个准平凡或几个相继准平凡分区组合成一个相应O块。
2.如权利要求1所述的方法,其中将一个非平凡或几个相继非平凡分区组合成一个相应R块的步骤进一步包含:标注包括在每个R块中的第一非平凡分区的第一位的绝对位矢量位置PR和一个R块中的相继非平凡分区的个数mR的步骤。
3.如权利要求1或2的任何一项所述的方法,其中将一个准平凡或几个相继准平凡分区组合成一个相应O块的步骤进一步包含:标注包括在每个O块中的第一准平凡分区的第一位的绝对位矢量位置PO和一个O块中的相继准平凡分区的个数mO的步骤。
4.如权利要求3所述的方法,进一步包含除去准平凡分区的步骤。
5.如权利要求2至4的任何一项所述的方法,其中绝对位矢量位置PR和一个R块中的相继非平凡分区的个数mR被标注在每个R块的起点上。
6.如权利要求3至5的任何一项所述的方法,其中在O块中,唯一地标注绝对位矢量位置PO、原来包括在一个O块中的准平凡分区的个数mO和O块的标识。
7.如权利要求2至6的任何一项所述的方法,其中对于个数mR,关系mR≤n-1有效。
8.如权利要求3至7的任何一项所述的方法,其中对于个数mO,关系mO≤2n有效。
9.如权利要求1至8的任何一项所述的方法,其特征在于每个位矢量具有2n+n-1的最大长度。
10.如权利要求5至9的任何一项所述的方法,进一步包含:在每个R块中,生成具有n个位的信息区的步骤,在该信息区中标注绝对位矢量位置PR和一个R块中的相继非平凡分区的个数mR
11.如权利要求10所述的方法,其中个数mR被标注在该信息区的最后x个位中,x=log2n。
12.如权利要求6至11的任何一项所述的方法,进一步包含:在每个O块中,生成每一个具有n个位的第一和第二信息区的步骤,在该第一和第二信息区中标注绝对位矢量位置PO和原来包括在一个O块中的准平凡分区的个数mO
13.如权利要求12所述的方法,其中绝对位矢量位置PO被标注在第一信息区中,而个数mO被标注在第二信息区中。
14.如权利要求12或13所述的方法,其中将标识标注在第一信息区的最后x个位中,x=log2n。
15.一种存储数据集合的数据存储介质,其包含存储在上面的数据集合,该数据集合由按照如权利要求1至14的任何一项所述的方法压缩的一组数据记录组成
16.一种存储数据集合的数据存储介质,其包含存储在上面的数据集合,该数据集合由每个数据记录被减小成至少一个R块和/或至少一个O块的一组数据记录组成,该R块包含相应数据记录的一个非平凡或几个相继非平凡分区,以及该O块包含相应数据记录的一个准平凡或几个相继准平凡分区。
17.如权利要求16所述的数据存储介质,其中R块进一步包含包括在相应R块中的第一非平凡分区的第一位的绝对位矢量位置PR和该R块中的相继非平凡分区的个数mR
18.如权利要求16或17所述的数据存储介质,其中O块包含包括在相应O块中的第一准平凡分区的第一位的绝对位矢量位置PO和该O块中的相继准平凡分区的个数mO
19.如权利要求18所述的数据存储介质,其中O块唯一地包含绝对位矢量位置PO、原来包括在该O块中的准平凡分区的个数mO和O块的标识。
20.一种包含程序代码部件的计算机程序,当在数据库计算机系统上执行所述程序时,所述程序代码部件执行如权利要求1至14的任何一项所述的方法。
21.一种包含存储了如权利要求20所述的计算机程序的计算机可读介质的计算机程序产品。
22.一种处理由按照如权利要求1至14的任何一项所述的方法压缩的一组数据记录组成的数据集合的方法,该方法包含:选择至少两个位矢量并将至少两个位矢量组合成一个解矢量的步骤,其中位矢量的组合通过位矢量的O块和/或R块的组合来进行。
23.如权利要求22所述的方法,其中在至少两个位矢量的组合中,并行地进行位矢量的O块和/或R块的几种组合。
24.如权利要求23所述的方法,其中并行组合在含有几个SIMD处理器的计算机单元上进行。
25.一种包含如权利要求15至19的任何一项所述的数据存储介质(20)的计算机数据库系统。
26.一种包含计算机(12)的计算机数据库系统,该计算机(12)含有传送数据的总线(22)和处理单元(14),以及存储数据集(数据记录)的数据存储介质(20),其中该计算机(12)以按照如权利要求1至14的任何一项所述的方法压缩数据库系统中的数据记录,并将压缩数据记录存储在数据存储介质(20)中的方式设置。
27.一种包含计算机(12)的计算机数据库系统,该计算机(12)含有传送数据的总线(22)和处理单元(14),以及存储数据集(数据记录)的数据存储介质(20),其中该计算机(12)以按照如权利要求22至24的任何一项所述的方法处理数据库系统中的压缩数据记录的方式设置。
28.一种包含程序代码部件的计算机程序,其中当在数据库计算机系统上执行所述程序时,所述程序代码部件执行如权利要求22至24的任何一项所述的方法。
29.一种包含在其上存储了如权利要求28所述的计算机程序的计算机可读介质的计算机程序产品。
30.一种包含如权利要求26或27的任何一项所述的数据库计算机系统的呼叫数据记录系统。
CN201180015734.1A 2010-02-04 2011-02-04 压缩数据记录和处理压缩数据记录的方法和系统 Active CN102906740B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102010006931A DE102010006931A1 (de) 2010-02-04 2010-02-04 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
DE102010006931.0 2010-02-04
PCT/EP2011/000519 WO2011095345A1 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records

Publications (2)

Publication Number Publication Date
CN102906740A true CN102906740A (zh) 2013-01-30
CN102906740B CN102906740B (zh) 2015-10-21

Family

ID=43952834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180015734.1A Active CN102906740B (zh) 2010-02-04 2011-02-04 压缩数据记录和处理压缩数据记录的方法和系统

Country Status (7)

Country Link
US (1) US9805045B2 (zh)
EP (2) EP2531939B1 (zh)
JP (1) JP5709903B2 (zh)
CN (1) CN102906740B (zh)
DE (2) DE102010006931A1 (zh)
ES (1) ES2408701T1 (zh)
WO (1) WO2011095345A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2720376A1 (en) * 2012-10-09 2014-04-16 Alcatel Lucent Secure and lossless data compression
US9094537B2 (en) * 2013-03-22 2015-07-28 Jdsu Uk Limited Method and apparatus for managing call data
KR101656750B1 (ko) * 2016-02-26 2016-09-23 주식회사 아미크 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US10725911B2 (en) * 2018-12-10 2020-07-28 Sap Se Non-Uniform pagination of columnar data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907297A (en) * 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression
CN1316828A (zh) * 2000-02-04 2001-10-10 国际商业机器公司 数据压缩、传输、存储及程序传输
CN1367613A (zh) * 2000-12-01 2002-09-04 艾迪斯株式会社 图像压缩装置和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04340866A (ja) 1991-05-16 1992-11-27 Mutoh Ind Ltd ビットマップ・ランレングス変換装置
JP2790594B2 (ja) 1993-05-28 1998-08-27 株式会社日立製作所 データベースレコードの圧縮方法および復元方法
CA2125337A1 (en) * 1993-06-30 1994-12-31 Marlin Jay Eller Method and system for searching compressed data
JP3218226B2 (ja) 1996-03-19 2001-10-15 三菱電機株式会社 符号化装置及び復号装置及びそれらの方法及び画像処理装置
JP3860910B2 (ja) 1998-04-30 2006-12-20 株式会社アドバンテスト データ圧縮装置およびデータ圧縮方法
US7293150B2 (en) 2002-06-28 2007-11-06 Microsoft Corporation Method and system for creating and restoring an image file
US6831575B2 (en) * 2002-11-04 2004-12-14 The Regents Of The University Of California Word aligned bitmap compression method, data structure, and apparatus
US7961960B2 (en) * 2006-08-24 2011-06-14 Dell Products L.P. Methods and apparatus for reducing storage size
WO2008118789A2 (en) * 2007-03-23 2008-10-02 D. E. Shaw Research, Llc Computation of multiple body interactions
US7769729B2 (en) 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
US9236881B2 (en) * 2009-08-07 2016-01-12 Algorhyme A/S Compression of bitmaps and values

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907297A (en) * 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression
CN1316828A (zh) * 2000-02-04 2001-10-10 国际商业机器公司 数据压缩、传输、存储及程序传输
CN1367613A (zh) * 2000-12-01 2002-09-04 艾迪斯株式会社 图像压缩装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
成丽丽: "基于分块编码的SoC测试数据压缩方法研究", 《中国优秀硕士学位论文全文数据库电子期刊》 *

Also Published As

Publication number Publication date
US9805045B2 (en) 2017-10-31
EP2690565B1 (en) 2020-06-17
EP2690565A1 (en) 2014-01-29
EP2531939B1 (en) 2014-04-09
ES2408701T1 (es) 2013-06-21
US20130204850A1 (en) 2013-08-08
JP5709903B2 (ja) 2015-04-30
DE11710114T1 (de) 2013-07-25
EP2531939A1 (en) 2012-12-12
JP2013519141A (ja) 2013-05-23
WO2011095345A1 (en) 2011-08-11
DE102010006931A1 (de) 2011-08-04
CN102906740B (zh) 2015-10-21

Similar Documents

Publication Publication Date Title
EP1566753B1 (en) Searchable archive
CN101553813B (zh) 管理可单独访问的数据单元的存储器
EP3299972B1 (en) Efficient query processing using histograms in a columnar database
CN104731896B (zh) 一种数据处理方法及系统
CN101405728B (zh) 具有动态加载能力的关系数据库架构
CN102713824A (zh) 基于未来使用估计的分配存储器
CN110309336A (zh) 图像检索方法、装置、系统、服务器以及存储介质
CN111339078A (zh) 数据实时存储方法、数据查询方法、装置、设备、介质
CN111475105A (zh) 监控数据存储方法、设备、服务器及存储介质
CN102906740B (zh) 压缩数据记录和处理压缩数据记录的方法和系统
CN113934851A (zh) 用于文本分类的数据增强方法、装置及电子设备
CN114943287A (zh) 一种计算机大数据采集处理系统、方法、设备及介质
CN109739854A (zh) 一种数据存储方法及装置
CN116226354A (zh) 一种问答信息的确定方法及装置
CN114647658A (zh) 一种数据检索方法、装置、设备及机器可读存储介质
CN111125425A (zh) 一种视频数据的读写方法、系统、装置及可读存储介质
CN114911886B (zh) 一种遥感数据的切片方法、装置和云服务器
CN112765170B (zh) 一种嵌入式时间序列数据管理方法及设备
CN106940698A (zh) 一种维度数据处理方法及装置
CN117938696A (zh) 一种日志处理方法、读取方法、装置、设备及存储介质
CN116433379A (zh) 交易信息处理方法及装置
CN115147115A (zh) 资源转移数据的分析方法、装置、设备及介质
CN115080852A (zh) 排序方法、排序装置、存储介质与电子设备
CN114090513A (zh) 数据处理方法、装置和系统及服务器
CN117997726A (zh) 业务指标监控方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 1178275

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant