adbc_driver_bigquery

底层 API

BigQuery 驱动的底层 ADBC 绑定。

class adbc_driver_bigquery.DatabaseOptions(*values)

基类:Enum

BigQuery 驱动特定的数据库选项。

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

如果 AUTH_TYPE 是 AUTH_VALUE_USER_AUTHENTICATION,则指定用于 BigQuery 连接的客户端 ID、客户端密钥和 refresh_token

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)

基类: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。

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 区分多个“连接”对象共享的“数据库”对象。)