【问题标题】:Can you create preaggregated Dimensions/Measuresments like OLAP in BigQuery with Tableau?您可以使用 Tableau 在 BigQuery 中创建像 OLAP 这样的预聚合维度/度量吗?
【发布时间】:2021-03-31 11:21:50
【问题描述】:

在本地 Microsoft SQL DB 的云迁移期间,作为其中一部分的 OLAP Cube 也应该被替换(但不是直接迁移)。业务需求是保留 Tableau 中的功能,您可以选择不同的度量和维度及其相应的聚合,就像现在连接到 Tableau 中的 OLAP 多维数据集时一样。

基础数据源视图包括 ca。 10 个表(例如客户、销售、付款方式、客户细分、时间)。因此,通过 OLAP 分析“给我每周每个客户群每种付款方式的平均销售额”只需点击几下,在纯 SQL 中已经很费力了。

如何为某些 BigQUery 表提供定义的聚合,而无需用户自己编写连接和聚合,主要是因为它比简单的拖放需要更多的时间(SQL 技能和查询执行时间不是问题)?

【问题讨论】:

  • 不通过例子说明你的需求,只有知道两者的人才能回答你的问题。我觉得您正在 Tableau 中寻找 LOD 计算,它可以聚合度量而不需要预先计算,然后加入主表。我不知道我不确定并且没有发布详细答案的 bigquery。请提供一个简单的示例来解释您的需求。
  • 在 OLAP 多维数据集中预聚合度量或维度的理念是基于标准数据库中查询的缓慢性。缺点是只存在预定义的聚合,限制了交互式分析的多功能性。现代以分析为中心的数据库(如 BigQuery)使用不同的数据库方法(如列存储索引)来更快地进行任意聚合查询,从而无需预先计算结果。所以你可能会发现根本不需要预聚合。
  • 我们的目标是仍然预先聚合所有这些数据,不是因为需要,而是因为用户可以从一组不同的选项中进行选择,例如不同商店(列)中每种付款方式(行)的平均订单金额(测量值)。这种类似“PowerPivot”的行为比让用户先加入表格并计算平均值要快得多。在多维数据集定义中,我可以准备这些测量和组合。我想在 Tableau 中执行此操作/为 Tableau 使用做好准备。

标签: google-bigquery tableau-api olap


【解决方案1】:

答案很简单:

将所有源数据合并在一起,并将其写入 BigQuery 中的一个平面表,其中包含与 OLAP Cube 中的数据源视图相同的信息。然后 Tableau 连接到该表。多维数据集的“测量”逻辑在 Tableau 中实现为计算,表格列是维度。

在复制测量值时需要小心谨慎,因为数据源视图中的 1:n 关系会导致平面表中的数据相乘。这可以通过在测量定义中正确使用 Distinct Functions(例如“Distinct Count”)来解决。

该表最终会很大,但其上的查询非常快,与在 Tableau 中使用多维数据集的用户体验相同的 OLAP 多维数据集相比,性能有所提高。

【讨论】:

  • 大的、扁平的、非规范化的表在分析数据库上查询速度非常快。但是您不能只连接所有内容:您需要仔细考虑连接的结构,以便生成的表在每行中具有完全正确的详细程度。正如您所说,这需要小心,但无需太多努力即可完成。
猜你喜欢
  • 2018-11-13
  • 2015-07-03
  • 2016-07-02
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多