我使用 Tableau 并有一个包含 140 个字段的表。由于表的大小/宽度,性能较差。我想删除字段以提高阅读速度,但我的用户基数太大,每个字段至少有一个人使用,而 90% 的人使用相同的约 20 个字段。
此问题的最佳解决方案是什么? (Tableau 是我们的 BI 工具,BigQuery 是我们的数据库)
到目前为止我所做的: 在 Tableau 中,尚不清楚如何使用根据所选字段而变化的动态数据源。理想情况下,我想要较小的 View 或非规范化表。当用户在 Tableau 中进行选择时,基础数据源会更新到包含该字段的表或 View 。
我尝试过大 View 的简单版本,但它的性能比我的大表差,并且读取了更多的数据(请记住,我是 BigQuery,因此由于成本原因,我非常关心读取的字节数)
最佳答案
建议 1:提取您的数据。
特别是当涉及到按查询字节付费的数据源时,(Big Query、Athena 等)提取非常有意义。取决于数据对用户来说必须有多“新鲜”。 (当然,所有用户都会说“实时是唯一的出路”,但请深入研究一下,看看它实际上可能是什么。)刷新可以安排在短短 15 分钟内。刷新的真正威力以“增量刷新”的形式出现,即仅添加新记录(沿着 int 或 date 的索引)。这是降低成本的好方法 - 如果您的 BigQuery 数据库已分区 - (应该如此。)由于 Tableau 数据提取包含在 .hyper 文件(Tableau 自己设计/控制的结构)中,因此它们速度极快,并且经过完美优化,非常适合在 Tableau 中使用。
建议 2:创建 3 个(或更多)数据源。在验证这些数据源提供正确信息后,对这些数据源进行认证。为用户提供清晰的描述。
- 原始大型数据集。
- 大约 20 个字段的子集,适用于 90% 的人。
- 10% 的其余字段
- 1 的摘录
- 2 的摘录
- 3的摘录
重要的是,如果每个数据源中的字段名称都匹配(即:从未手动更改过),那么用户应该可以轻松地根据需要“扩展”到更大的数据集。这意味着他们通常总是可以从一小部分数据开始进行探索,然后使用“replace datasource” ' 功能可以切换到不同的数据源,同时保持相同的 View 。 (不过,如果要缩小规模的话,这也不太有效。)
关于performance - 商业智能数据源性能 - 大表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55681642/