词汇表#
- 数组 (array)#
- 向量 (vector)#
一个具有已知长度、所有值都具有相同类型的
连续 、一维 值序列。一个数组由零个或多个缓冲区、一个非负长度和一个数据类型组成。数组的缓冲区根据列式格式定义的数据类型进行布局。数组是连续的,因为遍历数组的值将遍历一组缓冲区,即使数组可能由多个不连续的缓冲区组成,或者可能由本身跨越多个缓冲区的子数组组成。
数组是一维的,因为它们是槽位或单一值的序列,即使对于某些数据类型(如结构体或联合体),一个槽位可能代表多个值。
由Arrow 列式格式定义。
- 缓冲区 (buffer)#
具有给定长度的
连续 内存区域。缓冲区用于存储数组的数据。缓冲区可以位于 CPU 内存、文件内存映射、设备(例如 GPU)内存等,尽管并非所有 Arrow 实现都支持所有这些可能性。
- 规范扩展类型 (canonical extension type)#
一种已被 Arrow 社区标准化的扩展类型,以提高实现之间的互操作性。
另请参阅
- 子数组 (child array)#
- 父数组 (parent array)#
在嵌套类型的数组中,父数组对应于父类型,子数组对应于子类型。例如,一个
List[Int32]类型的父数组有一个Int32类型的子数组。- 子类型 (child type)#
- 父类型 (parent type)#
在嵌套类型中,嵌套类型是父类型,子类型是其参数。例如,在
List[Int32]中,List是父类型,Int32是子类型。- 分块数组 (chunked array)#
一个具有已知长度、所有值都具有相同类型的
不连续 、一维 值序列。由零个或多个数组组成,即“分块”。分块数组是不连续的,因为遍历分块数组的值可能需要为不同的索引遍历不同的缓冲区。
不属于列式格式;此术语特定于某些 Arrow 语言实现(主要是 C++ 及其绑定)。
- 复合类型 (complex type)#
- 嵌套类型 (nested type)#
一种其结构依赖于一个或多个其他子数据类型的数据类型。例如,
List是一种具有一个子类型的嵌套类型。当且仅当它们的子类型也相等时,两个嵌套类型才相等。
- 数据类型 (data type)#
- 类型 (type)#
值可以采用的类型,例如
Int8或List[Utf8]。数组的类型决定了其值如何根据Arrow 列式格式在内存中布局。- 字典 (dictionary)#
一个伴随字典编码数组的值数组。
- 字典编码 (dictionary-encoding)#
一个将其值存储为字典数组的索引,而不是直接存储值的数组。
另请参阅
- 扩展类型 (extension type)#
- 存储类型 (storage type)#
扩展类型是用户定义的数据类型,它向现有数据类型添加了额外的语义。这允许不支持特定扩展类型的实现仍然处理底层数据类型(“存储类型”)。
例如,UUID 可以表示为 16 字节的固定大小二进制类型。
另请参阅
- 字段 (field)#
- IPC 文件格式 (IPC file format)#
- 文件格式 (file format)#
- 随机访问格式 (random-access format)#
IPC 流式传输格式的扩展,可用于将 Arrow 数据序列化到磁盘,然后随机访问单个记录批次并读取回来。
- IPC 格式 (IPC format)#
一种关于如何序列化 Arrow 数据的规范,以便可以在进程/机器之间发送或持久化到磁盘。
另请参阅
- IPC 消息 (IPC message)#
- 消息 (message)#
特定内存结构的 IPC 表示,例如记录批次或模式。始终是 Flatbuffers 协议文件中
MessageHeader的成员之一。- IPC 流式传输格式 (IPC streaming format)#
- 流式传输格式 (streaming format)#
一种用于流式传输 Arrow 数据或将数据序列化到文件的协议,由IPC 消息流组成。
- 物理布局 (physical layout)#
关于如何安排内存中值的规范。
另请参阅
- 原始类型 (primitive type)#
没有任何子数据类型的数据类型。
另请参阅
- 记录批次 (record batch)#
在 IPC 格式中:数据的基本单元。一个记录批次由一个有序的缓冲区列表组成,对应于一个模式。
在某些实现中(主要是 C++ 及其绑定):一个
连续 、二维 的数据块。一个记录批次由相同长度的数组的有序集合组成。与数组类似,记录批次是连续的,因为遍历记录批次的行将遍历一组缓冲区。
- 模式 (schema)#
- 槽位 (slot)#
数组中的单个逻辑值,即“行”。
- 表 (table)#
一个
不连续 、二维 的数据块,由有序的分块数组集合组成。所有分块数组具有相同的长度,但可能具有不同的类型。不同的列可能以不同的方式分块。与分块数组类似,表是不连续的,因为遍历表的行可能需要为不同的索引遍历不同的缓冲区。
不属于列式格式;此术语特定于某些 Arrow 语言实现(例如 C++ 及其绑定,以及 Go)。