我正在处理一个处理大量数据的java项目。更具体地说,它处理了很多矢量对象。每个矢量对象包含以下属性:
public class Vector{
private final int dimension;
private short[] sparseOffsets;
private boolean isSparse;
private float[] coordinates;
...
}
这个矢量对象上的数组可能变得非常大(我们说的是每个大小为10,000),我们一次处理数百万个向量。显然,由于这些矢量对象的数量和数组的大小,我的内存已耗尽。我尝试序列化它们但经过一周的等待后,代码仍在序列化这些矢量对象。
我正在考虑用JPA实现MySQL数据库。我的第一个问题是,这是处理这些大量数据的理想途径吗?
第二个问题是,我如何将这些大数组存储在数据库中?
我找到了一个关于员工对象的示例,该员工对象包含一系列员工课程并使用一对多关系。它看起来像这样:
所以基本上我会将这些数组转换为arraylists并使用@ElementCollection标记。这是将这些大数组存储在数据库中的好方法吗?
答案 0 :(得分:1)
没有一个单一的最好的'这里的方式;但数据库的全部意义在于处理大量数据,并只读入您当前需要处理的内容。
不要期望在这篇文章中有完整的教程,因为这是不可能的,但我从三个表开始:一个基表持有标量信息,如' isSparse'和'维度',但最重要的是,' id'对于那个向量。然后是另外两个表,它们提供了' id' - > ' sparseOffset'并且' id' - > '坐标'
我是一名数据库新手,所以欢迎专家进行更正,但希望这会给你一个起点。