• 10.26~10.27论文,ALP: AdaptiveLossless floating-Point Compression


    ALP使用自适应编码,加强版的伪小数去编码双进度小数作为整数,如果它们产生于小数,否则就用矢量化压缩小数的前位。它的高速来源于在标量编码的实现,自动矢量化,使用他们FastLanes的库,一个高效的二阶段压缩算法,第一次采样的行组并且矢量化

    关键词

    无损压缩,浮点压缩,矢量化执行,柱式存储,大数据格式

    introduction

    数据分析管道比经典的企业数据库操作浮点数更加频繁,经典数据库通常依赖于定点小数(系统通常存储为64位小数)浮点数据也是天然适合与科学和传感器数据,可以有时间分量,产生时间序列。

    分析数据系统与大数据格式采用柱状压缩存储,通过通用或轻量级压缩方式构造

    轻量级方式,也叫做编码,使用列的类型与领域,比如FOR,Delta,Dictionary,RLE,

    前两个用于高基序列,把值编码为一些整数的增量,FOR为相较固定基数的增量,DELTA是之前数值的增量。还只编码小整数到必要的位

    然而对于IEEE754的双精度,增量会引入舍入误差,使Delta和FOR不能对原始浮点数据进行压缩

    在大数据格式里通用的方法是gzip,Zstd,Snappy,LZ4

    LZ4和snappy用更多的压缩率来交换速度,gzip相反,Zstd在中间

    通用压缩方式的缺点是他们比轻量级编码在解码上更慢。而且对任何形式都是以块压缩的方式解压

    最近,一系列新的浮点压缩方式被提出:Gorilla [38], Chimp and Chimp128 [29], PseudoDecimals (PDE) [31], Patas [24] and Elf [28].

    通用的想法是使用异或,不断操作数据流的前一个值,进行异或

    如在位的级别上,使用异或多少和加的功能有些类似,但没有舍入的误差

    Chimp对数据流中的紧前的一个数进行异或,Chimp128对更早的数进行,只不过代价是额外用7位来产生

    异或完后,大多数位为0,Chimp只存储那些不是0的位序列,Pata存储非0字节序列而不是位序列

    用压缩率来换更快的解压时间,ELF用数学方法把更多异或位变为0,来提高压缩率,代价是比较低的压缩,解压缩时间

    PDE不一样,因为它不依赖异或,它观察到大量值在存储时起先是十进制数,所以它努力去找到原始的十进制数并压缩那个

  • 相关阅读:
    【day12】二进制插入&查找组成一个偶数最接近的两个素数
    动态内存管理(2)
    K8S常用命令
    「企企通」完成Pre-D轮融资,加速采购供应链工业软件和 SaaS 网络生态构建
    单相3.5kw无变压器住宅并网光伏系统研究
    Git 的介绍、安装及其基本操作
    CRPR (clock reconvergence pessimism removal)
    Vue3 & app.use 与 install 函数的作用
    什么是MySQL的回表?
    Python使用selenium中的CSS_SELECTOR进行搞定复杂多标签定位
  • 原文地址:https://blog.csdn.net/m0_73553411/article/details/134065326