繁体   English   中英

使用 spring 框架在文件上保存统计数据的最佳方法是什么?

[英]What is the best approach for saving statistical data on a file using spring framework?

使用 spring 框架在文件上保存统计数据的最佳方法是什么? 是否有任何可用的库可以读取和更新文件中的数据? 还是应该构建自己的 IO 代码?

我已经有一个关系数据库,但不喜欢创建附加表以将计算值保存在具有连接的不同多个表中的方法,也不想通过使用附加数据库项目增加更多复杂性一项任务,如 MongoDB。

为了理解这份报告的复杂性,想象一下你正在绘制一个图表,其中包含一整年的每日交易总数和数十亿条记录,其中包含大量额外信息,例如(不同货币下不同汇率的总数和平均值) .

所以,我的方法是定期在文件中生成这些数据,所以以后一旦请求我就不需要再次生成它们,只在文件可用时累积新日期

这种方法好吗? 以有效方式做到这一点的最佳图书馆是什么?

更新

我发现这个答案对于为什么有时人们更喜欢使用平面文件而不是关系文件或非关系文件很有用

从文件或数据库服务器访问数据是否更快?

我更喜欢将 MongoDB 用于此类目的,但如果您需要简单的方法,您可以将数据写入 csv\\excel 文件。 只使用 I\\O

    List<String> data = new ArrayList<>();
    data.add("head1;head2;head3");
    data.add("a;b;c");
    data.add("e;f;g");
    data.add("9;h;i");

    Files.write(Paths.get("my.csv"), data);

这就是全部)如何将您自己的对象转换为这样的字符串'filed1;field2'我想您知道。 您也可以使用 apache-poi csv 库,但我认为这要快得多。

    Files.write(Paths.get("my.csv"), data, StandardOpenOption.APPEND);

如果要将数据附加到现有文件,StandardOpenOption 中有许多不同的选项。

对于阅读,您应该使用Files.readAllLines(Paths.get("my.csv")); 它会返回你的字符串列表。 您也可以读取范围内的行。

但是如果你需要检索一列,或者更新两列 where 等等。 您应该阅读有关 MongoDB 或其他非关系数据库的信息。 在这里很难写关于 MongoDB 的内容,您应该阅读文档。

享受)

我找到了一个可以轻松写入/读取 CSV 文件并且可以映射到对象以及Jackson 数据格式的库

找一个弹簧的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM