php阅读和绘制大型数据集

时间:2014-01-10 17:27:08

标签: php web plot

我在ascii文件中有一年的5秒数据

每一行都是读... 时间戳,值

600万行

我想在图表中显示这些数据,或者在网络浏览器中显示多个图表

我考虑过选择3张图表

1 - 最多500个数据点(5秒分辨率) 2 - 在15分钟的分辨率下最后500分 3 - 各种分辨率的所有数据 等等 警惕a)读取文件的时间b)处理时间c)将数据下载到浏览器以进行javascript绘图的数量和时间

php可以直接从文件读取吗?

更重要的是,这些大数据集的绘图问题必须相当普遍,bhoiw人们可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

是的,PHP可以在文件系统上read files。使用PHP从数据库中读取数据时,数据库可能非常有用。

您想对数据做什么 - 例如,您在寻找什么?您在寻找峰值,平均值,大于平均值的值等吗?

通用分析

也许答案是 - 我不知道;我想查看数据,看看会发生什么。很公平。在这种情况下,您可以使用类似stock chart的网页。显示最近1000条记录。

要获取最后1000条记录,您可以在Windows上使用tophead(在Linux-y系统上)或powershell之类的命令组合来获取最后1000行然后用PHP解析它们,将它们推入一个数组或对象,并使用Javascript或PHP图表工具在屏幕上显示它们。

当用户更改选择时,请读取文件并显示相关记录。这可能很费力,因为文件会不断处理。

非PHP方法

更快的非PHP替代方案是使用像QlikView这样的内存商业智能工具(我认为免费下载供个人使用)。学习曲线并不陡峭......而且我与QlikView没有任何关系。 Tableau和Spotfire是其他易于使用的工具,可以相对容易地分析大型数据集。

具体分析

如果您想了解每月销售额为100万美元或以上的天数,您可以对该文件进行一次传递,并提取销售额> gt; = 1MM的所有行并将其存储在日期数组中和销售。传递数组并输出Year,Month,Sales文件。那将是数据的预处理。

然后,Web应用程序或您的表示层可以提取此数据并以条形图或其他任何方式显示信息。可以使用jcha图表库,如amcharts,d3,highcharts等,或者像jpGraph这样的PHP图表库可以用来动态读取预处理数据并显示它们。

如果必须从多个角度查看数据,例如 - 表显示销售的前10个产品,订单数量与订购数量等的散点图,所有这些数据都可以推送到数据库然后继续使用屏幕。正如Mark Ba​​ker评论的那样,有必要使用适当的索引来有效地提取数据。

批量准备特定数据集

美国的一些气候研究中心运行程序,在夜间通过数百万条记录,创建图形,图表,地图等,然后使用Web应用程序显示它们。例如High Plains Regional Climate CenterIowa Mesonet定期执行此操作。你可以用PHP做类似的事情。

数据库是我的最爱。我更喜欢按摩文本数据,消除我不想要的东西,推动数据库中的客观事项。然后,PHP可以在dbs中使用汇总,前n个,分组等方法来提取数据并将其呈现在屏幕上 - 主要通过Web界面。

如果您对该工具集有特定问题或与此问题相关,请随时发表评论。如果你想出一个新的问题,请随意添加一个新问题以征求不同的答案。