保留文件或数据库记录? Java和Python

时间:2010-04-11 18:49:27

标签: java xml database django file

我的网站将使用神经网络根据用户数据预测事物。用户可以选择用于训练网络的数据,然后使用他们训练有素的网络来预测事物。

我正在使用框架来创建,训练和查询网络。这使用Java。该框架具有将网络保存为XML文件的持久性。

存储这些文件的最佳方法是什么?我可以看到几个潜在的想法,但我需要帮助选择哪个是最好的:

  1. 将每个网络保存到一个单独的XML文件,其名称存储在数据库中。每次加载。
  2. 将所有网络保存到同一个XML文件中,每个网络都有一个存储在数据库中的不同名称。
  3. 以某种方式将通常写入XML文件的内容传递给Django站点以写入数据库。当需要进行预测时,需要将其返回到Java代码。
  4. 我可以做1或2,但我认为他们的表现将非常有限,我现在正在共享托管,所以我不知道他们对数千个文件有多高兴。此外,在将几千条记录添加到一个XML文件之后,我注意到在保存它时会有巨大的性能损失。

    如果我能够以某种方式实现版本3,我认为这将是最好的。访问数据库的单独进程没有问题,我认为性能会更好。更不用说没有文件了。

    但是,我使用的神经网络框架(Encog)中保存到文件的内容需要访问Java文件对象,而不是可以保存到数据库的字符串。除非我能在这里做一些Java魔术(我知道Java很少),我能看到的唯一方法是使用临时文件,但我不知道这是否是正确的方法。< / p>

    我很感激有关实施上述3个想法或任何替代方案的最佳方法的任何想法。谢谢!

    更新:与我的老板交谈后,我们都同意这个想法3是最好的。这似乎是“正确”的方式。我希望有人可以帮助我们。感谢。

1 个答案:

答案 0 :(得分:0)

我认为我有最好的解决方案,因为没有人回答这是我现在要采用的方法。

我正在用Java创建一个临时文件,并用它来保存数据。然后在退出之前,我读取该文件并将其输出到stdout,以便python代码可以将其拾取并将其存储在数据库中。值得庆幸的是,它总是类似的大小,所以我可以将数据库字段上的字符数限制为3500。

如果有人得到更好的解决方案,请评论告诉我,但就目前而言,这是我将要使用的。