adbc_driver_manager
¶
底層 API¶
用於 Python 的底層 ADBC 綁定。
根模組提供了與 Python 中 C API 定義相當直接、一對一的映射。對於更高等級的介面,請使用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)¶
基底:
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)¶
基底:
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)¶
基底:
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)¶
基底:
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)¶
基底:
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。
- 整數
如果已知行數,則為該數字,否則為 -1。
- execute_query() Tuple[ArrowArrayStreamHandle, int] ¶
執行查詢並取得結果集。
- 傳回:
- ArrowArrayStreamHandle
結果集。
- 整數
如果已知行數,則為該數字,否則為 -1。
- execute_schema() ArrowSchemaHandle ¶
取得結果集的結構描述,而無需執行查詢。
- 傳回:
- ArrowSchemaHandle
結果集的結構描述。
- execute_update() 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¶
繼承:
object
已分配 ArrowArray 的包裝器。
此物件實作 Arrow PyCapsule 介面。
- 屬性:
address
ArrowArray 的位址。
- address¶
ArrowArray 的位址。
DBAPI 2.0 API¶
ADBC 驅動程式管理器的 PEP 249 (DB-API 2.0) API 包裝器。
資源管理¶
您必須 close()
Connection 和 Cursor 物件,否則可能會洩漏驅動程式資源。__del__
已實作為後備方案,但 Python 不保證何時會呼叫它。為了開發目的,當在 pytest 下執行時,或當環境變數 _ADBC_DRIVER_MANAGER_WARN_UNCLOSED_RESOURCE
設定為 1
時,__del__
將會引發 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。這也可能是要載入的程式庫路徑。
- 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)¶
基底:
_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)¶
基底:
_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 Protocol 的 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 為實驗性。
- 傳回:
- 整數
插入的列數,如果驅動程式無法提供此資訊,則為 -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 計劃作為位元組傳遞。
- parameters
要綁定的參數。可以是 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_arrow_table() Table ¶
將結果的所有列提取為 PyArrow 表格。
這實作了與 DuckDB 類似的 API。
筆記
這是一個擴充功能,並非 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¶
繼承:
object
ADBC 控制代碼的基底類別,它們是上下文管理器。
- class adbc_driver_manager.dbapi._Closeable¶
基底:
ABC
提供上下文管理器介面的基底類別。
基底:
_Closeable
共享 AdbcDatabase 的持有者。
例外¶
- exception adbc_driver_manager.DatabaseError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
基底:
Error
與資料庫相關的錯誤。
- exception adbc_driver_manager.DataError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
-
與已處理資料相關的錯誤。
- exception adbc_driver_manager.Error(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
基底:
Exception
符合 PEP 249 的基底例外類別。
- 屬性:
- status_codeAdbcStatusCode
原始 ADBC 狀態代碼。
- vendor_codeint,可選
如果存在,則為供應商特定的狀態代碼。
- sqlstate字串,可選
如果存在,則為 SQLSTATE 代碼。
- detailslist[tuple[str, bytes]],可選
其他錯誤詳細資訊(如果存在)。
- exception adbc_driver_manager.IntegrityError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
-
與關聯完整性相關的錯誤。
- exception adbc_driver_manager.InterfaceError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
基底:
Error
與資料庫介面相關的錯誤。
- exception adbc_driver_manager.InternalError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
-
與資料庫內部錯誤相關的錯誤。
- exception adbc_driver_manager.NotSupportedError(message, *, vendor_code=None, sqlstate=None, details=None)¶
-
不支援的操作或某些功能。
- exception adbc_driver_manager.OperationalError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
-
與資料庫操作相關的錯誤,不在使用者控制範圍內。
- exception adbc_driver_manager.ProgrammingError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)¶
-
與使用者錯誤相關的錯誤。
- exception adbc_driver_manager.Warning¶
基底:
UserWarning
符合 PEP 249 標準的基底警告類別。