为仪表板预处理大数据的工具?

数据挖掘 大数据 开源的 画面
2022-02-28 19:51:04

我有一个复杂的数据集,其中超过 1600 万行来自制药行业。关于数据,它保存在具有多个(超过 400 个)关系表的 sql server 中。数据有几个层次的层次,如省、市、邮政编码、人员和抗原测量等。我想创建许多仪表板以观察发生的变化和趋势。为此,我可以使用 Pentaho、R(闪亮)或 Tableau。但问题是数据如此庞大,使用仪表板软件处理它需要很长时间。我可以选择制作立方体并将其连接到仪表板。我的问题是我是否可以使用其他解决方案来代替制作立方体?我不想经历制作和维护立方体的麻烦。我想使用一个软件来指定表之间的关系,因此聚合/合并顺利进行并输出可以连接到仪表板的处理表。我听说 Alteryx 是一款可以为您完成的软件(我自己没有尝试过,而且它很贵!)。我了解这项任务需要两个或更多软件/工具。请分享您的意见和经验。请提及您使用什么工具、数据大小、整个系统的速度/效率以及其他必要的细节。

3个回答

我们有仪表板显示有关某些流程的信息,这些流程在数据库中有数十亿行。它不是直接查询的,而是从预先聚合的数据中查询的。

我们在数据库中运行了自动化脚本,这些脚本专门为仪表板填充聚合数据表。在大多数极端情况下,原始数据是如此之大,并且以如此高的速度进入,以至于存在两层聚合。第一层将对数据进行非规范化,第二层将进行实际的总和/计数类型的聚合。

因此,您不需要两个工具,因为您可以纯粹在数据库中进行聚合。

编辑(回答评论中的问题):我们的仪表板在 Tableau 中。数据都在 PostgreSQL 数据库中。自动化是通过执行数据库功能的 unix cronjob 完成的。该函数依次查询它必须运行的任务并运行它们。整个系统有一些移动部件,但架构并不太复杂。写下你的想法并与一些建筑师/工程师交谈——他们会知道解决这个问题的最佳方法。

由于声誉问题,我无法发表评论,但您确实需要告诉我们您正在运行的 SQL Server 版本,也许还有一些有关数据结构以及如何将数据拉入这些仪表板的更多信息。甚至可能需要多长时间以及您拥有哪些资源可以真正知道他们在做什么。

OLTP

也就是说,听起来您有一个包含大量表的 OLTP 数据库。由于我不知道这些表的关系或您如何从这些表中提取数据,因此我只能假设您正在从其中许多表中提取数据。如果由于要提取的连接和记录数量而优化表无济于事,则:

SQL Server 分析服务

听起来您需要创建一个可用于报告的多维数据库。SQL Server Analysis Services 允许您在从 MOLAP 到 ROLAP 的许多不同结构中定义 OLAP 多维数据集,从而帮助您做到这一点。

多维数据库(数据仓库)

另一种方法是创建一个新的数据库,它将成为您的多维数据的基础。因此,您需要在 SQL Server 中创建一个复杂的 ETL 系统,每天自动将这 400 个表转换为事实和维度,并将其推送到您的新数据库中。这与在 SQL Server 中定义多维数据集时 SSAS 将为您执行的过程类似。

预聚合表或视图

如果您自己不能这样做,那么另一种方法就是在您的数据库中构建新表,这些表只是将用于报告的 400 个表的预聚合。基本上确定了您如何读取仪表板的数据,并在实际将数据拉入报告之前找到将数据预聚合到更少表格中的方法。

自动化和工具

这(以及构建多维数据)只需通过创建存储过程或 SSIS 包并每天自动化该过程即可完成。然后 Tableau、SSRS 或其他查询新表而不是之前的 400 个可能会减慢进程的表。

雇用某人,您已经拥有工具

最后也是最后的方法是找到一个为您执行 ETL 的工具。有很多 ETL 供应商可以解决这个问题。但请记住,您可能拥有执行此操作所需的所有工具。你只需要雇佣人才来临时合同或全职工作。

如果我不知道自己在 SQL 中做什么,我会聘请 ETL 开发人员、SQL 开发人员或 BI 开发人员来帮助我。因为当您已经有一个好的工具箱可供您使用时,为什么还要购买另一个工具箱?

在这种情况下,我使用 RapidMiner ( RapidMiner )。有多种解决方案,例如 Hadoop 和 Radoop 或 RapidMiner 云服务等。