Skip to content

Latest commit

 

History

History
89 lines (45 loc) · 9.36 KB

tableau-dashboards-and-big-data-learnings-e0a29cb7377c.md

File metadata and controls

89 lines (45 loc) · 9.36 KB

使用 Tableau 仪表盘处理大数据:挑战与经验

原文:towardsdatascience.com/tableau-dashboards-and-big-data-learnings-e0a29cb7377c

像专业人士一样使用 Tableau 分析大数据

Alle SravaniTowards Data Science Alle Sravani

·发表于 Towards Data Science ·阅读时长 7 分钟·2023 年 1 月 5 日

--

图片由 Myriam JessierUnsplash 提供

我的谦逊仪表盘创建旅程始于 Excel。此后,我使用了多个工具,如 Qlik、Sisense、PowerBI 和 Tableau。尽管如此,Tableau 仍然是我最喜欢的工具,因为它从未变得枯燥。它易于使用和学习,但也可以迅速变得复杂。完成任务后获得的满足感是无价的。我有机会与许多 Tableau 专家合作,逐渐掌握了制作强大视觉效果的许多技巧和窍门。尽管我已经熟练使用这个工具,我认为我仅仅是触及了表面。

最近我面临的最大挑战之一是使用大数据构建仪表盘。我需要设计一个仪表盘来跟踪推送通知对移动应用用户的效果。推送通知发送的原因有很多,包括状态更新、新优惠、提醒、活动等。根据用户数量和发送的通知,这些数据可能会变得极其庞大。当我开始处理这个项目时,源表中有三个月的数据,总共有超过 5000 万条记录!

仪表盘创建过程的最佳实践。图像由作者使用 Powerpoint 创建。

在创建新仪表板之前,应从利益相关者/最终用户那里收集所有需求。理解仪表板的目的——它是为了什么,需要跟踪哪些指标,使用什么粒度级别,需要哪些过滤器等,这一点至关重要。如果可能的话,所有这些内容都应进行文档记录。这是为了避免收到多次变更请求和浪费时间开发最终不会被使用的内容。在项目进行期间,我与利益相关者进行了几次会议,以确保满足所有需求。我还涉及了工程团队,以确保所需数据在我们的数据仓库中随时可用。

下一步是创建工程框架——在 Tableau 的情况下,这将是一个适当的数据提取,仪表板可以连接到其中。什么是提取?它们只是原始数据的保存子集,可以定期刷新。提取的最大优势是性能提升。你减少了对主要数据源的总查询次数(仅在刷新时需要)。此外,你可以汇总或仅保留所需字段,并应用过滤器以减少提取的总大小。如果提取设计得当,可以作为多个工作簿的数据源,从而节省每次创建新数据集的时间。你可以在这里阅读 Tableau 提取的完整文档。

创建提取的方法有多种:

  • 使用 Tableau Desktop 创建数据模型,然后将其发布到服务器作为提取——这种方法简单且适用于小型数据集。

  • 使用 Tableau Desktop 创建数据模型,将其发布到服务器作为“实时”连接,然后在服务器上将其更改为提取——这种方法最适合中等大小的数据集,有助于节省在本地创建提取的时间。

这是我遇到的第一个障碍。我无法创建提取,因为数据量太大。我建立了与数据集的实时连接,看看是否可以在不创建提取的情况下继续工作。这一过程简直是一场噩梦。仪表板非常缓慢,每当我尝试更改视图中的内容时,加载时间要么需要 20 秒或更长时间,要么应用程序完全停止工作。我开始寻找其他选项,直到遇到了一篇有用的文章,展示了如何创建空提取并欺骗服务器刷新数据这里

发布到 Tableau 后的成功消息。截图由作者拍摄。

我对成功创建提取感到非常兴奋。我根据规格构建了仪表板,并在经过彻底的 QA(质量保证)检查后,仪表板向所有人开放。然而,我的成功并未持续太久。几个月后,提取在服务器上未能刷新,连接自动从提取切换到实时。数据量已超过 2 亿条记录,任何尝试提取的方法,即便使用空提取技巧,也失败了。仪表板再次变得缓慢,我开始收到来自各个用户的提高性能的请求。

课程 1 — 临时修复不会持久

我知道唯一提高性能的方法是减少数据的大小并将其制作成提取。虽然在我们的数据仓库中创建数据集时,已经遵循了一些最佳实践。为了避免昂贵的联接,所有需要分析的属性(无论是用户还是推送通知)都被整合到一个大型表中(OBT)。普遍认为星型模式总是优于 OBT,因为“规范化”表需要更少的存储空间且更易于理解。然而,对于大数据分析报告,事实表和多个维度表之间的联接在检索数据时会对性能产生很大影响。有关星型模式和 OBT 之间权衡的详细解释,请参见这个博客 这里

我能进行的任何操作仅限于我为仪表板创建的数据集。现在仪表板已经完成,我注意到有些指标仅针对用户,而其他指标仅针对推送通知。这开启了新的可能性:

  • 我可以创建两个不同的数据集 — 一个用于用户,另一个用于推送通知

  • 我还可以利用 CTE(公用表表达式)和窗口查询来添加额外的指标,以避免在 Tableau 中创建一些计算字段。

通过上述更改,新聚合数据集的合并大小仅为原始数据的 3%!剩下的就是用新的数据源替换仪表板中的旧数据源。

课程 2 — 在 Tableau 上始终使用提取

我遇到的第二个障碍是,虽然 Tableau 允许你替换数据源,但不能用多个数据源替换它。没有办法选择性地将数据源分配给特定的工作表。这意味着我必须用新的数据集之一从头开始重建至少一半的整个仪表板。我对重新开始感到犹豫,因为我已经实现了很多自定义计算、参数和格式化技巧。这是我最后的选择。我在网上寻找解决方案但没有找到。我认识的一位 Tableau 专家 — Kasia Gąsiewska-Holc— 建议了一个聪明的解决方法,即从另一个工作簿复制工作表。

以下是其工作原理:

  • 复制你的原始工作簿(称之为 workbook1),并删除任何你不想替换数据源的工作表。

  • 将 workbook1 中的数据源替换为新的数据源。

  • 将 workbook1 的工作表复制并粘贴到原始工作簿中。(要复制工作表,请在底部功能区选择工作表名称,然后选择‘复制’。然后,通过右键单击功能区并选择粘贴,返回到原始工作簿。)

  • 现在就是魔法时刻了:你将有两套工作表,一套来自 workbook1 具有正确的数据源,一套来自原始数据源但具有不正确的数据源。

  • 剩下的就是交换工作表了。要交换工作表,进入仪表板并点击‘交换工作表’以确保你选择了正确的工作表。

    交换后,删除原始工作簿中不再需要的工作表。

  • 将原始工作簿的旧数据源替换为新的数据源。这将改变剩余工作表的数据源。

  • 恭喜!你已成功将单一数据源工作簿替换为两个数据源工作簿。

整个过程花费了一个小时,而手动构建一半的仪表板可能要花费我整整一天的时间。

第三课 — 与 Tableau 专家交朋友

新版仪表板上线已有一段时间,目前没有报告任何错误或性能问题。所以我猜这里的工作已经完成了。有时候,你会期待一个非常复杂的解决方案,但实际上效果最好的解决方案往往是最简单的。希望你在这里找到了有用的东西。如果你也是 Tableau 用户,我很想知道你最近使用过的最佳技巧!

继续学习,不要犹豫寻求帮助。图片由 John Schnobrich 提供,来源于 Unsplash

在你离开之前…

请在 Medium 上关注我,以免错过我未来撰写的任何新文章;你可以在我的 个人主页上找到更多我的文章。你也可以通过 LinkedIn Twitter与我联系!