#数值 #增量 #数据 #编解码器 #无损 #pco

应用 pco_cli

压缩、检查和解压缩 pco 数据

6 个版本 (3 个破坏性更新)

0.3.0 2024年7月3日
0.2.0 2024年4月6日
0.1.0 2023年11月29日
0.0.0 2023年11月15日
0.0.0-alpha.02023年7月7日

#489 in 压缩

Apache-2.0 和可能 GPL-2.0-or-later

440KB
11K SLoC

Crates.io

设置

您可以使用 CLI 压缩、解压缩和检查独立的 .pco 文件。按照以下设置操作

  1. 安装 Rust: https://rust-lang.net.cn/tools/install
  2. cargo安装 pco_cli

这将为您提供 pcodec 命令。

命令信息

您始终可以获得帮助,例如 pcodecpcodec compress --help

基准测试

此命令运行基准测试,接收您提供的数据,并打印出您请求的任何编解码器的压缩时间、解压缩时间和压缩比率。

pcodec bench --parquet my_input_data.parquet
pcodec bench \
  --csv my_input_data.csv \
  --csv-has-header \
  --codecs pco:level=9,parquet:compression=zstd4 \
  --dtypes f32 \
  --datasets foo,bar \
  --iters 7 \
  --limit 999999 \
  --save-dir ./tmp
pcodec bench --binary-dir ./data

设置合成数据

从广泛的进程和分布中生成测试数据的一种方法是从 pcodec 仓库中的 generate_randoms.py 脚本。要运行它,设置一个已安装 numpy 的 python3 环境。在该环境中,cd'd 到仓库的根目录,运行 python pco_cli/generate_randoms.py。这将填充 data/txt/ 中的某些可读数据,以及与 data/binary/ 中相同的数值数据。

除非提供其他输入,否则 pcodec bench 将在 ./data/binary/ 路径下搜索。

压缩

此命令将 .csv 或 .parquet 文件的单列压缩到 .pco 文件。

示例

pcodec compress --csv my.csv --col-name my_column out.pco
pcodec compress --parquet my.snappy.parquet --col-name my_column out.pco

pcodec compress \
  --csv my.csv \
  --col-idx 0 \
  --csv-has-header \
  --dtype u32 \
  --level 7 \
  --overwrite \
  out.pco

pcodec compress \
  --csv time_series.csv \
  --col-name temperature \
  --dtype f32 \
  --delta-order 3 \
  out.pco

解压缩

此命令将 .pco 文件中的数字打印到 stdout。

示例

pcodec decompress --limit 256 in.pco

检查

此命令打印出有关 .pco 文件的信息。

示例

% pcodec inspect in.pco

依赖关系

~24–35MB
~533K SLoC