google-bigquery - 从 Google BigQuery 刷新 Tableau 数据提取需要很长时间

标签 google-bigquery tableau-api

我们对 BigQuery <-> Tableau Server 与 的组合感到非常满意。实时连接 .但是,我们现在想要使用 数据提取 (500MB) 在 Tableau Server 上(因为这个数据源不是太大并且使用频率很高)。这需要 刷新时间太长 (1.5h+)。我们注意到只有 0.1% 是查询时间,其余是数据导出。由于 Tableau Server 位于相同的平台和位置,因此延迟应该不是问题。

这类似于将 BigQuery 表导出到单个文件的速度较慢,可以使用 来解决。 “菊花链”选项( wildcards )。不幸的是,我们无法在 Tableau 中对 Google BigQuery 数据提取刷新使用类似的逻辑......

我们已经确定了一些方法,但对我们目前的想法并不满意:

  • 合作增量刷新 :我们现有的 BigQuery 表行可以更改:这些更改只有在您执行完全刷新后才能在 Tableau 中应用
  • 导出 BigQuery 表到 GCS 使用菊花链选项并使用 进行 Tableau 数据提取Tableau SDK :这会导致相当多的开销...
  • 写一个 数据流作业 使用 Tableau Server 的自定义接收器(数据提取)。
  • 试验 Tableau Web 连接器 直接与 BigQuery API 通信:我认为这不会更快?我没有看到有关使用 Tableau Web 连接器并行化调用的任何信息,但我还没有尝试这种方法。

  • 我们更喜欢非技术选项,以限制维护......有没有办法修改 Tableau 连接器以利用 BigQuery 的“菊花链”选项?

    最佳答案

    您已在 BigQuery 中上传数据。您不能只使用该加载作业的输入(可能是 CSV)作为 Tableau 的输入吗?

    当我们使用 Tableau 和 BigQuery 时,我们也会注意到提取速度很慢,但我们通常不会这样做,因为您失去了 BigQuery 的能力。我们首先从实时数据连接开始,然后(如果需要)将其转换为自定义查询,该查询将该数据聚合为一个更小的数据集,该数据集只需几秒钟即可提取。

    使用 BigQuery 和 Tableau 实现更高性能的另一种方法是预先聚合或连接表。大表上的 JOIN 可能很慢,所以如果你使用了很多,你可能会考虑生成一个非规范化的数据集,它首先完成所有的 JOIN 操作。您将获得一个包含大量重复项和大量列的数据集。但是,如果您在 Tableau 中仅选择您需要的内容(隐藏未使用的字段!),那么这些列将不会计入您的查询成本。

    关于google-bigquery - 从 Google BigQuery 刷新 Tableau 数据提取需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34591728/

    相关文章:

    REST Api 调用 Google 大查询

    sql - BigQuery : Extracting month from date (STRING Type) in SQL

    if-statement - Tableau - 返回具有 MAX 值的维度

    tableau-api - 如何使用 Tableau 将字符串中每个单词的第一个字符大写?

    tableau-api - Tableau rawsqlagg_real

    google-bigquery - 如何在解析 BigQuery 的导入 csv 时发现问题

    google-bigquery - Airflow BigQueryOperator : how to save query result in a partitioned Table?

    sql - 选择每个组的最后一条记录作为物化 View bq

    tableau-api - 仅显示最后一个路径或 URL 字符串 [Tableau]