术语表¶
- Arrow Flight SQL¶
- 客户端 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 SQL、PostgreSQL 线路协议 或 Tabular Data Stream (Microsoft SQL Server)。 通常,应用程序不会直接实现和使用它,而是使用更高级的东西,如 ADBC、JDBC 或 ODBC 驱动程序。