google-bigquery - 您可以使用 Tableau 在 BigQuery 中创建预聚合维度/度量(如 OLAP)吗?
问题描述
在本地 Microsoft SQL DB 的云迁移期间,作为其中一部分的 OLAP Cube 也应该被替换(但不能直接迁移)。有业务要求保留 Tableau 中的功能,您可以选择不同的度量和维度及其相应的聚合,就像现在连接到 Tableau 中的 OLAP 多维数据集时一样。
底层数据源视图包括 ca。10 个表(例如客户、销售、付款方式、客户细分、时间)。因此,通过 OLAP 分析“给我每周每个客户群每种付款方式的平均销售额”只需点击几下,在纯 SQL 中已经很费力了。
您如何为某些 BigQUery 表提供定义的聚合,而无需用户自己编写连接和聚合,主要是因为它比简单的拖放需要更多的时间(SQL 技能和查询执行时间不是问题)?
解决方案
答案很简单:
将所有源数据连接在一起,并将其写入 BigQuery 中的一个平面表,其中包含与 OLAP Cube 中的数据源视图相同的信息。然后 Tableau 连接到该表。多维数据集的“测量”逻辑在 Tableau 中实现为计算,表列是维度。
复制测量时需要小心谨慎,因为数据源视图中的 1:n 关系会导致平面表中的数据相乘。这可以通过在测量定义中正确使用不同功能(例如“不同计数”)来解决。
该表最终会变得非常大,但其上的查询非常快,与在 Tableau 中使用多维数据集的用户体验相同的 OLAP 多维数据集相比,性能有所提高。
推荐阅读
- c# - 重定向到页面 OnActionExecuting 方法 ASP.NET Core 5 MVC
- python - 找到无限互连等值面的最小值
- c - 如何修复 Visual Studio 中的堆叠溢出错误?
- c - 仅使用 Mach 和 Hurd 函数复制文件
- javascript - Spring controller give bad request 400
- mysql - The Having statement does not work in my sql
- c++ - 如何使用不同的计算操作来获得 C++ 中两个数字的结果?
- c++ - C++ 生成器和 TinyXML2
- python - For循环函数没有返回正确的输出
- java - Spring Boot Web 应用程序给出 500 内部服务器错误,而不是 404 未找到