谷歌BigQuery

总结

说明
发布状态 正式发布
产品 Power BI(语义模型)
Power BI(数据流)
Fabric(Dataflow Gen2)
Power Apps(数据流)
Customer Insights(数据流)
支持的身份验证类型 组织帐户
服务帐户

注意

由于部署计划和主机特定的功能,某些功能可能存在于一个产品中,但不是其他功能。

注意

自 2021 年 7 月起,Google 停止支持从嵌入式浏览器框架登录到 Google 帐户。 由于此更改,您需要将 Power BI Desktop 版本更新到 2021 年 6 月或更高版本,以支持 Google 登录。

注意

自 2025 年 5 月以来,我们引入了 Google BigQuery 连接器的新实现,目前以预览版提供。 详细了解 此功能

先决条件

需要有 Google 帐户或 Google 服务帐户才能登录到 Google BigQuery。

支持的功能

  • 导入
  • DirectQuery(Power BI 语义模型)

通过 Power Query 桌面版连接到 Google BigQuery 数据

要从 Power Query Desktop 连接到 Google BigQuery,请执行以下步骤:

  1. 在获取数据体验中选择 Google BigQuery。 Power Query Desktop 中的“获取数据”体验因应用而异。 要详细了解 Power Query Desktop 的为你的应用获取数据体验,请转到在何处获取数据

  2. 如果要使用任何高级选项,请选择 高级选项。 否则,点击确定继续。 要了解详细信息,请转到通过高级选项进行连接

    具有高级选项选择的初始对话框的屏幕截图。

  3. Google BigQuery 连接器支持通过组织帐户或服务帐户登录进行连接。 此示例使用组织帐户登录。 选择登录继续。

    用于登录到 Google BigQuery 的身份验证对话框的屏幕截图。

    还可以使用 Google 服务帐户登录。 在这种情况下,选择服务帐户登录 ,然后输入服务帐户电子邮件和服务帐户 JSON 密钥文件内容。 然后选择“连接” 。

  4. 此时会显示“使用 Google 登录”对话框。 选择 Google 帐户并批准连接到 Power BI Desktop。

    登录 Google 对话框的屏幕截图。

  5. 登录后,选择连接以继续。

    连接到 Google BigQuery 数据的身份验证对话框的屏幕截图。

  6. 成功连接后,将出现导航器窗口,其中显示服务器上可用的数据。 在导航器中选择数据。 然后选择转换数据以在 Power Query 中转换数据,或选择加载以在 Power BI Desktop 中加载数据。

    Power Query 导航器将 Google BigQuery 数据加载到桌面应用的屏幕截图。

从 Power Query Online 连接到 Google BigQuery 数据

要从 Power Query Online 连接到 Google BigQuery,请执行以下步骤:

  1. 在“获取数据”体验中选择“Google BigQuery”选项。 不同的应用程序采用不同的方法来进入 Power Query Online 的“获取数据”体验。 要详细了解 Power Query Online 的如何从你的应用获取数据体验,请转到从何处获取数据

    Screenshot of the Get Data dialog with emphasis on the Google BigQuery connector.“获取数据”对话框的屏幕截图,其中重点介绍 Google BigQuery 连接器。

  2. Google BigQuery 数据库对话框中,您可能需要创建新连接或选择现有连接。 选择要登录的组织或服务帐户。 如果使用的是本地数据,请选择本地数据网关。 然后选择登录

    登录到 Google BigQuery 的“连接到数据源”对话框的屏幕截图。

  3. 此时会显示“使用 Google 登录”对话框。 选择 Google 帐户并批准连接。

    注意

    尽管登录对话框显示您登录后将继续使用 Power BI Desktop,但实际上您会被重定向到联机应用程序。

    登录到帐户的 Google 登录对话框的屏幕截图。

  4. 如果要使用任何高级选项,请选择高级选项。 详细信息: 通过高级选项进行连接

  5. 登录后,选择下一步继续。

    用户成功登录的“连接到数据源”对话框的屏幕截图。

  6. 成功连接后,将出现导航器窗口,其中显示服务器上可用的数据。 在导航器中选择数据。 然后选择下一步以在 Power Query 中转换数据。

    Power Query 导航器将 Google BigQuery 数据加载到联机应用的屏幕截图。

使用高级选项进行连接

Power Query Desktop 和 Power Query Online 都提供一组高级选项,可以根据需要将其添加到查询中。

下表列出了可以在 Power Query Desktop 和 Power Query Online 中设置的所有高级选项。

高级选项 说明
计费项目 ID Power Query 对其运行查询的项目。 权限和计费与此项目相关联。 如果未提供计费项目 ID,则默认使用 Google API 返回的第一个可用项目。
使用存储 API 用于启用 Google BigQuery Storage API 的标志。 默认情况下,此选项为 true。 此选项可以设置为 false,以不使用 Storage API,而是使用 REST API。
连接超时持续时间 标准连接设置(以秒为单位),用于控制 Power Query 等待连接完成的时间。 如果连接在 15 秒(默认值)之前未完成,则可以更改此值。
命令超时持续时间 Power Query 等待查询完成并返回结果的时间。 默认值取决于驱动程序默认值。 可以输入另一个值(以分钟为单位),使连接保持打开更长时间。
项目标识 您想在其上运行原生查询的项目。
SQL 语句 有关信息,请转到使用本机数据库查询从数据库导入数据。 在此版本的本机数据库查询功能中,需要使用格式 Database.Schema.Table 的完全合格的表名,例如 SELECT * FROM DEMO_DB.PUBLIC.DEMO_TABLE。 此选项仅在 Power Query Desktop 中可用。

在选择所需的高级选项后,在 Power Query Desktop 中选择“确定”,或在 Power Query Online 中选择“下一步”,以连接到你的 Google BigQuery 数据。

新的 Google BigQuery 连接器实现(预览版)

自 2025 年 5 月以来,我们引入了 Google BigQuery 连接器的新实现,以增强与 Google BigQuery 的集成,目前以预览版提供。 它使用 Arrow Database Connectivity (ADBC) 而不是 ODBC 连接到 Google BigQuery 并从中检索数据,这可以提高性能,尤其是对于大型结果集。 随着我们继续增强并添加此连接器的新功能,我们鼓励你升级到最新版本,以试用并提供 反馈

注意

此功能在 Power BI Desktop 的 64 位版本中受支持,在 32 位版本中不起作用。

若要在 Power BI Desktop 中访问此功能,请导航到 “选项”和“设置” (在“ 文件 ”选项卡下) >选项>预览功能,然后选择该复选框以启用 “使用新的 Google BigQuery 连接器实现 ”选项。 选项打开后,所有新创建的连接将自动使用新的连接器实现。

现有连接保持不变。 可以通过在查询中添加Implementation="2.0"GoogleBigQuery.Database标志来试用该功能,如下所示。 此属性区分所使用的连接器版本。

若要在 Dataflow Gen2 中访问此功能,请在配置从 Google BigQuery 获取数据后,转到顶部功能区中的 高级编辑器 ,并在 Implementation="2.0" 查询中添加 GoogleBigQuery.Database 标志,如下所示以使用此新连接器。

Source = GoogleBigQuery.Database([Implementation = "2.0"])

注意

使用本地数据网关时,请注意支持的最低版本为 2025 年 5 月。 建议使用最新版本来评估具有最新功能的此功能。

为了帮助诊断任何潜在问题,您可以在 Mashup 日志中找到Implementation “2.0”和DriverType “ADBC”。

目前,此连接器具有以下已知限制:

  • 不支持关系。
  • 不支持代理。

限制和注意事项

本节介绍 Google BigQuery 连接器的任何限制或注意事项。

在 Power BI Desktop 中连接到 Google BigQuery

将 Google BigQuery 连接器与 Power BI 配合使用时,需要牢记一些限制和注意事项。

连接器可用性

Power BI Desktop 和 Power BI 服务中提供了 Google BigQuery 连接器。 在 Power BI 服务中,可以使用从 Power BI 到 Google BigQuery 的云到云连接访问连接器。

“访问被拒绝”错误。

尝试从 Power BI Desktop 连接到 Google BigQuery 时,可能会收到以下错误消息:

Datasource.Error: ODBC: ERROR [HY000][Microsoft][BigQuery] (100) Error interacting with REST API: Access Denied: Project <project name>: The user <user name> bigquery.jobs.create permissions in project <project name>.

在这种情况下,可能需要在 Power Query“连接设置”的“计费项目”高级选项中输入计费项目 ID。

此外,如果还使用网关在 Power BI 服务中创建报告,则仍可能会收到此错误。 在这种情况下,必须使用 Power Query 编辑器或 Power Query 公式栏在连接的 M 语言代码中手动添加计费项目 ID。 例如:

Source = GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])

嵌套字段

为了优化性能注意事项,Google BigQuery 在非规范化、平展和嵌套时能很好地处理大型数据集。

Google BigQuery 连接器支持嵌套字段,这些字段以 JSON 格式加载为文本列。

导航器的屏幕截图,其中显示了 Google BigQuery 嵌套字段支持。

用户应选择 转换数据,然后使用 Power Query 编辑器中的 JSON 分析功能提取数据。

  1. 在“转换”功能区选项卡下,选择“文本列”类别,选择“分析”,然后选择“JSON”。
  2. 使用展开列选项提取 JSON 记录字段。

设置 Google 服务帐户

有关设置或使用 Google 服务帐户的详细信息,请转到 Google 文档中的创建和管理服务帐户密钥

通过 Google 服务帐户进行身份验证

在 Power BI Desktop 中通过 Google 服务帐户进行身份验证时,连接器需要特定的凭据格式。

  • 服务帐户电子邮件:必须采用电子邮件格式。
  • 服务帐户 JSON 密钥文件内容:下载此 JSON 密钥后,必须从文件中删除所有新行,以便内容位于一行中。 JSON 文件采用该格式后,可以将内容粘贴到此字段中。

在 Power BI 服务或 Power Query Online 中通过 Google 服务帐户进行身份验证时,用户需要使用“基本”身份验证。 用户名字段映射到服务帐户电子邮件字段,密码字段映射到服务帐户 JSON 密钥文件内容字段。 在 Power BI Desktop、Power BI 服务和 Power Query Online 中,每个凭据的格式要求保持不变。

无法使用 Google BigQuery Storage API 进行身份验证

默认情况下,Google BigQuery 连接器会使用 Google BigQuery Storage API。 此功能由名为 UseStorageApi 的高级选项控制。 如果使用精细权限,则此功能可能会出现问题。 在此场景中,可能会看到以下错误消息,或无法从查询中获取任何数据:

ERROR [HY000] [Microsoft][BigQuery] (131) Unable to authenticate with Google BigQuery Storage API. Check your account permissions

通过正确调整 BigQuery Storage API 的用户权限,可以解决此问题。 需要这些存储 API 权限才能使用 BigQueryStorage API 正确访问数据:

  • bigquery.readsessions.create:通过 BigQuery Storage API 创建新的读取会话。
  • bigquery.readsessions.getData: 通过 BigQuery 存储 API 从读取会话读取数据。
  • bigquery.readsessions.update:通过 BigQuery Storage API 更新读取会话。

这些权限通常在 BigQuery.User 角色中提供。 有关详细信息,请转到 Google BigQuery 预定义角色和权限

如果上述步骤无法解决问题,可以禁用 BigQuery Storage API。

无法在直接查询模式下使用 DateTime 类型数据

已知问题是 DateTime 类型在直接查询过程中不受支持。 选择具有 DateTime 类型的列会导致 Invalid query 错误或视觉错误。

查询与表同名的列时的限制

如果要查询的列名与表名相同,BigQuery 会将该列解释为 struct,其中包含表中的所有列,而不是指定的列。 例如,SELECT debug FROM dataset.debug 会返回一个 struct,其中包含调试表中的所有列,而不是指定的调试列。 此行为不直观,正在研究修正方案。 有三种解决方法可用:

  • 解决方法 1: 使用与列名不冲突的视图包装表—CREATE VIEW dataset.new_view AS SELECT * FROM dataset.debug
  • 解决方法 2:重命名列以避免与表名冲突—ALTER TABLE dataset.debug RENAME COLUMN debug to new_debug
  • 解决方法 3: 将选择查询更改为使用 table.column 引用冲突列—SELECT debug.debug FROM dataset.debug

Power BI Desktop 导航器不支持具体化视图

已知问题是,Google BigQuery 连接器目前不支持 Power BI Desktop 导航器中的具体化视图。

  • 解决方法:利用原生查询 SQL 语句从 Google BigQuery 中提取物化视图。

HTTP 错误 403:quotaExceeded(配额超出:你的用户在同时进行的 project.lists 请求上已超出配额)

  • 在对 Google 进行 project.lists API 调用时,超出了客户帐户使用配额。 当同时刷新多个报表时,可能会在不同的查询或报表中触发错误。 为防止出现错误,安排报表以错开的时间间隔刷新。
  • 更新查询以包含计费项目 ID - GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])
  • GoogleBigQuery.Database 的调用应包含在模式和表选择所在的查询中,以避免发生错误。