搜索快捷键 cmd + k | ctrl + k
bigquery

将 DuckDB 与 Google BigQuery 集成,允许直接查询和管理 BigQuery 数据集

维护者: hafenkran

安装和加载

INSTALL bigquery FROM community;
LOAD bigquery;

示例

-- Attach to your BigQuery Project
D ATTACH 'project=my_gcp_project' AS bq (TYPE bigquery, READ_ONLY);

-- Show all tables in all datasets in the attached BigQuery project
D SHOW ALL TABLES;
┌──────────┬──────────────────┬──────────┬──────────────┬───────────────────┬───────────┐
 database       schema         name    column_names    column_types     temporary 
 varchar       varchar        varchar   varchar[]        varchar[]       boolean  
├──────────┼──────────────────┼──────────┼──────────────┼───────────────────┼───────────┤
 bq        quacking_dataset  duck_tbl  [i, s]        [BIGINT, VARCHAR]  false     
| bq       | barking_dataset  | dog_tbl  | [i, s]       | [BIGINT, VARCHAR]  false     |
└──────────┴──────────────────┴──────────┴──────────────┴───────────────────┴───────────┘

-- Select data from a specific table in BigQuery
D SELECT * FROM bq.quacking_dataset.duck_tbl;
┌───────┬────────────────┐
   i          s        
 int32     varchar     
├───────┼────────────────┤
    12  quack 🦆       
    13  quack quack 🦆 
└───────┴────────────────┘

关于 bigquery

DuckDB BigQuery 扩展将 DuckDB 与 Google BigQuery 集成,允许直接查询和管理 BigQuery 数据集。有关详细的设置和使用说明,请访问扩展存储库

新增函数

函数名 函数类型 描述 注释 示例
bigquery_attach 附加到 BigQuery 项目。 NULL [ATTACH 'project=my_gcp_project' as bq (TYPE bigquery);]
bigquery_scan 直接从 BigQuery 扫描单个表。 NULL [SELECT * FROM bigquery_scan('my_gcp_project.quacking_dataset.duck_tbl');]
bigquery_arrow_scan 直接从 BigQuery 扫描单个表(更高效的重新实现)。 NULL [SELECT * FROM bigquery_arrow_scan('my_gcp_project.quacking_dataset.duck_tbl');]
bigquery_query 在 BigQuery 中运行自定义 GoogleSQL 查询并读取结果。 NULL [SELECT * FROM bigquery_query('bq', 'SELECT * FROM quacking_dataset.duck_tbl WHERE duck_id = 123');]
bigquery_execute 在 BigQuery 中执行任意 GoogleSQL 查询。 NULL [CALL bigquery_execute('bq', 'CREATE SCHEMA deluxe_dataset OPTIONS(location="us", default_table_expiration_days=3.75);')]
bigquery_jobs 列出 BigQuery 项目中的作业。 NULL [SELECT * FROM bigquery_jobs('bq');]
bigquery_clear_cache 清除内部缓存以从 BigQuery 重新获取最新的项目信息。 NULL [CALL bigquery_clear_cache();]

新增设置

名称 描述 输入类型 范围
bq_arrow_compression BigQuery Storage Read API 的压缩编解码器。选项:UNSPECIFIED、LZ4_FRAME、ZSTD。默认为 LZ4_FRAME。 VARCHAR GLOBAL(全局)
bq_bignumeric_as_varchar 将 BigQuery BIGNUMERIC 数据类型读取为 VARCHAR BOOLEAN GLOBAL(全局)
bq_curl_ca_bundle_path curl 的 CA 证书包路径 VARCHAR GLOBAL(全局)
bq_debug_show_queries 调试设置:将所有发送到 BigQuery 的查询打印到标准输出 BOOLEAN GLOBAL(全局)
bq_default_location BigQuery 查询的默认位置 VARCHAR GLOBAL(全局)
bq_experimental_enable_bigquery_options 是否在 CREATE 语句中启用 BigQuery OPTIONS BOOLEAN GLOBAL(全局)
bq_experimental_filter_pushdown 是否使用谓词下推(目前处于实验阶段) BOOLEAN GLOBAL(全局)
bq_experimental_use_incubating_scan 是否使用孵化中的 BigQuery 扫描实现。这目前是实验性的,未来目标是成为默认值。 BOOLEAN GLOBAL(全局)
bq_experimental_use_info_schema 是否从 BQ 信息模式中获取表信息(目前处于实验阶段)。可能比从 REST API 获取快得多。 BOOLEAN GLOBAL(全局)
bq_max_read_streams BigQuery Storage Read 的最大读取流数。设置为 0 可自动匹配 DuckDB 线程数。preserve_insertion_order 必须为 false 才能进行并行化。 BIGINT GLOBAL(全局)
bq_query_timeout_ms BigQuery 查询的超时时间(毫秒) BIGINT GLOBAL(全局)