格式版本与稳定性#

从 1.0.0 版本开始,Apache Arrow 使用两个版本号来描述项目的每个发布版本:格式版本库版本。每个库版本都有一个对应的格式版本,并且多个库版本可能对应同一个格式版本。例如,库版本 2.0.0 和 3.0.0 可能都遵循格式版本 1.0.0。有关每个库支持的功能的详细信息,请参阅实现状态

对于 1.0.0 之前的库版本,主版本发布可能包含 API 变更。从 1.0.0 版本开始,我们遵循语义化版本(Semantic Versioning)规范来传达 API 的变更。我们预计大多数发布版本都将是库的主版本发布。

向后兼容性#

较新版本的客户端库将能够读取由较旧版本的客户端库生成的任何数据和元数据。

只要格式的主版本号不变,较新的库就与较旧的库向后兼容。

向前兼容性#

较旧版本的客户端库必须能够读取由新版本客户端库生成的数据,或者能够检测到它无法正确读取该数据。

格式版本的次版本号增加(例如从 1.0.0 到 1.1.0)表示 1.1.0 包含了 1.0.0 中没有的新功能。只要不使用这些新功能(例如新的数据类型),就能保持向前兼容性。

长期稳定性#

格式主版本号的变更(例如从 1.0.0 到 2.0.0)意味着对这些兼容性保证的某种破坏。我们不希望这种情况频繁发生。这将是一个特殊事件,如果发生,我们会非常谨慎,以确保生产应用不受损害。

1.0.0 之前的版本#

对于 1.0.0 之前的版本,我们不提供任何向前或向后兼容性保证。但是,我们尽一切努力确保新版本的客户端能够读取由 0.8.0 及之后版本的库生成的序列化数据。

1.0.0 之后的格式版本#

自 1.0.0 版本以来,Arrow 格式已经发布了五个新的次版本,而主版本没有变化。每个新的次版本都增加了新功能。当不使用这些新功能时,这些新的次要格式版本与 1.0.0 格式版本兼容。自 1.0.0 以来,每个次要格式版本中添加的新功能如下:

1.1 版本#

  • 添加了 256 位 Decimal 类型。

1.2 版本#

  • 添加了 MonthDayNano 区间类型。

1.3 版本#

1.4 版本#

1.5 版本#

  • 扩展了 Decimal 类型的位宽,以支持 32 位和 64 位类型。