gpt4 book ai didi

java - 加载和分析海量数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:39 24 4
gpt4 key购买 nike

因此,对于一些研究工作,我需要分析大量原始运动数据(目前几乎是 1 亿数据,并且还在不断增长)并输出定量信息和图表。

我使用 Groovy(使用 JFreeChart 制作图表)编写了大部分内容,当性能成为问题时,我用 Java 重写了核心部分。

问题在于分析和绘图大约需要一分钟,而加载所有数据大约需要 5-10 分钟。正如您想象的那样,当我想对绘图进行小的更改并查看输出时,这会变得非常烦人。

我有几个解决这个问题的想法:

  1. 将所有数据加载到 SQLite 数据库中。
    优点:会很快。如果需要,我将能够运行 SQL 来获取聚合数据。

    缺点:我必须编写所有代码。此外,对于某些绘图,我需要访问每个数据点,因此加载几十万个文件,某些部分可能仍然很慢。

  2. Java RMI 返回对象。所有数据都加载到一个根对象中,在序列化后,该对象大约有 200 兆字节。我不确定通过 RMI 传输一个 200meg 的对象需要多长时间。 (同一客户)。

    我必须运行服务器并加载所有数据,但这不是什么大问题。

    大佬:这个写的时间应该最少

  3. 运行加载数据的服务器,并在服务器虚拟机中根据命令执行 groovy 脚本。总的来说,这似乎是最好的主意(对于实现时间与性能以及其他长期利益)

我想知道其他人是否解决过这个问题?

事后分析(2011 年 3 月 29 日):写完这个问题几个月后,我不得不学习 R 来运行一些统计数据。使用 R 进行数据分析和聚合比我正在做的要容易得多,也快得多。

最终,我最终使用 Java 运行初步聚合,然后在 R 中运行其他所有内容。 R 制作漂亮的图表也比使用 JFreeChart 容易得多。

最佳答案

如果您要拥有大量数据,数据库的可扩展性很强。在 MS SQL 中,我们目前在 4 分钟内对大约 30GB 的数据进行分组/求和/过滤(我认为大约有 1700 万条记录)。

如果数据不会增长太多,那么我会尝试方法 #2。您可以创建一个简单的测试应用程序,创建一个 200-400mb 的随机数据对象,并测试传输它的性能,然后再决定是否要走这条路。

关于java - 加载和分析海量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com