Google BigQuery

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

开始之前

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

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

进行连接并设置数据源

  1. 启动 Tableau,并在“连接”下选择“Google BigQuery”。有关数据连接的完整列表,请在“至服务器”下选择“更多”。在 Tableau 在默认浏览器中打开的选项卡内,请执行以下操作:

    1. 使用您的电子邮件或电话登录 Google BigQuery,然后选择“下一步”以输入您的密码。如果列出了多个帐户,请选择具有您要访问的 Google BigQuery 数据的帐户,如果尚未登录,请输入密码。

    2. 选择“接受”,以便 Tableau 能够访问您的 Google BigQuery 数据。

    3. 收到通知时关闭浏览器窗口。

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

    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 Online 和 Tableau Server 以及 Tableau Desktop 上的大型结果集的性能。

只要您在将工作簿或数据源发布到 Tableau Online 或 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 Online 或 Tableau Server 时,Tableau Desktop 将读取并包括 .tdc 文件中的定制属性。

重要信息:Tableau 不测试也不支持 TDC 文件。这些文件应用作研究数据连接或临时解决数据连接问题的工具。创建和维护 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(Link opens in a new window)(从旧版 SQL 迁移)。

排查 Google BigQuery 问题

与多个帐户的连接

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

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

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

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

另请参见

感谢您的反馈! 提交反馈时出错。请重试。