术语表#

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(类型)#

值可以采用的类型,例如 Int8List[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)。

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

另请参阅

分块数组, 记录批次