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

  • 相关阅读:
    ubuntu系统安装配置gitlab+Jenkins+发布持续集成持续部署保姆级教程。
    Makefile 基础(二)—— Makefile 自动推导+ Makefile伪目标
    Linux云计算之网络基础9——园区网络架构项目
    Android 网络配置
    配置spring boot actuator跟踪 http 请求
    Java HTTP连接客户端,选 HttpClient 还是 OkHttp ?
    AI+音视频双引擎驱动,保司线上服务能力全面升级 | 爱分析报告
    全局表、表锁、行锁
    springboot FTP服务器 上传&&下载示例demo
    【Mysql】学习笔记
  • 原文地址:https://blog.csdn.net/m0_73553411/article/details/134065326