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