• 17 (current)
  • 18 (dev)
  • 17
  • 16
  • 15
  • 14
  • 13
  • 0.11.0
  • 0.10.0
  • 0.9.0
  • 0.8.0
  • 0.7.0
  • 0.6.0
  • 0.5.1
  • 0.5.0
  • 0.4.0
  • 0.3.0
  • 0.2.0
  • 0.1.0
Contents - Arrow 中文 Menu - Arrow 中文 Expand - Arrow 中文 Light mode - Arrow 中文 Dark mode - Arrow 中文 Auto light/dark, in light mode - Arrow 中文 Auto light/dark, in dark mode - Arrow 中文 跳到内容
ADBC 17 文档
Light Logo Dark Logo
ADBC 17 文档
  • 常见问题解答 (FAQ)
  • 术语表
  • 索引

支持的环境

  • C/C++
    • 快速入门
    • 驱动管理器
    • 并发和线程安全
    • 驱动示例
    • C/C++ API 参考
  • C#/.NET
  • Go
  • Java
    • 快速入门
    • 驱动管理器
    • Java API 参考
  • Python
    • 快速入门
    • 驱动管理器
    • Python API 参考
      • adbc_driver_manager
      • adbc_driver_flightsql
      • adbc_driver_postgresql
      • adbc_driver_sqlite
    • Python 食谱
      • DBAPI/驱动管理器秘籍
      • Flight SQL 秘籍
      • PostgreSQL 秘籍
      • SQLite 秘籍
  • R

驱动程序

  • 安装
  • 驱动实现状态
  • DuckDB 支持
  • Flight SQL 驱动
  • JDBC 适配器
  • PostgreSQL 驱动
  • Snowflake 驱动
  • SQLite 驱动
  • 编写新驱动

规范

  • ADBC API 标准
  • 版本控制和兼容性
  • 与其他 API 的比较
  • 驱动程序和驱动管理器如何协同工作
  • 相关工作

开发

  • 贡献
  • 每日构建包
  • 版本控制
  • 发布管理指南
返回顶部
查看此页
编辑此页

相关工作¶

在最初的提案中,包含了一份对现有解决方案和系统的调查,为了方便理解,以下部分再现了该调查,但请注意,这些描述仅在尽最大努力的基础上保持最新。

预先存在的数据库客户端 API¶

Arrow Flight SQL

基于 Arrow Flight 构建的标准,定义了如何使用 Flight 与数据库通信、检索元数据、执行查询等。在 C++ 和 Java 语言中提供单个客户端,该客户端与任何实现该协议的数据库服务器通信。在 API 表面上(而非 API 设计上)模仿 JDBC 和 ODBC。

用于 R 的 DBI

用于数据库访问的 R 包/包生态系统。提供一个具有特定数据库“后端”的单一接口。 虽然是面向行的,但正在考虑与 Arrow 集成,包括一个与 ADBC 实际上相同的想法的草图。

JDBC

用于数据库访问的 Java 库,提供基于行的 API。 提供一个具有特定数据库驱动程序的单一接口。

ODBC

ISO/IEC 制定的与语言无关的数据库访问标准,与 Microsoft 相关联。 在功能上,它类似于 JDBC(实际上 JDBC 可以包装 ODBC 驱动程序),但它通过获取列值的缓冲区(有一些注意事项)来提供列式数据支持。 提供一个具有特定数据库驱动程序的单一 C 接口。

PEP 249 (DBAPI 2.0)

用于数据库访问的 Python 标准,提供基于行的 API。 不是一个单一的包,而是一组包实现的接口。

预先存在的库¶

这些库要么 1) 为特定系统实现列式数据访问;要么 2) 可以用于实现此类访问。

Arrow Flight

一种针对传输 Arrow 记录批次优化的 RPC 框架,具有特定于应用程序的扩展点,但没有任何更高级别的语义。

Arrow JDBC

一个 Java 子模块,是 Arrow/Java 的一部分,它使用 JDBC API 来生成 Arrow 数据。 在内部,它只能一次读取一行数据。

arrow-odbc

一个 Rust 社区项目,它使用 ODBC API 来生成 Arrow 数据,使用 ODBC 基于缓冲区的 API 来执行批量复制。 (另请参见:Turbodbc。)

Arrowdantic

用于 Rust 中 ODBC<>Arrow 实现的 Python 绑定。

pgeon

一个手动解析 Postgres 线格式并生成 Arrow 数据的客户端,绕过 JDBC/ODBC。 尽管它试图优化这种情况,但 Postgres 线协议仍然是面向行的。

Turbodbc

一组 Python ODBC 绑定,实现 PEP 249,它还提供 API 以将数据作为 Arrow 批次获取,从而在内部优化转换。

论文¶

Raasveldt, Mark, 和 Hannes Mühleisen. “不要扣留我的数据人质 - 客户端协议重新设计的案例”。 在 Proceedings of the VLDB Endowment, 1022–1033, 2017.

下一个
贡献
上一个
驱动程序和驱动管理器如何协同工作
版权所有 © 2022–2025 The Apache Software Foundation。 Apache Arrow、Arrow、Apache、Apache feather 标志和 Apache Arrow 项目标志是 The Apache Software Foundation 在美国和其他国家/地区的注册商标或商标。
使用 Sphinx 和 @pradyunsg 的 Furo 构建
在此页
  • 相关工作
    • 预先存在的数据库客户端 API
    • 预先存在的库
    • 论文