术语表

Arrow Flight SQL

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

客户端 API

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

连接

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

数据库

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

驱动程序

粗略地说,这是一个使用线路协议实现客户端 API的库。 例如,ADBC PostgreSQL 驱动程序公开 ADBC 客户端 API,并通过 PostgreSQL 线路协议与 PostgreSQL 数据库交互。 JDBC PostgreSQL 驱动程序使用相同的线路协议,但公开 JDBC 客户端 API。

驱动程序管理器

这是一个帮助管理给定客户端 API 的多个驱动程序的库。 例如,JDBC 驱动程序管理器可以找到适合数据库 URI 的驱动程序实现。

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

语句

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

Substrait

Substrait 将自己描述为“关系代数的跨语言序列化”。 它在与 SQL 相似的空间中运行,但级别较低。 你不太可能手动编写 Substrait 查询,但可能会使用选择生成 Substrait 而不是 SQL 的工具,以获得更可预测的语义。

线路协议

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