词汇表#

数组#
向量#

一个连续的、一维的具有已知长度的值序列,其中所有值具有相同的类型。数组由零个或多个缓冲区、一个非负长度和一个数据类型组成。数组的缓冲区根据列式格式定义的数据类型进行排列。

数组是连续的,因为迭代数组的值将迭代单个缓冲区集,即使数组可能包含多个不相交的缓冲区,或者可能包含跨越多个缓冲区的子数组。

数组是一维的,因为它们是或单个值的序列,即使对于某些数据类型(如结构体或联合体),一个槽可能表示多个值。

Arrow 列式格式定义。

缓冲区#

具有给定长度的连续内存区域。缓冲区用于存储数组的数据。

缓冲区可能位于 CPU 内存中、从文件内存映射、在设备(例如 GPU)内存中等等,尽管并非所有 Arrow 实现都支持所有这些可能性。

规范扩展类型#

一个扩展类型,已由 Arrow 社区标准化,以提高实现之间的互操作性。

另请参见

规范扩展类型.

子数组#
父数组#

嵌套类型的数组中,父数组对应于父类型,子数组对应于子类型。例如,List[Int32] 类型父数组具有 Int32 类型子数组。

子类型#
父类型#

嵌套类型中,嵌套类型是父类型,子类型是其参数。例如,在List[Int32] 中,List 是父类型,Int32 是子类型。

分块数组#

一个不连续的、一维的具有已知长度的值序列,其中所有值具有相同的类型。由零个或多个数组组成,即“块”。

分块数组是不连续的,因为迭代分块数组的值可能需要为不同的索引迭代不同的缓冲区。

不是列式格式的一部分;此术语特定于 Arrow 的某些语言实现(主要是 C++ 及其绑定)。

另请参见

记录批次表格

复杂类型#
嵌套类型#

一个数据类型,其结构取决于一个或多个其他子数据类型。例如,List 是一个具有一个子类型的嵌套类型。

当且仅当它们的子类型也相等时,两个嵌套类型才相等。

数据类型#
类型#

值可以采用的类型,例如Int8List[Utf8]。数组的类型决定了它的值如何根据Arrow 列式格式在内存中排列。

另请参见

嵌套类型基本类型

字典#

一个与字典编码数组一起的值数组。

字典编码#

一个数组,它将它的值存储为指向字典数组的索引,而不是直接存储值。

另请参见

字典编码布局

扩展类型#
存储类型#

扩展类型是用户定义的数据类型,它为现有数据类型添加了额外的语义。这允许不支持特定扩展类型的实现仍然处理底层数据类型(“存储类型”)。

例如,UUID 可以表示为 16 字节固定大小的二进制类型。

另请参见

扩展类型

字段#

模式中的列。由字段名称、数据类型、一个指示字段是否可为空的标志以及可选的键值元数据组成。

IPC 文件格式#
文件格式#
随机访问格式#

IPC 流格式的扩展,可用于将 Arrow 数据序列化到磁盘,然后使用随机访问方式读取单个记录批次。

IPC 格式#

关于如何序列化 Arrow 数据的规范,以便可以在进程/机器之间发送,或持久化到磁盘。

IPC 消息#
消息#

特定内存中结构的 IPC 表示形式,例如记录批次模式。始终是Flatbuffers 协议文件MessageHeader 成员之一。

IPC 流格式#
流格式#

用于流式传输 Arrow 数据或将数据序列化到文件的协议,由IPC 消息流组成。

物理布局#

关于如何在内存中排列值的规范。

另请参见

物理内存布局

基本类型#

没有子类型的数据类型。

另请参见

数据类型

记录批次#

IPC 格式:数据的基本单位。记录批次由与模式对应的有序缓冲区列表组成。

在某些实现中(主要是 C++ 及其绑定):连续的、二维的数据块。记录批次由有序的相同长度的数组集合组成。

与数组一样,记录批次是连续的,因为迭代记录批次的记录将迭代单个缓冲区集。

模式#

一个字段集合,具有可选的元数据,确定记录批次表格等对象的所有数据类型

#

数组中的单个逻辑值,即“行”。

表格#

一个不连续的、二维的数据块,由有序的分块数组集合组成。所有分块数组具有相同的长度,但可能具有不同的类型。不同的列可能以不同的方式进行分块。

与分块数组一样,表格是不连续的,因为迭代表格的记录可能需要为不同的索引迭代不同的缓冲区。

不是列式格式的一部分;此术语特定于 Arrow 的某些语言实现(例如 C++ 及其绑定和 Go)。

A graphical representation of an Arrow Table and a Record Batch, with structure as described in text above.

另请参见

分块数组记录批次