1

我有一个应用程序正在接收数千个(比如 50,000 个)主题的数据。

每个数据元组包含一个 subjectId 和文本数据。

我正在寻找一个可嵌入的 Java 数据库,它将为我提供以下功能:

  • 快速存储数据(每秒数千个元组)。
  • 为 subjectId 提供文本数据的查找。
  • (提供有效的方法)删除超过 X 天的数据。
  • 必须嵌入到 Java 进程中

理想情况下,Berkeley JE 数据库似乎满足我的要求,除了它是一个键值数据库并且我的数据本质上是多值的。我不确定这是否会成为重复数据的性能问题。

这个简单的元组模式还有哪些其他可嵌入选项?

4

1 回答 1

0

如果您希望数据库为您索引数据,您将需要一个面向文档的数据库。如果您只需要按键查找,您可以使用 kyro 或协议缓冲区之类的东西自己序列化数据。如果您可以使用模式,SQLite 或 Derby 可能是很好的解决方案。OrientDB 或 Neo4j 是可以嵌入的图形数据库。OrientDB 不太成熟,但有更好的许可证。Cassandra 是一个可以嵌入式运行的面向列的存储。LevelDB 和 Bitcask 是数据库库。两者都有很好的许可证,但会是其他语言的端口,可能没有完整的功能集。如果您无法在内存中设置完整的密钥,LevelDB 是一个更好的选择。

于 2012-06-17T19:37:18.680 回答