You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery联邦数据源API配置及文件加载配置技术咨询

BigQuery联邦数据源API配置指南

嘿,既然你已经熟练搞定了批量加载文件到BigQuery的配置,那咱们来拆解一下联邦数据源的API配置怎么弄。联邦数据源的核心是让BigQuery直接查询外部数据源,不用先把数据导入到BigQuery表中,下面给你几个常见场景的配置示例和关键参数说明:

一、核心配置结构基础

联邦数据源的API配置主要通过configuration.query来定义,其中外部数据源的核心信息会通过EXTERNAL_QUERY函数的参数传递,替代了你之前加载配置里的load块。

二、常见外部数据源配置示例

1. 联邦查询Cloud Storage上的JSON/CSV文件

假设你要查询GS桶里的 newline-delimited JSON 文件(和你之前加载的格式一致),配置如下:

config = {
  'configuration' => {
    'query' => {
      'query' => 'SELECT * FROM EXTERNAL_QUERY(@external_config)',
      'parameterMode' => 'NAMED',
      'queryParameters' => [
        {
          'name' => 'external_config',
          'parameterType' => { 'type' => 'JSON' },
          'parameterValue' => {
            'value' => JSON.generate({
              'sourceUris' => ['gs://my_bucket/my_files_*'],
              'sourceFormat' => 'NEWLINE_DELIMITED_JSON',
              'schema' => { 'fields' => fields_array }, # 和你之前的schema结构完全兼容
              'maxBadRecords' => 10 # 可选:允许的错误记录数
            })
          }
        }
      ]
    }
  }
}

2. 联邦连接Cloud SQL MySQL实例

如果要连接Cloud SQL的MySQL数据源,配置会涉及数据库连接信息:

config = {
  'configuration' => {
    'query' => {
      'query' => 'SELECT * FROM EXTERNAL_QUERY(@external_config)',
      'parameterMode' => 'NAMED',
      'queryParameters' => [
        {
          'name' => 'external_config',
          'parameterType' => { 'type' => 'JSON' },
          'parameterValue' => {
            'value' => JSON.generate({
              'connectionName' => 'my-project:us-central1:my-mysql-instance',
              'database' => 'my_db',
              'table' => 'external_table_name',
              'dialect' => 'MYSQL',
              'username' => 'db_user',
              # 推荐用Secret Manager存储密码,避免明文暴露
              'password' => 'your_db_password'
            })
          }
        }
      ]
    }
  }
}

三、关键参数说明

  • EXTERNAL_QUERY函数:这是联邦查询的核心入口,通过传入JSON格式的配置参数来连接外部数据源并执行查询
  • 通用参数(文件类数据源):
    • sourceUris:外部数据的存储路径,支持通配符(和你之前加载配置的用法一致)
    • sourceFormat:外部数据格式,支持NEWLINE_DELIMITED_JSON、CSV、PARQUET等
    • schema:外部数据的结构定义,和你之前加载配置里的schema格式完全兼容
  • 数据库类数据源专属参数:
    • connectionName:Cloud SQL/Spanner等数据库实例的连接名称(格式为项目ID:区域:实例名)
    • dialect:数据库类型,比如MYSQL、POSTGRESQL
    • database/table:要查询的目标数据库和表名

四、和你现有加载配置的区别

你之前的配置是将数据加载到BigQuery表中(load操作),属于数据导入;而联邦数据源配置是直接查询外部原始数据(query操作),不需要把数据导入BigQuery,适合实时查询、数据量过大不想存储副本,或者多数据源联合分析的场景。

内容的提问来源于stack exchange,提问作者Raoot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:33:52