Tableau 可视化 - 大数据的性能问题

Posted

技术标签:

【中文标题】Tableau 可视化 - 大数据的性能问题【英文标题】:Tableau visualization - Performance issue with huge data 【发布时间】:2020-10-09 05:03:37 【问题描述】:

我有来自不同数据库源(Oracle、Mongo、Cassandra)的大量数据,还有 Kafka 中可用的事件数据。使用 Tableau 进行分析并面临海量数据的性能问题。因此,计划以其他方式存储数据并使用 Tableau 进行可视化。现在有多种选择,需要一些帮助来最终确定方法。

选项 1:-

读取数据库数据并将它们存储在 Parquet 文件中,然后通过 Spark SQL 或 HiveQL 或 Presto SQL 公开它,并让 Tableau 连接到此 SQL。

选项 2:-

读取数据库数据并将其存储在 S3 中的 Parquet 文件中,然后使用 AWS Athena 进行分析并让 Tableau 连接到 Athena。

选项 3:-

读取数据库数据并将其存储在 S3 中的 Parquet 文件中,然后移动到 Redshift 进行分析,并让 Tableau 连接到 Redshift。

不确定上述任何方法是否也是流数据 (Kafka) 分析的良好解决方案。

注意:- 我有多个大表,需要加入 b/w。

【问题讨论】:

另一个尝试的选项是以 Hyper 格式而不是 Parquet 存储文件。请参阅 Tableau 网站上的 Hyper API 【参考方案1】:

我了解您拥有来自不同来源的大量数据,并且您还可以访问 AWS。然后,您计划通过 Tableau 将这些数据用于分析和仪表板。

选项 1 和 2

您的选项 1 和 2 基本相同,因为 AWS Athena 和 Hive 基于相同的原则,即通过存储表定义的元存储在平面文件上创建表。 Athena 的 Presto 引擎和 Spark 在海量数据(TB 数据)上都是分布式且高效的。主要区别在于定价模型(Athena 基于每个请求处理的每个数据的价格,并且是无服务器的,而 Spark 可能意味着基础架构成本)。

然后,这两个选项可能不会很好地执行,因为它们不是为自助式 BI 设计的 OLAP 系统(它们更适合用于对大量数据相关的临时查询)。

然后,您可能无法使用平面文件和表或视图来管理数据模型(数据存储和压缩不会针对每个表进行优化,这可能会影响 Tableau 性能)。

选项 3

选项 3 更好,因为它基于旨在支持 OLAP 系统的 Redshift。您可以将 Tableau 直接连接到 Redshift,但您会遇到延迟,并且您可能无法根据用户和/或请求的数量来管理集群负载。但它可以按照你描述的方式工作。

然后,如果您遇到性能问题,您可以稍后创建从 Redshift 到 Tableau 的数据源提取。您还可以实现一个中间数据库来存储预聚合查询(= 数据集市)并将 Tableau 直接连接到它,这将避免每次在 Tableau 中打开仪表板时在 Redshift 上执行相同的查询(在这种情况下,Redshift 也会缓存查询)。

然后,由于您需要执行多个连接,因此您可以使用 Redshift 通过设置正确的分区和排序键来优化此类查询的数据存储。

总之,您还可以使用 Redshift Spectrum(通过 Athena/Glue 元存储)直接从 Redshift 访问平面文件。

文档:

https://docs.aws.amazon.com/redshift/latest/dg/best-practices.html https://aws.amazon.com/fr/athena/pricing/

【讨论】:

以上是关于Tableau 可视化 - 大数据的性能问题的主要内容,如果未能解决你的问题,请参考以下文章

Tableau 和大数据

Tableau 和大数据

Tableau 和大数据

Tableau 和大数据

可视化实验二:大数据可视化工具—Tableau

Tableau 云端数据可视化分析,造就企业深远竞争优势