术语表

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 网络协议表格数据流(Microsoft SQL Server)。通常,应用程序不会直接实现和使用它,而是使用更高级别的东西,例如 ADBC、JDBC 或 ODBC 驱动程序。