词汇表

Arrow Flight SQL

一种使用 Apache Arrow 的数据系统网络协议。请参阅规范

客户端 API

应用程序用于与数据库交互的 API。它可能会抽象底层网络协议和其他细节。例如,ADBC、JDBC、ODBC。

连接

在 ADBC 中,连接对象/结构代表与数据库的单个连接。可以从一个数据库创建多个连接。

数据库

在 ADBC 中,数据库对象/结构保存了跨连接共享的状态。

驱动程序

广义上说,一个使用网络协议实现客户端 API的库。例如,ADBC PostgreSQL 驱动程序公开 ADBC 客户端 API 并通过 PostgreSQL 网络协议与 PostgreSQL 数据库交互。JDBC PostgreSQL 驱动程序使用相同的网络协议,但公开 JDBC 客户端 API。

ADBC 驱动程序可以作为库以不同的语言实现,包括 C++、C#、Go 和 Rust。驱动程序可以直接导入到使用相同语言实现的应用程序中,也可以编译成共享库(Linux 的.so文件,macOS 的.dylib文件,或 Windows 的.dll文件),并使用驱动程序管理器动态加载到任何受支持语言的应用程序中。

驱动程序管理器

用于加载和使用驱动程序的库。驱动程序管理器实现 ADBC API 并委托给动态加载的驱动程序。它简化了在单个应用程序中使用多个驱动程序的过程,并使得无论应用程序是用何种语言编写的,都可以使用用任何语言编写的驱动程序。

每种语言中的驱动程序管理器都相似。在 C/C++ 中,它可以动态加载驱动程序,因此应用程序不必直接链接它们。(因为所有驱动程序都公开相同的 API,否则它们的符号会冲突。)在 Python 中,它加载驱动程序并提供 Python 绑定。

驱动程序清单

一个描述驱动程序的文件(TOML 格式)。此文件的结构是 ADBC 规范的一部分。驱动程序管理器可以从该文件加载驱动程序,从而简化了用户的操作过程。

入口点

驱动程序导出的函数名称,驱动程序管理器在加载驱动程序时调用该函数,以执行驱动程序所需的任何初始化。名称遵循AdbcDriverInitFunc中概述的约定,但也可以使用其他名称。

语句

在 ADBC 中,语句对象/结构保存执行单个查询的状态。查询本身、绑定参数、结果集等都与语句绑定。可以从一个连接创建多个语句(尽管并非所有驱动程序都支持此功能)。

Substrait

Substrait 自称是“关系代数的跨语言序列化”。它的操作空间类似于 SQL,但更底层。您不太可能手动编写 Substrait 查询,但可能会使用选择生成 Substrait 而非 SQL 的工具,以获得更可预测的语义。

网络协议

数据库驱动程序连接到数据库、发出命令、获取结果等的实际方式。例如,Arrow Flight SQLPostgreSQL 网络协议表格数据流(Microsoft SQL Server)。通常,应用程序不会直接实现和使用它,而是使用更高级别的东西,例如 ADBC、JDBC 或 ODBC 驱动程序。