当前位置: 首页 > 专利查询>SAP欧洲公司专利>正文

误差界限浮点数据压缩系统技术方案

技术编号:29027301 阅读:14 留言:0更新日期:2021-06-26 05:29
一种系统包括:接收多个原始浮点值,将多个原始浮点值中的每一个舍入为相应的舍入浮点值,其中,每个舍入浮点值在其相应的原始浮点值的误差界限内,压缩多个舍入浮点值,以及将多个压缩舍入浮点值存储在数据存储系统中。将多个压缩舍入浮点值存储在数据存储系统中。将多个压缩舍入浮点值存储在数据存储系统中。

【技术实现步骤摘要】
误差界限浮点数据压缩系统

技术介绍

[0001]现代计算部署生成大量数据。该数据的存储消耗了大量的计算资源。数据压缩技术可以用于减少存储的数据的量,并因此也减少存储数据所需的资源。
[0002]数据压缩可以是无损的,其中可以从压缩数据中准确地重现原始数据,数据压缩也可以是有损的,其中不能保证从压缩数据中准确地重现原始数据。与无损压缩相比,有损压缩通常展现出更高的压缩比和/或更快的处理。在特定情境中应用的压缩技术取决于情境的容错能力以及要压缩的数据类型。
[0003]诸如物联网(IoT)架构的系统可以生成浮点数据。例如,IoT传感器可以提供温度数据,该温度数据在从摄氏温度转换为华氏温度后,表示为64位双精度值。因此,需要在存储之前对该数据进行压缩。此外,由于IoT传感器的已知准确度限制,可能允许存储这些值以使得解压缩将导致每个值的最大误差界限为0.01。
[0004]例如,鉴于误差界限为0.01,将假设要存储值{1.241,1.240,1.239,1.241,1.253}。根据用于有损浮点压缩的已知方法,前四个值被识别为处于相同值(即1.24)的误差界限内,并因此这些值存储为{4x1.24,1x1.253}(例如,“游程(run)”数组{4,1}和“值”数组{1.24,1.253})。但是,如果连续值相对于误差界限有显著变化(例如{1.2348903,3.489345,-21.2344903,...},则已知方法将数据存储为{1x1.2348903,1x3.489345,1x-21.2344903......}(例如,如“游程(run)”数组{1,1,1,...}和“值”数组{1.2348903,3.4489345,-21.2344903,...}),这无法提供令人满意的压缩。
[0005]期望对误差界限浮点压缩进行改进。
附图说明
[0006]图1图示了根据一些实施例的用于生成、压缩、存储和检索浮点值的架构。
[0007]图2是根据一些实施例的浮点传感器值的表格表示。
[0008]图3是根据一些实施例的图2传感器值的双精度版本的表格表示。
[0009]图4是根据一些实施例的基于误差界限来舍入浮点值的过程的流程图。
[0010]图5是根据一些实施例的图2传感器值的舍入版本的表格表示。
[0011]图6图示了根据一些实施例的用于压缩浮点值的处理流水线。
[0012]图7图示了根据一些实施例的用于压缩浮点值的处理流水线。
[0013]图8图示了根据一些实施例的用于压缩浮点值的处理流水线。
[0014]图9是根据一些实施例的基于误差界限和值的总和来舍入浮点值的过程的流程图。
[0015]图10是根据一些实施例的基于误差界限和值的总和来舍入浮点值的过程的流程图。
[0016]图11是根据一些实施例的计算系统的框图。
具体实施方式
[0017]提供以下描述以使本领域的任何技术人员能够进行和使用所描述的实施例,并且阐述了预期用于实施一些实施例的最佳模式。然而,各种修改对于本领域技术人员将是显而易见的。
[0018]实施例涉及将多个浮点值中的每一个舍入到特定数目的小数位。舍入值中的每一个都在其原始值的指定误差界限内。然后对舍入后的值进行进一步的浮点压缩,根据一些实施例,其又可以包括整数压缩。一些实施例进一步操作以减小或消除误差界限的舍入值的总和相对于对应的原始浮点值的总和的差。
[0019]因此,一些实施例可以提供输入浮点值的改进的误差界限压缩,其相对于误差界限展现出连续值中的显著数目的小数位和/或大的方差。
[0020]图1图示了根据一些实施例的架构100。架构100包括传感器110a-110d,每个传感器都将浮点值提供给流处理器120。传感器110a-110d可以包括任何类型和/或数目的传感器,并且可以根据请求,异步地和/或根据任何调度或标准向流处理器120提供数据。流处理器120可以包括能够接收IoT数据并根据需要对其进行处理的处理组件(例如,IoT集线器)。实施例不限于由传感器生成或由流处理器处理的浮点值。
[0021]根据图示的示例,流处理器120将接收到的浮点值发送到数据库平台130以进行存储。在发送到数据库平台之前,流处理器120可如本文所述压缩数据。
[0022]数据库平台130包括数据库管理系统(DBMS)132和数据存储134。DBMS 132可以在存储在数据存储134中之前如本文所述压缩数据,并在将数据提供给请求者之前解压缩由此存储的数据。DBMS 132还可以执行数据库平台130的管辖和管理功能。这样的功能可以包括快照和备份管理、索引、优化、垃圾收集和/或任何其它已知或将要知道的数据库功能。
[0023]数据存储134可以包括用于以已知的或变得已知的任何格式存储数据的任何存储系统。数据存储134可以包括数据库表的数据和描述数据结构的元数据,但是实施例不限于此。数据存储134的数据可以包括常规表格数据、基于行的数据、基于列的数据和基于对象的数据中的一个或多个。此外,可以在索引中对数据进行索引和/或选择性重复,以允许对其进行快速搜索和检索。
[0024]数据库平台130可以实现“存储器中(in-memory)”数据库,其中完整数据库存储在易失性(例如,非基于磁盘的)存储器(例如,随机存取存储器)中。完整数据库可以持久化在和/或备份到固定磁盘(未显示)中。实施例不限于存储器中的实现方式。例如,数据可以存储在随机存取存储器(例如,用于存储最近使用的数据的缓冲存储器)和一个或多个固定盘(例如,用于存储整个数据库的它们的相应部分的持久存储器)中。
[0025]查询服务器140可以处理从数据库应用(未示出)接收的结构化查询语言(SQL)和多维表达(MDX)语句。处理可以包括查询执行计划的生成和执行以从数据存储134检索数据。如上所述,DBMS 132可以在将数据发送到查询服务器140之前解压缩检索到的数据。
[0026]图2是根据一些实施例的可以被压缩的浮点传感器值200的表格表示。可以从任何合适的一个或多个源接收传感器值200,并且实施例不限于由传感器生成的值。出于比较的目的,图3是根据一些实施例的对应于传感器值200的双精度值300的表格表示。实施例可以尝试在维持指定的误差界限的情况下将诸如传感器值200的值压缩到每个值小于64位的存储空间。
[0027]图4是根据一些实施例的基于误差界限来舍入浮点值的过程400的流程图。在一些非穷举的实施例中,数据库系统的各种硬件元件执行程序代码以执行过程400。过程400和本文中提及的所有其它过程可以实施为从诸如硬盘驱动器、易失性或非易失性随机存取存储器、DVD-ROM、闪速驱动器和磁带的非暂时性计算机可读介质中的一个或多个读取的处理器可执行程序代码,并且然后以压缩、未编译和/或加密的格式存储。在一些实施例中,可以使用硬连线电路代替程序代码或与程序代码组合,以实现根据一些实施例的过程。实施例不限于硬件和软件的任何具本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种系统,包括:存储器,存储处理器可执行程序代码;和处理单元,执行所述处理器可执行程序代码以使得所述系统:接收多个原始浮点值;将所述多个原始浮点值中的每一个舍入为相应的舍入浮点值,其中,每个舍入浮点值在其相应的原始浮点值的预先指定的误差界限内;和压缩所述多个舍入浮点值。2.根据权利要求1所述的系统,其中,将所述多个原始浮点值中的每一个舍入为相应的舍入浮点值包括:将所述多个原始浮点值中的每一个舍入为具有第一数目的小数位的相应的第一舍入浮点值;确定每个第一舍入浮点值是否在其相应的原始浮点值的预先指定的误差界限内;和如果确定不是每个第一舍入浮点值在其相应的原始浮点值的所述预先指定的误差界限内,则将所述多个原始浮点值中的每一个舍入为具有第二数目的小数位的相应的第二舍入浮点值,并且确定每个第二舍入浮点值是否在其相应的原始浮点值的所述预先指定的误差界限内。3.根据权利要求1所述的系统,其中,压缩所述多个舍入浮点值包括:将所述多个舍入浮点值中的每一个转换为整数值;和对所述多个整数值执行整数压缩。4.根据权利要求1所述的系统,其中,压缩所述多个舍入浮点值包括:对所述多个舍入浮点值执行适应性分段压缩。5.根据权利要求1所述的系统,所述处理单元执行所述处理器可执行程序代码以使得所述系统:基于所述多个原始浮点值的总和,修改所述多个舍入浮点值中的一个或多个舍入浮点值,其中,所述多个舍入浮点值中的修改的一个或多个舍入浮点值中的每一个在其相应的原始浮点值的所述预先指定的误差界限内。6.根据权利要求5所述的系统,所述处理单元执行所述处理器可执行程序代码以使得所述系统:修改所述多个舍入浮点值中的一个舍入浮点值,以使所述多个原始浮点值的总和等于所述多个舍入浮点值中的修改的一个或多个舍入浮点值、所述多个舍入浮点值中的修改的一个舍入浮点值和所述多个舍入浮点值中的任何未修改的舍入浮点值的总和。7.根据权利要求6所述的系统,其中,所述多个舍入浮点值中的修改的一个舍入浮点值的位数大于所述多个舍入浮点值中的修改的一个或多个舍入浮点值和所述多个舍入浮点值中的任何未修改的舍入浮点值中的每一个的位数。8.一种计算机实现的方法,包括:接收多个原始浮点值;接收误差界限;将所述多个原始浮点值中的每一个舍入为相应的舍入浮点值,其中,每个舍入浮点值在其相应的原始浮点值的所述误差界限内;和
以压缩格式存储所述多个舍入浮点值。9.根据权利要求8所述的方法,其中,将所述多个原始浮点值中的每一个舍入为相应的舍入浮点值包括:将所述多个原始浮点值中的每一个舍入为具有第一数目的小数位的相应的第一舍入浮点值;确定每个第一舍入浮点值是否在其相应的原始浮点值的预先指定的误差界限内;和如果确定不是每个第一舍入浮点值在其相应的原始浮点值的所述预先指定的误差界限内,则将所述多个原始浮点值中的每一个舍入为具有第二数目的小数位的相应的第二舍入浮点值,并且确定每个第二舍入浮点值是否在其相应的原始浮点值的所述预先指定的误差界限内。10.根...

【专利技术属性】
技术研发人员:M鲁普
申请(专利权)人:SAP欧洲公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1