adbc_driver_bigquery

底层 API

BigQuery 驱动程序的底层 ADBC 绑定。

class adbc_driver_bigquery.DatabaseOptions(*values)

Bases: Enum

BigQuery 驱动程序专用的数据库选项。

AUTH_CLIENT_ID = 'adbc.bigquery.sql.auth.client_id'

如果 AUTH_TYPE 为 AUTH_VALUE_USER_AUTHENTICATION,则指定用于 BigQuery 连接的客户端 ID、客户端密钥和刷新令牌。

AUTH_CLIENT_SECRET = 'adbc.bigquery.sql.auth.client_secret'
AUTH_CREDENTIALS = 'adbc.bigquery.sql.auth_credentials'

指定凭据的值。如果 AUTH_TYPE 为 AUTH_VALUE_JSON_CREDENTIAL_FILE,则该值应为 JSON 凭据文件的路径;

或者,如果 AUTH_TYPE 为 AUTH_VALUE_JSON_CREDENTIAL_STRING,则该值应为编码后的 JSON 字符串。

AUTH_REFRESH_TOKEN = 'adbc.bigquery.sql.auth.refresh_token'
AUTH_TYPE = 'adbc.bigquery.sql.auth_type'

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

AUTH_VALUE_BIGQUERY = 'adbc.bigquery.sql.auth_type.auth_bigquery'

使用 Google Cloud SDK 中实现的默认身份验证方法。

AUTH_VALUE_JSON_CREDENTIAL_FILE = 'adbc.bigquery.sql.auth_type.json_credential_file'

指定使用 JSON 凭据文件进行身份验证。

AUTH_VALUE_JSON_CREDENTIAL_STRING = 'adbc.bigquery.sql.auth_type.json_credential_string'

指定使用 JSON 凭据字符串进行身份验证。

AUTH_VALUE_USER_AUTHENTICATION = 'adbc.bigquery.sql.auth_type.user_authentication'

指定使用访问令牌进行身份验证。

DATASET_ID = 'adbc.bigquery.sql.dataset_id'

指定用于 BigQuery 连接的数据集 ID。

LOCATION = 'adbc.bigquery.sql.location'

指定用于 BigQuery 连接的位置。

PROJECT_ID = 'adbc.bigquery.sql.project_id'

指定用于 BigQuery 连接的项目 ID。

TABLE_ID = 'adbc.bigquery.sql.table_id'

指定用于 BigQuery 连接的表 ID。

class adbc_driver_bigquery.StatementOptions(*values)

Bases: Enum

BigQuery 驱动程序专用的语句选项。

ALLOW_LARGE_RESULTS = 'adbc.bigquery.sql.query.allow_large_results'

ALLOW_LARGE_RESULTS 允许查询生成任意大小的结果表。目标必须是一个表。使用此选项时,即使结果集很小,查询执行也需要更长的时间。

有关其他限制,请参阅: https://cloud.google.com/bigquery/querying-data#largequeryresults

CREATE_DISPOSITION = 'adbc.bigquery.sql.query.create_disposition'

CREATE_DISPOSITION 指定创建目标表的条件。默认值为 CREATE_IF_NEEDED

支持以下值:

  • CREATE_IF_NEEDED:如果表尚不存在,则会创建该表。在作业成功完成后,表会被原子性地创建。

  • CREATE_NEVER:确保表必须已经存在,且不会被自动创建。

CREATE_SESSION = 'adbc.bigquery.sql.query.create_session'

当为 true 时,CreateSession 将触发创建新会话。

DEFAULT_DATASET_ID = 'adbc.bigquery.sql.query.default_dataset_id'
DEFAULT_PROJECT_ID = 'adbc.bigquery.sql.query.default_project_id'

DEFAULT_PROJECT_ID 和 DEFAULT_DATASET_ID 指定查询中未限定表名所使用的数据集。如果设置了 DEFAULT_PROJECT_ID,则也必须设置 DEFAULT_DATASET_ID。

DESTINATION_TABLE = 'adbc.bigquery.sql.query.destination_table'

目标表是写入查询结果的表。如果此字段为 nil,则会创建一个临时表。

DISABLE_FLATTEN_RESULTS = 'adbc.bigquery.sql.query.disable_flatten_results'

DISABLE_FLATTEN_RESULTS 禁止展平结果。如果此字段为 false,嵌套和重复字段的结果将被展平。

DISABLE_FLATTEN_RESULTS 隐含了 ALLOW_LARGE_RESULTS。

有关更多信息,请参阅: https://cloud.google.com/bigquery/docs/data#nested

DISABLE_QUERY_CACHE = 'adbc.bigquery.sql.query.disable_query_cache'

DISABLE_QUERY_CACHE 禁止从查询缓存中获取结果。如果此字段为 false,则在结果可用时从缓存中获取。

查询缓存是一种尽力而为的缓存,只要查询中的表被修改,该缓存就会被清除。仅当查询的目标表中未指定 TableID 时,缓存结果才可用。

有关更多信息,请参阅: https://cloud.google.com/bigquery/querying-data#querycaching

DRY_RUN = 'adbc.bigquery.sql.query.dry_run'

如果为 true,则不会实际运行此作业。有效的查询将返回一个几乎为空的响应并包含一些处理统计信息,而无效查询将返回与非空运行情况相同的错误。

JOB_TIMEOUT = 'adbc.bigquery.sql.query.job_timeout'

为特定作业设置尽力而为的截止时间。如果作业执行超过此超时时间,BigQuery 可能会尝试自动取消此工作。

此截止时间一旦作业创建便无法调整或删除。

MAX_BILLING_TIER = 'adbc.bigquery.sql.query.max_billing_tier'

MAX_BILLING_TIER 设置查询的最大计费层级。资源使用超过此层级的查询将失败(不会产生费用)。如果此字段为零,将使用项目默认值。

MAX_BYTES_BILLED = 'adbc.bigquery.sql.query.max_bytes_billed'

MAX_BYTES_BILLED 限制此作业计费的字节数。超过此限制的查询将失败(不会产生费用)。如果此字段小于 1,将使用项目默认值。

PRIORITY = 'adbc.bigquery.sql.query.priority'

PRIORITY 指定调度查询的优先级。默认优先级为 INTERACTIVE

有关更多信息,请参阅: https://cloud.google.com/bigquery/querying-data#batchqueries

支持以下值:

  • BATCH:BatchPriority 指定查询应以批处理优先级进行调度。BigQuery 会代您对每个批处理查询进行排队,并在一有空闲资源时(通常在几分钟内)启动查询。如果 BigQuery 在 24 小时内未启动查询,BigQuery 会将作业优先级更改为交互式。批处理查询不计入并发速率限制,这使得同时启动许多查询变得更容易。更多信息请见: https://cloud.google.com/bigquery/docs/running-queries#batchqueries

  • INTERACTIVE:指定查询应以交互式优先级进行调度,这意味着查询会尽快执行。交互式查询计入您的并发速率限制和每日限制。这是执行查询的默认优先级。更多信息请见: https://cloud.google.com/bigquery/docs/running-queries#queries

USE_LEGACY_SQL = 'adbc.bigquery.sql.query.use_legacy_sql'

USE_LEGACY_SQL 使查询使用旧版 SQL (Legacy SQL)。

WRITE_DISPOSITION = 'adbc.bigquery.sql.query.write_disposition'

WRITE_DISPOSITION 指定如何处理目标表中的现有数据。默认值为 WRITE_EMPTY

支持以下值:

  • WRITE_APPEND:将数据追加到目标表中的任何现有数据。数据在作业成功完成后原子性地追加。

  • WRITE_TRUNCATE:覆盖目标表中的现有数据。数据在作业成功完成后原子性地覆盖。

  • WRITE_EMPTY:如果目标表已包含数据,则写入失败。

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

创建到 BigQuery 的底层 ADBC 连接。

参数:
db_kwargsdict, 可选

初始数据库连接参数。

DBAPI 2.0 API

ADBC BigQuery 驱动程序的 DBAPI 2.0 兼容门面。

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

通过 ADBC 连接到 BigQuery。

参数:
db_kwargsdict, 可选

初始数据库连接参数。

conn_kwargsdict, 可选

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