adbc_driver_snowflake

低级 API

用于 Snowflake 驱动程序的低级 ADBC 绑定。

class adbc_driver_snowflake.DatabaseOptions(*values)

Bases: Enum

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

ACCOUNT = 'adbc.snowflake.sql.account'
APPLICATION_NAME = 'adbc.snowflake.sql.client_option.app_name'
AUTH_OKTA_URL = 'adbc.snowflake.sql.client_option.okta_url'

指定用于 OKTA 身份验证的 OKTAUrl

AUTH_TOKEN = 'adbc.snowflake.sql.client_option.auth_token'

指定用于 OAuth 或其他形式身份验证的令牌

AUTH_TYPE = 'adbc.snowflake.sql.auth_type'

根据 Snowflake 驱动程序的支持,指定用于 Snowflake 连接的身份验证类型。默认为“auth_snowflake”(使用 AuthType.* 常量来指定所需的身份验证类型)。

CLIENT_IDENTITY_PROVIDER = 'adbc.snowflake.sql.client_option.identity_provider'

指定用于 WIF 身份验证的工作负载身份提供程序。

CLIENT_REQUEST_MFA_TOKEN = 'adbc.snowflake.sql.client_option.cache_mfa_token'

如果为 true,MFA 令牌将缓存到凭据管理器中。Windows/OSX 默认为 true,Linux 默认为 false

CLIENT_STORE_TEMP_CRED = 'adbc.snowflake.sql.client_option.store_temp_creds'

如果为 true,ID 令牌将缓存到凭据管理器中。Windows/OSX 默认为 true,Linux 默认为 false

CLIENT_TIMEOUT = 'adbc.snowflake.sql.client_option.client_timeout'

网络往返 + 读取 HTTP 响应的超时时间,使用 http://pkg.go.dev/time#ParseDuration 格式,例如“300ms”、“1.5s”或“1m30s”。ParseDuration 接受负值,但将使用其绝对值。

DATABASE = 'adbc.snowflake.sql.db'
DISABLE_TELEMETRY = 'adbc.snowflake.sql.client_option.disable_telemetry'
HOST = 'adbc.snowflake.sql.uri.host'
JWT_EXPIRE_TIMEOUT = 'adbc.snowflake.sql.client_option.jwt_expire_timeout'

JWT 超时过期时间,使用 http://pkg.go.dev/time#ParseDuration 格式,例如“300ms”、“1.5s”或“1m30s”。ParseDuration 接受负值,但将使用其绝对值。

JWT_PRIVATE_KEY = 'adbc.snowflake.sql.client_option.jwt_private_key'

指定用于签署 JWT 的 RSA 私钥,应指向包含待加载 PKCS1 私钥的文件。通常编码为类型为“RSA PRIVATE KEY”的 PEM 块

JWT_PRIVATE_KEY_PASSWORD = 'adbc.snowflake.sql.client_option.jwt_private_key_pkcs8_password'

用于 JWT 身份验证中加密私钥的密码。

JWT_PRIVATE_KEY_VALUE = 'adbc.snowflake.sql.client_option.jwt_private_key_pkcs8_value'

解析 PKCS #8, ASN.1 DER 格式的私钥。无需从文件系统加载即可指定私钥值。

KEEP_SESSION_ALIVE = 'adbc.snowflake.sql.client_option.keep_session_alive'

登录重试超时(不包括网络往返和读取 HTTP 响应),使用 http://pkg.go.dev/time#ParseDuration 格式,例如“300ms”、“1.5s”或“1m30s”。ParseDuration 接受负值,但将使用其绝对值。即使连接关闭后,也允许会话保持存活

LOGIN_TIMEOUT = 'adbc.snowflake.sql.client_option.login_timeout'
OCSP_FAIL_OPEN_MODE = 'adbc.snowflake.sql.client_option.ocsp_fail_open_mode'
PORT = 'adbc.snowflake.sql.uri.port'
PROTOCOL = 'adbc.snowflake.sql.uri.protocol'
REGION = 'adbc.snowflake.sql.region'
REQUEST_TIMEOUT = 'adbc.snowflake.sql.client_option.request_timeout'

请求重试超时(不包括网络往返和读取 HTTP 响应),使用 http://pkg.go.dev/time#ParseDuration 格式,例如“300ms”、“1.5s”或“1m30s”。ParseDuration 接受负值,但将使用其绝对值。

ROLE = 'adbc.snowflake.sql.role'
SCHEMA = 'adbc.snowflake.sql.schema'
SSL_SKIP_VERIFY = 'adbc.snowflake.sql.client_option.tls_skip_verify'
USE_HIGH_PRECISION = 'adbc.snowflake.sql.client_option.use_high_precision'

控制用于 FIXED 数据类型的 NUMBER 列的数据类型。默认情况下,此功能已启用,所有 NUMBER 列都将以 Decimal128 列的形式返回,并使用 NUMBER 类型的精度和小数位。如果禁用,小数位为 0 的定点数据类型将作为 Int64 列返回,而非零小数位将作为 Float64 列返回。此选项必须设置为“true”或“false”。

WAREHOUSE = 'adbc.snowflake.sql.warehouse'
class adbc_driver_snowflake.StatementOptions(*values)

Bases: Enum

特定于 Snowflake 驱动程序的语句选项。

INGEST_COPY_CONCURRENCY = 'adbc.snowflake.statement.ingest_copy_concurrency'

批量摄取时并发运行的最大 COPY 操作数。通过在文件仍在上载时执行 COPY 查询来优化批量摄取性能,Snowflake 的 COPY 速度随仓库大小而扩展。因此,小型仓库可能会从更高的设置中受益,以防止长时间运行的 COPY 查询阻止其他查询加载。默认为 4。

INGEST_TARGET_FILE_SIZE = 'adbc.snowflake.statement.ingest_target_file_size'

摄取期间写入的 Parquet 文件的近似大小。由于页脚/元数据的大小,实际大小会稍大。此项不考虑批处理大小,因此如果输入流产生非常大的批次,您将获得大小相似的 Parquet 文件。默认为 10MB

INGEST_UPLOAD_CONCURRENCY = 'adbc.snowflake.statement.ingest_upload_concurrency'

并行上传的 Parquet 文件数量。更高的并发性可以缓解拥塞并利用可用的网络带宽,但会增加内存利用率。不能为负数。默认为 8

INGEST_WRITER_CONCURRENCY = 'adbc.snowflake.statement.ingest_writer_concurrency'

批量摄取时并行写入的 Parquet 文件数量。默认为 NumCPU

PREFETCH_CONCURRENCY = 'adbc.snowflake.rpc.prefetch_concurrency'

为结果集预取的并发流数量。默认为 10。

QUERY_TAG = 'adbc.snowflake.statement.query_tag'

用于查询/查询的标识符,可用于在查询历史记录中查找该查询。使用空字符串取消设置标记。

RESULT_QUEUE_SIZE = 'adbc.rpc.result_queue_size'

一次排队的批处理数量。默认为 200。

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

创建通往 Snowflake 的低级 ADBC 连接。

参数:
uristr

要连接的 URI。

db_kwargsdict, 可选

初始数据库连接参数。

DBAPI 2.0 API

适用于 ADBC Snowflake 驱动程序的 DBAPI 2.0 兼容门面。

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

通过 ADBC 连接到 Snowflake。

参数:
uristr,可选

要连接的 URI。

db_kwargsdict, 可选

初始数据库连接参数。

conn_kwargsdict, 可选

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