为可视化准备百万行数据

Posted

技术标签:

【中文标题】为可视化准备百万行数据【英文标题】:Preparing million rows data for visulation 【发布时间】:2015-03-28 09:09:30 【问题描述】:

我们希望开发一个基于 Web 的应用程序,该应用程序能够使用数百万行数据生成报告,并且它每秒都在增长。我们使用的是mysql数据库。

我们希望使用这些数据生成报告。这就是为什么我们需要过滤数据,对其进行一些计算并将其用作图表,表格等...构建图表,表格是可以的,我正在询问如何导出数据。

获取报表数据的第一种方法是使用原生 SQL 查询; 但是,每个报表的过滤和计算都很慢,所以我们将有超过 100 个用户可以导出报表。

第二种方法是使用视图; 我们可以为自定义计算和视图构建视图,这是一种处理计算的简单方法,但查询速度很慢。所以过滤会减慢我们的速度。

我不知道我是否可以使用外部工具来实时过滤和计算数据。生成报告数据的最佳和快速方法是什么。

【问题讨论】:

您需要一个适当的服务器,该服务器也配置得很好,以便您使用它的资源 - 不要使用默认的 MySQL 配置。您的数据方案将在这里成为一个重要因素。报告一旦完成,就应该被缓存,并在新数据进入时更新缓存 - 这称为物化视图或物化视图。 MySQL 的 MariaDB fork 有一个叫做 Flexviews 的东西,它随着数据的进入而增量更新,它非常高效。基本上,您可以将缓存与最佳服务器和数据架构配置相结合。 对于一百万(正确索引)行,默认设置应该没问题 【参考方案1】:

数据库级别的过滤应该比其他方式更快。由于我没有太多关于您的数据库、表和查询的信息,您可以尝试修改表架构、在过滤列上添加键、使用解释查询、更改 where 子句中过滤列的顺序、仅提取必要的列等等将尽可能少的数据从后端传输到前端等。在客户端进行任何额外的数据操作。 希望这会有所帮助。

【讨论】:

以上是关于为可视化准备百万行数据的主要内容,如果未能解决你的问题,请参考以下文章

Kibana(一张图片胜过千万行日志)

Kibana ,一张图等于千万行日志!

选择数据库以每天插入数百万行来为每个用户绘制图表

技 能 | 编程0基础,也能做价值百万的数据可视化图表!

你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!

当我们尝试将巨大的 Pandas 数据帧(40-50 百万行)转换为 Spark 2.0 数据帧时如何提高性能