Format Atlas

数据

什么是 Apache Arrow 文件?

Apache Arrow 提供列式数据格式及相关库;Arrow IPC 将这些数据序列化,以便进程和应用程序之间交换。文件版通常使用 .arrow 扩展名,并可借助页脚随机访问记录批次。流版通常使用 .arrows,按顺序传递消息。Feather V2 是基于 Arrow IPC 文件格式的一种称呼。

.arrow · .feather · .arrows进程间列式数据交换

适合选择此格式的场景

  • 在 Arrow 库和分析引擎之间移动带类型的数据
  • 在 IPC 文件版中随机访问记录批次

不宜选择此格式的场景

  • 在普通电子表格程序中直接编辑
  • 不检查 IPC 模式和压缩支持就跨工具打开

常见用途

  • 在兼容的程序和语言之间交换列式表格数据
  • 在支持 Arrow 的工具之间传递分析数据集

特点

  • 以二进制形式序列化列式架构、类型和记录批次
  • 文件版通过页脚偏移量随机访问记录批次
  • 流版按顺序发送架构和记录批次等消息
  • 数据缓冲区可以不压缩,也可以使用 LZ4 或 Zstandard 压缩

优点和缺点

优点

  • 可在多种语言和分析库之间交换列式数据
  • 兼容实现可以保留类型信息和嵌套结构
  • 文件版便于直接访问选定的记录批次

缺点

  • 二进制内容不像 CSV 或 JSON 那样可直接阅读
  • 不同工具和库版本对 Arrow IPC 及压缩方式的支持可能不同
  • 它与 Parquet 等存储格式的用途不同

打开和转换

如何打开

使用 Apache Arrow 库或支持 Arrow IPC 的分析工具读取。.arrow 通常表示文件版,.arrows 通常表示流版,但应确认接收工具所需的 IPC 模式和压缩编解码器。处理 Feather 文件时,也要确认其与旧版 Feather V1 的兼容性。

如何转换

Parquet 可用于分析数据存储和分发;CSV 适用于简单表格交换。转换可能改变或丢失 Arrow 专有类型、嵌套结构、字典编码或压缩设置。请确认所需类型和精度,并保留源数据。

注意事项

  • Arrow IPC 不提供机密性或完整性保护。敏感数据应通过有访问控制的渠道传输。
  • 请使用可信且更新的 Arrow 实现验证来源不明的二进制文件,避免使用不安全的读取器。
  • 文件版和流版不能互换;编解码器支持差异也可能导致文件无法读取。

常见问题

Arrow IPC 与 Parquet 有什么区别?

Arrow IPC 用于在程序之间交换列式数据;Parquet 是面向分析存储的列式文件格式。应根据系统环境以及交换还是保存数据的目的来选择。

Feather 和 .arrow 是同一种格式吗?

Feather V2 基于 Arrow IPC 文件格式,可使用 .feather 或 .arrow 扩展名。较旧的 Feather V1 兼容性不同,请确认版本。

相关格式

对比

参考资料与规范