#orc #analytics #read #apache #rle #decode #metadata

orc-format

Apache ORC 规范在安全 Rust 中的非官方实现

4 个版本 (2 个重大更改)

0.3.0 2022年7月30日
0.2.0 2022年7月28日
0.1.1 2022年7月20日
0.1.0 2022年7月19日

#1564编码

Download history 28/week @ 2024-03-13 19/week @ 2024-03-20 17/week @ 2024-03-27 29/week @ 2024-04-03 9/week @ 2024-04-10 10/week @ 2024-04-17 19/week @ 2024-04-24 13/week @ 2024-05-01 8/week @ 2024-05-08 11/week @ 2024-05-15 23/week @ 2024-05-22 30/week @ 2024-05-29 278/week @ 2024-06-05 483/week @ 2024-06-12 217/week @ 2024-06-19 370/week @ 2024-06-26

每月下载量 1,358
2 crate 中使用

MIT/Apache

62KB
1.5K SLoC

使用 Rust 读取 Apache ORC

test codecov

使用 Rust 读取 Apache ORC

此仓库类似于 parquet2Avro-schema,提供了一套工具来

  • 读取 ORC 文件(proto 结构)
  • 读取 stripes(将 proto 元数据转换为内存区域的过程)
  • 解码 stripes(解码 stripes 为例如布尔值、RLE 运行等的过程)

目前支持以下(逻辑)类型

  • 布尔值
  • 字符串
  • 整数
  • 浮点数

尚未实现的内容

  • Snappy、LZO 解压缩
  • RLE v2 Patched Base 解码
  • RLE v1 解码
  • 解码非原生逻辑类型的实用函数
    • 十进制
    • 时间戳
    • 结构
    • 列表
    • 联合

运行测试

python3 -m venv venv
venv/bin/pip install -U pip
venv/bin/pip install -U pyorc
venv/bin/python write.py
cargo test

依赖项

~2.5MB
~57K SLoC