adbc_driver_flightsql

底层 API

用于 Flight SQL 驱动程序的底层 ADBC 绑定。

class adbc_driver_flightsql.ConnectionOptions(*values)

Bases: Enum

Flight SQL 驱动程序特有的连接选项。

OPTION_BOOL_SESSION_OPTION_PREFIX = 'adbc.flight.sql.session.optionbool.'

获取或设置布尔值会话选项。

OPTION_ERASE_SESSION_OPTION_PREFIX = 'adbc.flight.sql.session.optionerase.'

擦除会话选项(使用 “” 作为值)。

OPTION_SESSION_OPTIONS = 'adbc.flight.sql.session.options'

以 JSON 键值对的形式获取所有会话选项。

OPTION_SESSION_OPTION_PREFIX = 'adbc.flight.sql.session.option.'

获取或设置会话选项。

OPTION_STRING_LIST_SESSION_OPTION_PREFIX = 'adbc.flight.sql.session.optionstringlist.'

以 JSON 数组形式获取或设置字符串列表类型的会话选项。

RPC_CALL_HEADER_PREFIX = 'adbc.flight.sql.rpc.call_header.'

向所有传出请求添加自定义标头。

此选项应作为要添加的标头名称的前缀(即,应像这样使用 f"{ConnectionOptions.RPC_CALL_HEADER_PREFIX}x-my-header")。

会覆盖通过相应数据库选项设置的任何标头。

TIMEOUT_FETCH = 'adbc.flight.sql.rpc.timeout_seconds.fetch'

设置获取数据的调用超时时间(以浮点秒为单位)。

这对应于 Flight RPC DoGet 调用。

TIMEOUT_QUERY = 'adbc.flight.sql.rpc.timeout_seconds.query'

设置执行查询的调用超时时间(以浮点秒为单位)。

这对应于 Flight RPC GetFlightInfo 调用。

TIMEOUT_UPDATE = 'adbc.flight.sql.rpc.timeout_seconds.update'

设置上传或更新数据的调用超时时间(以浮点秒为单位)。

class adbc_driver_flightsql.DatabaseOptions(*values)

Bases: Enum

Flight SQL 驱动程序特有的数据库选项。

AUTHORITY = 'adbc.flight.sql.client_option.authority'

身份验证握手中的服务器名称

AUTHORIZATION_HEADER = 'adbc.flight.sql.authorization_header'

用于请求的授权标头。

MTLS_CERT_CHAIN = 'adbc.flight.sql.client_option.mtls_cert_chain'

启用 mTLS 并使用这些 PEM 编码的证书。

MTLS_PRIVATE_KEY = 'adbc.flight.sql.client_option.mtls_private_key'

启用 mTLS 并使用此 PEM 编码的私钥。

OAUTH_AUTH_URI = 'adbc.flight.sql.oauth.auth_uri'

OAuth 2.0 的授权端点 URL。

OAUTH_CLIENT_ID = 'adbc.flight.sql.oauth.client_id'

由授权服务器颁发给客户端应用程序的唯一标识符。

OAUTH_CLIENT_SECRET = 'adbc.flight.sql.oauth.client_secret'

与 client_id 关联的密钥。用于向授权服务器验证客户端应用程序。

OAUTH_EXCHANGE_ACTOR_TOKEN = 'adbc.flight.sql.oauth.exchange.actor_token'

代表执行方身份的安全令牌。

OAUTH_EXCHANGE_ACTOR_TOKEN_TYPE = 'adbc.flight.sql.oauth.exchange.actor_token_type'

执行方令牌类型的标识符。

请参阅 OAuthTokenType 获取支持的令牌类型。

OAUTH_EXCHANGE_AUD = 'adbc.flight.sql.oauth.exchange.aud'

令牌交换中请求的安全令牌的预期受众。

OAUTH_EXCHANGE_REQUESTED_TOKEN_TYPE = 'adbc.flight.sql.oauth.exchange.requested_token_type'

客户端希望在交换中接收的令牌类型。

请参阅 OAuthTokenType 获取支持的令牌类型。

OAUTH_EXCHANGE_RESOURCE = 'adbc.flight.sql.oauth.exchange.resource'

客户端打算在令牌交换中使用所请求安全令牌的资源服务器。

OAUTH_EXCHANGE_SCOPE = 'adbc.flight.sql.oauth.exchange.scope'

在令牌交换中为新令牌请求的特定权限。

OAUTH_EXCHANGE_SUBJECT_TOKEN = 'adbc.flight.sql.oauth.exchange.subject_token'

客户端应用程序想要交换的安全令牌。

OAUTH_EXCHANGE_SUBJECT_TOKEN_TYPE = 'adbc.flight.sql.oauth.exchange.subject_token_type'

主体令牌类型的标识符。

请参阅 OAuthTokenType 获取支持的令牌类型。

OAUTH_FLOW = 'adbc.flight.sql.oauth.flow'

指定要使用的 OAuth 2.0 流程类型。

请参阅 OAuthFlowType 获取可能的值。

OAUTH_REDIRECT_URI = 'adbc.flight.sql.oauth.redirect_uri'

OAuth 2.0 流程的重定向 URI。

OAUTH_SCOPE = 'adbc.flight.sql.oauth.scope'

客户端请求访问的权限列表,以空格分隔(例如,"read.all offline_access")。

OAUTH_TOKEN_URI = 'adbc.flight.sql.oauth.token_uri'

客户端应用程序向授权服务器请求令牌的端点 URL。

RPC_CALL_HEADER_PREFIX = 'adbc.flight.sql.rpc.call_header.'

向所有传出请求添加自定义标头。

此选项应作为要添加的标头名称的前缀(即,应像这样使用 f"{DatabaseOptions.RpcCallHeaderPrefix}.x-my-header")。

TIMEOUT_FETCH = 'adbc.flight.sql.rpc.timeout_seconds.fetch'

设置获取数据的调用超时时间(以浮点秒为单位)。

这对应于 Flight RPC DoGet 调用。

TIMEOUT_QUERY = 'adbc.flight.sql.rpc.timeout_seconds.query'

设置执行查询的调用超时时间(以浮点秒为单位)。

这对应于 Flight RPC GetFlightInfo 调用。

TIMEOUT_UPDATE = 'adbc.flight.sql.rpc.timeout_seconds.update'

设置上传或更新数据的调用超时时间(以浮点秒为单位)。

TLS_OVERRIDE_HOSTNAME = 'adbc.flight.sql.client_option.tls_override_hostname'

覆盖用于 TLS 的主机名。

TLS_ROOT_CERTS = 'adbc.flight.sql.client_option.tls_root_certs'

使用这些 PEM 编码的根证书进行 TLS 连接。

TLS_SKIP_VERIFY = 'adbc.flight.sql.client_option.tls_skip_verify'

不验证服务器的 TLS 证书。

WITH_BLOCK = 'adbc.flight.sql.client_option.with_block'

阻塞并等待连接建立。

启用 Cookie 中间件。默认禁用(“false”)。

WITH_MAX_MSG_SIZE = 'adbc.flight.sql.client_option.with_max_msg_size'

设置最大 gRPC 消息大小(以字节为单位)。默认值为 16 MiB。

class adbc_driver_flightsql.OAuthFlowType(*values)

Bases: Enum

Flight SQL 驱动程序支持的 OAuth 2.0 流程类型。

将这些值与 DatabaseOptions.OAUTH_FLOW 一起使用。

CLIENT_CREDENTIALS = 'client_credentials'

OAuth 2.0 客户端凭据流程(RFC 6749 第 4.4 节)。

当客户端应用程序需要使用其自身凭据向授权服务器进行身份验证时使用。

TOKEN_EXCHANGE = 'token_exchange'

OAuth 2.0 令牌交换流程(RFC 8693)。

当客户端应用程序想要用一个安全令牌交换另一个安全令牌时使用。

class adbc_driver_flightsql.OAuthTokenType(*values)

Bases: Enum

用于令牌交换的 OAuth 2.0 令牌类型(RFC 8693)。

将这些值与令牌类型选项一起使用,例如 DatabaseOptions.OAUTH_EXCHANGE_SUBJECT_TOKEN_TYPE, DatabaseOptions.OAUTH_EXCHANGE_ACTOR_TOKEN_TYPE, 以及 DatabaseOptions.OAUTH_EXCHANGE_REQUESTED_TOKEN_TYPE

ACCESS_TOKEN = 'urn:ietf:params:oauth:token-type:access_token'

OAuth 2.0 访问令牌。

ID_TOKEN = 'urn:ietf:params:oauth:token-type:id_token'

OpenID Connect ID 令牌。

JWT = 'urn:ietf:params:oauth:token-type:jwt'

JSON Web 令牌 (JWT)。

REFRESH_TOKEN = 'urn:ietf:params:oauth:token-type:refresh_token'

OAuth 2.0 刷新令牌。

SAML1 = 'urn:ietf:params:oauth:token-type:saml1'

SAML 1.1 断言。

SAML2 = 'urn:ietf:params:oauth:token-type:saml2'

SAML 2.0 断言。

class adbc_driver_flightsql.StatementOptions(*values)

Bases: Enum

Flight SQL 驱动程序特有的语句选项。

LAST_FLIGHT_INFO = 'adbc.flight.sql.statement.exec.last_flight_info'

最新的 FlightInfo 值。

线程安全。主要在执行增量执行时有用,高级客户端可能希望在不等待 execute_partitions 返回的情况下检查服务中最新的 FlightInfo。(服务可能会发送带有 progress/app_metadata 值的更新版 FlightInfo,但只有在有新端点时 execute_partitions 才会返回。)

QUEUE_SIZE = 'adbc.rpc.result_queue_size'

每个分区的队列批次数。默认值为 5。

此选项控制结果集的预读取量。

RPC_CALL_HEADER_PREFIX = 'adbc.flight.sql.rpc.call_header.'

向所有传出请求添加自定义标头。

此选项应作为要添加的标头名称的前缀(即,应像这样使用 f"{ConnectionOptions.RPC_CALL_HEADER_PREFIX}x-my-header")。

覆盖通过相应数据库或连接选项设置的任何标头。

SUBSTRAIT_VERSION = 'adbc.flight.sql.substrait.version'

设置 Flight SQL 请求中传递的 Substrait 版本。

大多数服务器不会使用此选项,因为 Substrait 规范在最初添加到 Flight SQL 之后已更新为将版本直接嵌入到计划本身中。

TIMEOUT_FETCH = 'adbc.flight.sql.rpc.timeout_seconds.fetch'

设置获取数据的调用超时时间(以浮点秒为单位)。

这对应于 Flight RPC DoGet 调用。

TIMEOUT_QUERY = 'adbc.flight.sql.rpc.timeout_seconds.query'

设置执行查询的调用超时时间(以浮点秒为单位)。

这对应于 Flight RPC GetFlightInfo 调用。

TIMEOUT_UPDATE = 'adbc.flight.sql.rpc.timeout_seconds.update'

设置上传或更新数据的调用超时时间(以浮点秒为单位)。

adbc_driver_flightsql.connect(uri: str, db_kwargs: Dict[str, str] | None = None) AdbcDatabase

创建与 Flight SQL 后端的底层 ADBC 连接。

参数:
uristr

要连接的 URI。

db_kwargsdict, 可选

初始数据库连接参数。

DBAPI 2.0 API

用于 ADBC Arrow Flight SQL 驱动程序的 DBAPI 2.0 兼容接口。

adbc_driver_flightsql.dbapi.connect(uri: str, db_kwargs: Dict[str, str] | None = None, conn_kwargs: Dict[str, str] | None = None, **kwargs) Connection

通过 ADBC 连接到 Flight SQL 后端。

参数:
uristr

要连接的 URI。

db_kwargsdict, 可选

初始数据库连接参数。

conn_kwargsdict, 可选

连接特定参数。(ADBC 区分多个“连接”对象共享的“数据库”对象。)