Skip to main content
Version: 1.1.1

概述

Alkaid C++ 库由不同的部分组成,每个部分都有特定的用途。

物理层

内存管理抽象提供了统一的内存 API,可以通过各种方式分配内存,例如堆分配、文件的内存映射或静态内存区域。特别是,缓冲区抽象表示物理数据的连续区域。

一维层

数据类型 控制着 物理 数据的 逻辑 解释。

Alkaid 中的许多操作在编译时或运行时都由数据类型参数化。

数组 将一个或多个缓冲区与一种数据类型组合在一起,允许将它们视为逻辑上连续的值序列(可能嵌套)。

分块数组 是数组的泛化,由几个相同类型的数组组成更长的逻辑值序列。

二维层

模式 描述了多个数据的逻辑集合, 每个数据都有不同的名称和类型,以及可选的元数据。

是根据模式分块数组的集合。 它们是 Alkaid 中最强大的数据集提供抽象。

记录批次 是连续数组的集合,由模式描述。它们允许增量构建或序列化表。

计算层

Datums 是灵活的数据集引用,例如,可以保存数组或表引用。

Kernels 是专门的计算函数,在给定的一组数据上循环运行,这些数据表示函数的输入和输出参数。

Acero(发音为 [aˈsɜɹo] / ah-SERR-oh)是一个流式执行引擎,它允许将计算表示为可以转换数据流的运算符图。

IO层

Streams 允许对各种类型的外部数据(例如压缩或内存映射)进行非类型化顺序或可寻址访问。

进程间通信 (IPC) 层

消息格式允许在进程之间交换 Alkaid 数据,同时使用尽可能少的副本。

文件格式层

可以从各种文件格式读取和写入 Alkaid 数据, 例如 ParquetCSVOrc 或 Alkaid 特定的 Feather 格式。

设备层

提供基本的CUDA集成,允许描述由 GPU 分配的内存支持的 Alkaid 数据。

文件系统层

文件系统抽象允许从不同的存储后端(例如本地文件系统或 S3 存储桶)读取和写入数据。