adbc_driver_manager
¶
低级 API¶
用于 Python 的低级 ADBC 绑定。
根模块提供了对 Python 中 C API 定义的相当直接的 1:1 映射。对于更高级别的接口,请使用 adbc_driver_manager.dbapi
。(这需要 PyArrow。)
常量和枚举¶
- class adbc_driver_manager.AdbcStatusCode(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
IntEnum
指示错误类型的状态代码。
- ALREADY_EXISTS = 4¶
- CANCELLED = 11¶
- INTEGRITY = 8¶
- INTERNAL = 9¶
- INVALID_ARGUMENT = 5¶
- INVALID_DATA = 7¶
- INVALID_STATE = 6¶
- IO = 10¶
- NOT_FOUND = 3¶
- NOT_IMPLEMENTED = 2¶
- OK = 0¶
- TIMEOUT = 12¶
- UNAUTHENTICATED = 13¶
- UNAUTHORIZED = 14¶
- UNKNOWN = 1¶
- class adbc_driver_manager.GetObjectsDepth(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
IntEnum
为 adbc_get_objects 获取多少数据。
- ALL = 0¶
- CATALOGS = 1¶
- COLUMNS = 0¶
- DB_SCHEMAS = 2¶
- TABLES = 3¶
- class adbc_driver_manager.ConnectionOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
Enum
驱动程序之间标准化的连接选项。
并非所有驱动程序都支持所有选项。
- CURRENT_CATALOG = 'adbc.connection.catalog'¶
获取/设置当前目录。
- CURRENT_DB_SCHEMA = 'adbc.connection.db_schema'¶
获取/设置当前模式。
- ISOLATION_LEVEL = 'adbc.connection.transaction.isolation_level'¶
设置事务隔离级别。
- class adbc_driver_manager.DatabaseOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
Enum
驱动程序之间标准化的数据库选项。
并非所有驱动程序都支持所有选项。
- PASSWORD = 'password'¶
设置用于用户名密码身份验证的密码。
- URI = 'uri'¶
要连接到的 URI。
- USERNAME = 'username'¶
设置用于用户名密码身份验证的用户名。
- class adbc_driver_manager.StatementOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
Enum
驱动程序之间标准化的语句选项。
并非所有驱动程序都支持所有选项。
- INCREMENTAL = 'adbc.statement.exec.incremental'¶
在 ExecutePartitions 上启用增量执行。
- INGEST_MODE = 'adbc.ingest.mode'¶
对于批量导入,是创建还是追加到表。
- INGEST_TARGET_CATALOG = 'adbc.ingest.target_catalog'¶
对于批量导入,要创建/定位表的目录。此 API 为实验性。
- INGEST_TARGET_DB_SCHEMA = 'adbc.ingest.target_db_schema'¶
对于批量导入,要创建/定位表的模式。此 API 为实验性。
- INGEST_TARGET_TABLE = 'adbc.ingest.target_table'¶
对于批量导入,要导入到的表。
- INGEST_TEMPORARY = 'adbc.ingest.temporary'¶
对于批量导入,使用临时表。此 API 为实验性。
- PROGRESS = 'adbc.statement.exec.progress'¶
获取查询进度。
- adbc_driver_manager.INGEST_OPTION_MODE¶
是否将数据追加到现有表,还是为批量摄取创建新表。
- adbc_driver_manager.INGEST_OPTION_MODE_APPEND¶
将数据追加到现有表,用于批量摄取。
- adbc_driver_manager.INGEST_OPTION_MODE_CREATE¶
为批量摄取创建新表。
- adbc_driver_manager.INGEST_OPTION_TARGET_TABLE¶
为批量摄取创建或追加的目标表。
类¶
- class adbc_driver_manager.AdbcConnection¶
继承自:
_AdbcHandle
一个活动的数据库连接。
连接不是线程安全的,客户端应注意对连接的访问进行序列化。
- 参数:
- databaseAdbcDatabase
要连接的数据库。
- kwargsdict
传递给底层数据库的字符串键值选项。
方法
cancel
()尝试取消连接上的任何正在进行的操作。
close
()释放连接的句柄。
commit
()提交当前事务。
get_info
([info_codes])获取有关数据库/驱动程序的元数据。
get_objects
(depth[, catalog, db_schema, ...])获取数据库对象的层次结构视图。
get_option
(key, *[, encoding, errors])获取字符串选项的值。
get_option_bytes
(key)获取二进制选项的值。
get_option_float
(key)获取浮点选项的值。
get_option_int
(key)获取整型选项的值。
get_table_schema
(catalog, db_schema, table_name)获取表的 Arrow 模式。
获取支持的表类型的列表。
read_partition
(partition)从 execute_partitions 中获取单个分区。
rollback
()回滚当前事务。
set_autocommit
(enabled)切换是否启用自动提交。
set_options
(**kwargs)设置任意键值选项。
- cancel() None ¶
尝试取消连接上的任何正在进行的操作。
- close() None ¶
释放连接的句柄。
- commit() None ¶
提交当前事务。
- get_info(info_codes=None) ArrowArrayStreamHandle ¶
获取有关数据库/驱动程序的元数据。
- get_objects(depth, catalog=None, db_schema=None, table_name=None, table_types=None, column_name=None) ArrowArrayStreamHandle ¶
获取数据库对象的层次结构视图。
- get_option(key: str | bytes, *, encoding='utf-8', errors='strict') str ¶
获取字符串选项的值。
- 参数:
- keystr 或 bytes
要获取的选项。
- encodingstr
选项值的编码。这几乎总是 UTF-8。
- errorsstr
解码选项值时如何处理错误(参见 bytes.decode)。
- get_option_bytes(key: str) bytes ¶
获取二进制选项的值。
- get_option_float(key: str) float ¶
获取浮点选项的值。
- get_option_int(key: str) int ¶
获取整型选项的值。
- get_table_schema(catalog, db_schema, table_name) ArrowSchemaHandle ¶
获取表的 Arrow 模式。
- 返回值:
- ArrowSchemaHandle
包含模式的 C 数据接口 ArrowSchema 结构。
- get_table_types() ArrowArrayStreamHandle ¶
获取支持的表类型的列表。
- read_partition(partition) ArrowArrayStreamHandle ¶
从 execute_partitions 中获取单个分区。
- rollback() None ¶
回滚当前事务。
- set_autocommit(enabled) None ¶
切换是否启用自动提交。
- set_options(**kwargs) None ¶
设置任意键值选项。
以 kwargs 的形式传递选项:
set_options(**{"some.option": "value"})
。注意,并非所有驱动程序都支持在创建后设置选项。
另请参见
- class adbc_driver_manager.AdbcDatabase¶
继承自:
_AdbcHandle
一个数据库实例。
- 参数:
- kwargsdict
传递给底层数据库的字符串键值选项。必须至少包含“driver”以标识要加载的底层数据库驱动程序。
方法
close
()释放数据库的句柄。
get_option
(key, *[, encoding, errors])获取字符串选项的值。
get_option_bytes
(key)获取二进制选项的值。
get_option_float
(key)获取浮点选项的值。
get_option_int
(key)获取整型选项的值。
set_options
(**kwargs)设置任意键值选项。
- close() None ¶
释放数据库的句柄。
- get_option(key: str | bytes, *, encoding='utf-8', errors='strict') str ¶
获取字符串选项的值。
- 参数:
- keystr 或 bytes
要获取的选项。
- encodingstr
选项值的编码。这几乎总是 UTF-8。
- errorsstr
解码选项值时如何处理错误(参见 bytes.decode)。
- get_option_bytes(key: str) bytes ¶
获取二进制选项的值。
- get_option_float(key: str) float ¶
获取浮点选项的值。
- get_option_int(key: str) int ¶
获取整型选项的值。
- set_options(**kwargs) None ¶
设置任意键值选项。
以 kwargs 的形式传递选项:
set_options(**{"some.option": "value"})
。注意,并非所有驱动程序都支持在创建后设置选项。
另请参见
- class adbc_driver_manager.AdbcStatement¶
继承自:
_AdbcHandle
数据库语句。
语句不是线程安全的,客户端应注意序列化对连接的访问。
- 参数:
- connectionAdbcConnection
用于创建语句的连接。
方法
bind
(data[, schema])将 ArrowArray 绑定到此语句。
bind_stream
(stream)将 ArrowArrayStream 绑定到此语句。
cancel
()尝试取消连接上的任何正在进行的操作。
close
()释放对语句的句柄。
执行查询并获取结果集的各个分区。
执行查询并获取结果集。
在不执行查询的情况下获取结果集的架构。
执行查询,但没有结果集。
get_option
(key, *[, encoding, errors])获取字符串选项的值。
get_option_bytes
(key)获取二进制选项的值。
get_option_float
(key)获取浮点选项的值。
get_option_int
(key)获取整型选项的值。
获取绑定参数的 Arrow 架构。
prepare
()将此语句转换为准备好的语句。
set_options
(**kwargs)仅为此语句设置任意键值选项。
set_sql_query
(query)设置要执行的 SQL 查询。
set_substrait_plan
(plan)设置要执行的 Substrait 计划。
- bind(data, schema=None) None ¶
将 ArrowArray 绑定到此语句。
- 参数:
- dataPyCapsule 或 int 或 ArrowArrayHandle
- schemaPyCapsule 或 int 或 ArrowSchemaHandle
- bind_stream(stream) None ¶
将 ArrowArrayStream 绑定到此语句。
- 参数:
- streamPyCapsule 或 int 或 ArrowArrayStreamHandle
- cancel() None ¶
尝试取消连接上的任何正在进行的操作。
- close() None ¶
释放对语句的句柄。
- execute_partitions() Tuple[List[bytes], ArrowSchemaHandle | None, int] ¶
执行查询并获取结果集的各个分区。
并非所有驱动程序都支持此功能。
- 返回值:
- 字节列表
分布式结果集的各个分区。
- ArrowSchemaHandle 或 None
结果集的架构。如果启用了增量执行并且服务器没有返回架构,则可能是 None。
- int
如果已知,则为行数,否则为 -1。
- execute_query() Tuple[ArrowArrayStreamHandle, int] ¶
执行查询并获取结果集。
- 返回值:
- ArrowArrayStreamHandle
结果集。
- int
如果已知,则为行数,否则为 -1。
- execute_schema() ArrowSchemaHandle ¶
在不执行查询的情况下获取结果集的架构。
- 返回值:
- ArrowSchemaHandle
结果集的架构。
- execute_update() int ¶
执行查询,但没有结果集。
- 返回值:
- int
如果已知,则为受影响的行数,否则为 -1。
- get_option(key: str | bytes, *, encoding='utf-8', errors='strict') str ¶
获取字符串选项的值。
- 参数:
- keystr 或 bytes
要获取的选项。
- encodingstr
选项值的编码。这几乎总是 UTF-8。
- errorsstr
解码选项值时如何处理错误(参见 bytes.decode)。
- get_option_bytes(key: str) bytes ¶
获取二进制选项的值。
- get_option_float(key: str) float ¶
获取浮点选项的值。
- get_option_int(key: str) int ¶
获取整型选项的值。
- get_parameter_schema() ArrowSchemaHandle ¶
获取绑定参数的 Arrow 架构。
这将检索一个 Arrow 架构,该架构描述参数化语句中参数的数量、名称和类型。架构的字段应按参数的序号排列;命名参数应只出现一次。
如果参数没有名称,或者无法确定名称,则架构中相应字段的名称将为空字符串。如果无法确定类型,则相应字段的类型将为 NA(NullType)。
这应该在
prepare()
之后调用。- 引发:
- NotSupportedError
如果无法确定架构。
- prepare() None ¶
将此语句转换为准备好的语句。
- set_options(**kwargs) None ¶
仅为此语句设置任意键值选项。
以 kwargs 的形式传递选项:
set_options(**{"some.option": "value"})
。注意,并非所有驱动程序都支持在创建后设置选项。
另请参见
- set_sql_query(query) None ¶
设置要执行的 SQL 查询。
- set_substrait_plan(plan) None ¶
设置要执行的 Substrait 计划。
- class adbc_driver_manager.ArrowArrayHandle¶
Bases:
object
分配的 ArrowArray 的包装器。
此对象实现了 Arrow PyCapsule 接口。
- 属性:
address
ArrowArray 的地址。
- address¶
ArrowArray 的地址。
DBAPI 2.0 API¶
ADBC 驱动程序管理器的 PEP 249(DB-API 2.0)API 包装器。
资源管理¶
您必须close()
连接和游标对象,否则驱动程序资源可能会泄漏。__del__
作为后备实现,但 Python 不保证何时调用它。对于开发,__del__
在 pytest 下运行或环境变量 _ADBC_DRIVER_MANAGER_WARN_UNCLOSED_RESOURCE
设置为 1
时将引发 ResourceWarning。
常量和枚举¶
- adbc_driver_manager.dbapi.apilevel = '2.0'¶
DB-API API 级别(2.0)。
- adbc_driver_manager.dbapi.paramstyle = 'qmark'¶
参数样式 (qmark)。这是硬编码的,但实际上取决于驱动程序。
- adbc_driver_manager.dbapi.threadsafety = 1¶
线程安全级别(连接可能无法共享)。
- adbc_driver_manager.dbapi.Date = <class 'datetime.date'>¶
日期值的类型。
- adbc_driver_manager.dbapi.Time = <class 'datetime.time'>¶
时间值的类型。
- adbc_driver_manager.dbapi.Timestamp(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]) = <class 'datetime.datetime'>¶
时间戳值的类型。
- adbc_driver_manager.dbapi.BINARY = frozenset({14, 35})¶
二进制列的类型。
- adbc_driver_manager.dbapi.DATETIME = frozenset({16, 17, 18, 19, 20})¶
日期时间列的类型。
- adbc_driver_manager.dbapi.NUMBER = frozenset({2, 3, 4, 5, 6, 7, 8, 9, 11, 12})¶
数值列的类型。
- adbc_driver_manager.dbapi.ROWID = frozenset({9})¶
“行 ID” 列的类型。
- adbc_driver_manager.dbapi.STRING = frozenset({13, 34})¶
字符串列的类型。
函数¶
- adbc_driver_manager.dbapi.connect(*, driver: str, entrypoint: str | None = None, db_kwargs: Dict[str, str] | None = None, conn_kwargs: Dict[str, str] | None = None, autocommit=False) Connection ¶
通过 ADBC 连接到数据库。
- 参数:
- driver
驱动程序名称。例如,“adbc_driver_sqlite” 将尝试在 Linux 系统上加载 libadbc_driver_sqlite.so,在 MacOS 上加载 libadbc_driver_sqlite.dylib,在 Windows 上加载 adbc_driver_sqlite.dll。这也可能是在 Linux 系统上加载的库的路径。
- entrypoint
驱动程序特定的入口点,如果与默认值不同。
- db_kwargs
传递给驱动程序以初始化数据库的键值参数。
- conn_kwargs
传递给驱动程序以初始化连接的键值参数。
- autocommit
是否启用自动提交。为了与 DB-API 兼容,默认情况下禁用此选项。如果无法禁用,将发出警告。
- adbc_driver_manager.dbapi.DateFromTicks(ticks: int) date ¶
从秒数计数构造日期值。
- adbc_driver_manager.dbapi.TimeFromTicks(ticks: int) time ¶
从秒数计数构造时间值。
- adbc_driver_manager.dbapi.TimestampFromTicks(ticks: int) datetime ¶
从秒数计数构造时间戳值。
类¶
- class adbc_driver_manager.dbapi.Connection(db: AdbcDatabase | _SharedDatabase, conn: AdbcConnection, conn_kwargs: Dict[str, str] | None = None, *, autocommit=False)¶
Bases:
_Closeable
DB-API 2.0 (PEP 249) 连接。
不要直接创建此对象;使用 connect()。
- 属性:
adbc_connection
获取底层 ADBC 连接。
adbc_current_catalog
当前目录的名称。
adbc_current_db_schema
当前模式的名称。
adbc_database
获取底层 ADBC 数据库。
方法
取消此连接上的任何正在进行的操作。
创建一个新的 Connection,共享同一个底层数据库。
获取有关数据库和驱动程序的元数据。
adbc_get_objects
(*[, depth, catalog_filter, ...])列出目录、模式、表等。
adbc_get_table_schema
(table_name, *[, ...])按名称获取表的 Arrow 模式。
列出服务器知道的表类型。
close
()关闭连接。
commit
()显式提交。
cursor
()创建一个新的游标来查询数据库。
rollback
()显式回滚。
- adbc_cancel() None ¶
取消此连接上的任何正在进行的操作。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_clone() Connection ¶
创建一个新的 Connection,共享同一个底层数据库。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- property adbc_connection: AdbcConnection¶
获取底层 ADBC 连接。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- property adbc_current_catalog: str¶
当前目录的名称。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- property adbc_current_db_schema: str¶
当前模式的名称。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- property adbc_database: AdbcDatabase¶
获取底层 ADBC 数据库。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_get_info() Dict[str | int, Any] ¶
获取有关数据库和驱动程序的元数据。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_get_objects(*, depth: Literal['all', 'catalogs', 'db_schemas', 'tables', 'columns'] = 'all', catalog_filter: str | None = None, db_schema_filter: str | None = None, table_name_filter: str | None = None, table_types_filter: List[str] | None = None, column_name_filter: str | None = None) RecordBatchReader ¶
列出数据库中的目录、模式、表等。
- 参数:
- depth
要返回信息的对象。
- catalog_filter
返回的目录名称的可选过滤器。
- db_schema_filter
返回的数据库模式名称的可选过滤器。
- table_name_filter
返回的表名称的可选过滤器。
- table_types_filter
返回的表类型的可选列表。
- column_name_filter
返回的列名称的可选过滤器。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_get_table_schema(table_name: str, *, catalog_filter: str | None = None, db_schema_filter: str | None = None) Schema ¶
按名称获取表的 Arrow 模式。
- 参数:
- table_name
要获取架构的表名。
- catalog_filter
一个可选的表目录名称筛选器。
- db_schema_filter
一个可选的表数据库架构名称筛选器。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_get_table_types() List[str] ¶
列出服务器知道的表类型。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- close() None ¶
关闭连接。
警告
未能关闭连接可能会导致内存或数据库连接泄漏。
- commit() None ¶
显式提交。
- rollback() None ¶
显式回滚。
- class adbc_driver_manager.dbapi.Cursor(conn: Connection)¶
Bases:
_Closeable
一个 DB-API 2.0 (PEP 249) 游标。
不要直接创建此对象,使用 Connection.cursor()。
- 属性:
adbc_statement
获取底层 ADBC 语句。
arraysize
使用 fetchmany() 每次获取的行数。
connection
获取与此游标关联的连接。
description
结果集的架构。
rowcount
获取结果集的行数,如果未知则为 -1。
rownumber
获取当前行号,如果不可用则为 None。
方法
取消此语句上的任何正在进行的操作。
adbc_execute_partitions
(operation[, parameters])执行查询并获取分布式结果集的各个分区。
adbc_execute_schema
(operation[, parameters])在不执行查询的情况下获取结果集的架构。
adbc_ingest
(table_name, data[, mode, ...])将 Arrow 数据导入到数据库表中。
adbc_prepare
(operation)准备查询而不执行它。
adbc_read_partition
(partition)读取分布式结果集的分区。
callproc
(procname, parameters)调用存储过程(不支持)。
close
()关闭游标并释放资源。
execute
(operation[, parameters])执行查询。
executemany
(operation, seq_of_parameters)使用多个参数集执行查询。
executescript
(operation)执行多个语句。
将结果的所有行作为 PyArrow 表获取。
fetch_df
()将结果的所有行作为 Pandas DataFrame 获取。
将结果作为 PyArrow RecordBatchReader 获取。
fetchall
()获取结果的所有行。
将结果的所有行作为 PyArrow 表获取。
fetchmany
([size])获取结果的一些行。
fetchone
()获取结果的一行。
next
()获取下一行,或引发 StopIteration。
nextset
()移动到下一个可用的结果集(不支持)。
setinputsizes
(sizes)为参数预分配内存(无操作)。
setoutputsize
(size[, column])为结果集预分配内存(无操作)。
- adbc_cancel() None ¶
取消此语句上的任何正在进行的操作。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_execute_partitions(operation, parameters=None) Tuple[List[bytes], Schema] ¶
执行查询并获取分布式结果集的各个分区。
- 返回值:
- partitions字节列表
分区描述符列表,可以使用 read_partition 读取。
- schemapyarrow.Schema 或 None
结果集的架构。如果启用了增量查询执行并且服务器尚未返回架构,则可能为 None。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_execute_schema(operation, parameters=None) Schema ¶
在不执行查询的情况下获取结果集的架构。
- 返回值:
- pyarrow.Schema
结果集的架构。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_ingest(table_name: str, data: RecordBatch | Table | RecordBatchReader, mode: Literal['append', 'create', 'replace', 'create_append'] = 'create', *, catalog_name: str | None = None, db_schema_name: str | None = None, temporary: bool = False) int ¶
将 Arrow 数据导入到数据库表中。
根据驱动程序的不同,这可以避免在典型的 prepare-bind-insert 循环中出现的每行开销。
- 参数:
- table_name
要插入的表。
- data
要插入的 Arrow 数据。这可以是 pyarrow RecordBatch、Table 或 RecordBatchReader,或者任何实现 Arrow PyCapsule 协议的 Arrow 兼容数据(即具有
__arrow_c_array__
或__arrow_c_stream__
方法)。- mode
如何处理现有数据
‘append’: 附加到表(如果表不存在则出错)
‘create’: 创建一个表并插入(如果表存在则出错)
‘create_append’: 创建一个表(如果不存在)并插入
‘replace’: 删除现有的表(如果有),然后与 ‘create’ 相同
- catalog_name
如果给出,则创建/定位表的目录。 **此 API 处于实验阶段。**
- db_schema_name
如果给出,则创建/定位表的架构。 **此 API 处于实验阶段。**
- temporary
是否将数据导入到临时表中。大多数驱动程序不支持与 catalog_name 和/或 db_schema_name 一起设置此项。 **此 API 处于实验阶段。**
- 返回值:
- int
插入的行数,如果驱动程序无法提供此信息,则为 -1。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_prepare(operation: bytes | str) Schema | None ¶
准备查询而不执行它。
要随后执行查询,请使用相同的查询调用
execute()
或executemany()
。这不会第二次准备查询。- 返回值:
- pyarrow.Schema 或 None
绑定参数的架构,如果无法确定架构,则为 None。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- adbc_read_partition(partition: bytes) None ¶
读取分布式结果集的分区。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- property adbc_statement: AdbcStatement¶
获取底层 ADBC 语句。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- property arraysize: int¶
使用 fetchmany() 每次获取的行数。
- callproc(procname, parameters)¶
调用存储过程(不支持)。
- close()¶
关闭游标并释放资源。
- property connection: Connection¶
获取与此游标关联的连接。
这是一个可选的 DB-API 扩展。
- property description: List[tuple] | None¶
结果集的架构。
- execute(operation: bytes | str, parameters=None) None ¶
执行查询。
- 参数:
- operation字节或字符串
要执行的查询。将 SQL 查询作为字符串传递,将(序列化)Substrait 计划作为字节传递。
- 参数
要绑定的参数。可以是 Python 序列(用于提供一组参数),也可以是 Arrow 记录批次、表或记录批次读取器(用于提供多个参数,每个参数将依次绑定)。
- executemany(operation: bytes | str, seq_of_parameters) None ¶
使用多个参数集执行查询。
此方法不会生成结果集。
- 参数:
- operation字节或字符串
要执行的查询。将 SQL 查询作为字符串传递,将(序列化)Substrait 计划作为字节传递。
- seq_of_parameters
要绑定的参数。可以是 Python 序列列表,也可以是 Arrow 记录批次、表或记录批次读取器。如果为 None,则查询将执行一次,否则将为每行执行一次。
- executescript(operation: str) None ¶
执行多个语句。
如果有待处理的事务,则先提交。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- fetch_df() pandas.DataFrame ¶
将结果的所有行作为 Pandas DataFrame 获取。
这实现了类似于 DuckDB 的 API。
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- fetch_record_batch() RecordBatchReader ¶
将结果作为 PyArrow RecordBatchReader 获取。
这实现了类似于 DuckDB 的 API:https://duckdb.org/docs/guides/python/export_arrow.html#export-as-a-recordbatchreader
备注
这是一个扩展,不是 DBAPI 标准的一部分。
- fetchall() List[tuple] ¶
获取结果的所有行。
- fetchmany(size: int | None = None) List[tuple] ¶
获取结果的一些行。
- fetchone() tuple | None ¶
获取结果的一行。
- next()¶
获取下一行,或引发 StopIteration。
- nextset()¶
移动到下一个可用的结果集(不支持)。
- property rowcount: int¶
获取结果集的行数,如果未知则为 -1。
- property rownumber: int | None¶
获取当前行号,如果不可用则为 None。
- setinputsizes(sizes)¶
为参数预分配内存(无操作)。
- setoutputsize(size, column=None)¶
为结果集预分配内存(无操作)。
内部机制¶
不要直接使用这些。
- class adbc_driver_manager._lib._AdbcHandle¶
Bases:
object
ADBC 句柄的基类,ADBC 句柄是上下文管理器。
- class adbc_driver_manager.dbapi._Closeable¶
Bases:
ABC
提供上下文管理器接口的基类。
Bases:
_Closeable
共享 AdbcDatabase 的持有者。
异常¶
- exception adbc_driver_manager.DatabaseError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
Error
与数据库相关的错误。
- exception adbc_driver_manager.DataError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
DatabaseError
与处理数据相关的错误。
- exception adbc_driver_manager.Error(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
Exception
符合 PEP 249 的基本异常类。
- 属性:
- status_codeAdbcStatusCode
原始 ADBC 状态代码。
- vendor_codeint,可选
如果存在,则为特定于供应商的状态代码。
- sqlstatestr,可选
如果存在,则为 SQLSTATE 代码。
- detailslist[tuple[str, bytes]],可选
如果存在,则为其他错误详细信息。
- exception adbc_driver_manager.IntegrityError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
DatabaseError
与关系完整性相关的错误。
- exception adbc_driver_manager.InterfaceError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
Error
与数据库接口相关的错误。
- exception adbc_driver_manager.InternalError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
DatabaseError
与数据库内部错误相关的错误。
- exception adbc_driver_manager.NotSupportedError(message, *, vendor_code=None, sqlstate=None, details=None)¶
Bases:
DatabaseError
某个操作或功能不受支持。
- exception adbc_driver_manager.OperationalError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
DatabaseError
与数据库操作相关的错误,不受用户控制。
- exception adbc_driver_manager.ProgrammingError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
Bases:
DatabaseError
与用户错误相关的错误。
- exception adbc_driver_manager.Warning¶
Bases:
UserWarning
符合 PEP 249 的基本警告类。