Google BigQuery

本文介绍如何将 Tableau 连接到 Google BigQuery 并设置数据源。

注意:Tableau Prep Builder 不支持本文中列出的某些功能和自定义项。有关在 Prep Builder 中连接到数据的详细信息,请参见连接到数据(链接在新窗口中打开)

开始之前

在开始之前,请收集以下连接信息:

  • Google BigQuery 电子邮件或电话和密码

 

推荐配置

设置自定义 OAuth 客户端以使用贵公司的 IT 策略

您可以使用自定义 OAuth 客户端根据您自己的 IT 策略完全控制您的 OAuth 配置。使用您自己的 OAuth 客户端的选项使您免于受制于 Tableau 发布周期和 Tableau 的 OAuth 客户端轮换计划。有关如何配置您自己的 OAuth 客户端的信息,请参见为站点配置自定义 OAuth

进行连接并设置数据源

注意:注意:若要将服务帐户凭据用于新的 Google BigQuery 数据源,必须在 Tableau Desktop 中创建连接。

  1. 启动 Tableau,并在“连接”下选择“Google BigQuery”

    选择以下两个选项之一以继续。

     

    选项 1:

    1. 在“身份验证”中,选择“使用 OAuth 登录”
    2. 单击“登录”
    3. 输入您的密码以继续。
    4. 选择“接受”,以允许 Tableau 访问您的 Google BigQuery 数据。系统将提示您关闭浏览器。

     

     

    选项 2:

    提示:如果您使用 Tableau Server 或 Tableau Cloud 进行发布,则必须首先登录您正在使用的产品,然后在帐户设置下添加您保存的 Google BigQuery 凭据。这将防止“无效凭据错误”。

    1. 在“身份验证”中,选择“使用服务帐户 (JSON) 文件登录”
    2. 输入文件路径或使用“浏览”按钮进行搜索。
    3. 单击“登录”
    4. 输入您的密码以继续。
    5. 选择“接受”,以允许 Tableau 访问您的 Google BigQuery 数据。系统将提示您关闭浏览器。
  2.  

  3. 在数据源页面上,执行下列操作:

    1. (可选)在页面顶部选择默认数据源名称,然后输入要在 Tableau 中使用的唯一数据源名称。例如,使用可帮助其他数据源用户推断出要连接的数据源的数据源命名约定。

    2. (可选)从“计费项目”下拉列表中,选择计费项目。如果您未选择计费项目,则在选择剩余字段后,字段中将显示 EmptyProject

    3. “项目”下拉列表中,选择项目。或者,选择“publicdata”以连接到 BigQuery 中的示例数据。

    4. “数据集”下拉列表中,选择数据集。

    5. “表”下,选择一个表。

      使用自定义 SQL 连接到特定查询,而非整个数据源。有关详细信息,请参见连接到自定义 SQL 查询

注意:
- Google BigQuery 已从支持 BigQuery 旧版 SQL (BQL) 改为支持标准 SQL。当您在 Tableau 中打开工作簿时,工作簿将升级以支持标准 SQL。
- 由于 BigQuery 中存在大量数据,Tableau 建议您实时连接。
- Google BigQuery 不支持 Radians() 函数。

使用自定义属性来提高查询性能

注意:Tableau Prep Builder 中当前不支持自定义属性。

您可以使用自定义属性来提高从 BigQuery 返回到 Tableau Cloud、Tableau Server 以及 Tableau Desktop 上的大型结果集的性能。

只要您在将工作簿或数据源发布到 Tableau Cloud 或 Tableau Server 之前指定自定义属性,就可以将这些属性包括在发布的工作簿或数据源中。

使用 Google BigQuery 自定义属性

自定义属性接受整数值,并会对实时查询和指定连接的数据提取刷新产生影响。

以下属性对提高大型结果集的性能帮助最大:

bq-fetch-tasks使用 HTTP 获取数据时使用的并行后台任务数。默认值为 10。
bq-large-fetch-rows

要在每一批脱机查询中获取的行数。默认值为 50000。

以下属性也可用,用于小型查询:

bq-fetch-rows要在每一批非脱机查询中获取的行数。默认值为 10000。
bq-response-rows非脱机非分批查询中返回的行数。默认值为 10000。

此能力设置接受 yes 或 no 值,在测试时可能很有用。

CAP_BIGQUERY_FORCE_SPOOL_JOB强制所有查询使用临时表方法。默认值为“no”。将值更改为“yes”以启用此属性。

Tableau 如何从 Google BigQuery 中返回行

Tableau 使用两种方法从 BigQuery 中返回行:默认的非脱机方法,或临时表(脱机)方法:

  • 第一次尝试时,将使用默认的非脱机查询执行查询,该查询使用 bq-fetch-rows 设置。

  • 如果结果集太大,BigQuery API 将返回错误,并且 Tableau BigQuery 连接器将通过将结果保存到 BigQuery 临时表中来重试查询。然后,BigQuery 连接器从临时表中进行读取,这是一项使用 bq-large-fetch-rows 设置的脱机作业。

如何指定属性

您可以用以下两种方式之一指定属性:在 Tableau 数据源定制 .tdc 文件中,或在工作簿或数据源 XML 中。

.tdc 文件中指定属性

若要在从 Tableau Desktop 发布工作簿或发布数据源的操作过程中指定自定义属性,请执行以下步骤:

  1. 创建一个包含自定义属性的 XML 文件。

  2. 使用 .tdc 扩展名保存该文件,例如,BigQueryCustomization.tdc

  3. 将文件保存到 My Tableau Repository\Datasources 文件夹。

将数据源或工作簿发布到 Tableau Cloud 或 Tableau Server 时,Tableau Desktop 将读取并包括 .tdc 文件中的定制属性。

重要信息:TDC 文件可用于定制连接的功能或诊断和解决与连接数据相关的问题。Tableau 无法彻底测试您可能对这些文件进行的所有潜在修改。创建和使用 TDC 文件需要手动编辑,并且在将其部署到生产环境之前对其进行彻底测试至关重要。

包括大型数据提取建议设置的 .tdc 文件示例
<connection-customization class='bigquery' enabled='true' version='8.0' >
  <vendor name='bigquery' />
  <driver name='bigquery' />
  <customizations>
    <customization name='bq-fetch-tasks' value='10' />
    <customization name='bq-large-fetch-rows' value='10000' />
  </customizations>
</connection-customization>

在工作簿或数据源文件的 XML 中手动嵌入属性

您可以在工作簿 .twb 文件或数据源 .tds 文件中的“connection”标记内手动嵌入自定义属性。BigQuery 自定义属性在以下示例中显示为粗体,更加便于您查看。

手动嵌入的属性的示例

<connection CATALOG='publicdata' EXECCATALOG='some-project-123' REDIRECT_URI='some-url:2.0:oob' SCOPE='https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email' authentication='yes' bq-fetch-tasks='10' bq-large-fetch-rows='10000'bq_schema='samples' class='bigquery' connection-dialect='google-bql' connection-protocol='native-api' login_title='Sign in to Google BigQuery' odbc-connect-string-extras='' project='publicdata' schema='samples' server='googleapis.com/bigquery' server-oauth='' table='wikipedia' username=''>

检查您的工作簿使用的是标准 SQL 还是旧版 SQL

2016 年,Google 更新了 BigQuery API 以支持标准 SQL,此外还支持 BigQuery SQL(现称为旧版 SQL)。从 Tableau 10.1 开始,Google BigQuery 连接器已升级以支持标准 SQL,并且还仍然支持旧版 SQL。利用标准 SQL,BigQuery 连接器的用户能够使用详细级别表达式、更快验证元数据以及通过连接来选择计费项目。

现在,当您创建工作簿时,默认情况下 Tableau 支持标准 SQL。Tableau 还使用“数据”窗格中的“使用旧版 SQL”选项支持旧版 SQL。例如,打开使用以前版本的 Tableau Desktop 创建的工作簿时,如果您的工作簿使用旧版 SQL,则“使用旧版 SQL”选项处于选中状态。

您可能需要配置“使用旧版 SQL”选项,原因如下:

  • 您有一个现有工作簿,并且想要将该工作簿更新为使用标准 SQL,以便编写详细级别表达式或利用其他改进之处。在这种情况下,请确保未选择“使用旧版 SQL”选项。

  • 您要创建一个必须连接到旧版 SQL 视图的工作簿。您无法将旧版 SQL 与标准 SQL 混用,因此您必须选择“使用旧版 SQL”选项才能使工作簿正常工作。

在 Google BigQuery 中,视图采用标准 SQL 或旧版 SQL 编写。您可以将采用标准 SQL 编写的视图联接到采用标准 SQL 编写的视图,或将采用旧版 SQL 编写的视图联接到采用旧版 SQL 编写的视图,并且可以将采用任一 SQL 版本编写的视图联接到表。但您无法在一个工作簿中联接采用标准 SQL 编写的视图和采用旧版 SQL 编写的视图。在联接视图时,您必须设置“使用旧版 SQL”复选框以与所连接到的视图中使用的 SQL 类型对应。

注意:如果您使用旧版 SQL 或标准 SQL,Tableau Desktop 可为嵌套数据提供有限的支持。举例来说,如果表包含嵌套数据,并且您使用旧版 SQL 或标准 SQL,则数据源页面上的“立即更新”将不起作用。

有关从旧版 SQL 迁移到标准 SQL 的详细信息,请参见 Google 云端平台网站上的 Migrating from legacy SQL(链接在新窗口中打开)(从旧版 SQL 迁移)。

使用 BigQuery BI Engine 分析数据

您可以使用 BigQuery BI Engine 执行快速、低延迟的分析服务,并通过 BigQuery 支持的报告和仪表板进行交互式分析。有关详细信息,包括如何将 BigQuery BI Engine 与 Tableau 集成的说明,请参见 Google 文档中的通过使用 BI Engine 和 Tableau 分析 BigQuery 数据

排查 Google BigQuery 问题

与多个帐户的连接

使用 Web 制作或发布到 Web 时,您无法在同一工作簿中使用 Google BigQuery 帐户。Desktop 中可以有多个 Google BigQuery 帐户连接。

发布流程时,您用于在输入步骤中连接到 Google BigQuery 的凭据必须与 Tableau ServerTableau Cloud 中 Google BigQuery 的“我的帐户设置”页面内的“设置”选项卡中设置的凭据匹配。在发布流程时,如果在身份验证设置中选择不同的凭据或者不选择凭据,流程将会失败,并出现身份验证错误,直至您在 Tableau Server 或 Tableau Cloud 中编辑流程连接以匹配这些凭据为止。

使用 Internet Explorer 11 和 Edge 进行 Web 制作

在 Internet Explorer 11 和 Edge 中,您无法使用不安全的连接 (http) 访问服务器。使用安全连接 (https) 或改用另一个浏览器。

另请参见

感谢您的反馈!您的反馈已成功提交。谢谢!