【发布时间】:2014-03-14 20:46:06
【问题描述】:
我查看了 redland 文档,但有些问题我无法确定解决。
在 C++ 方面,假设您随着时间的推移为几个不同的图生成大量 rdf 三元组,并且知道将所有图都放在内存中并不是主要兴趣:
是否可以使用 redland 执行单个/批量插入(写入持久存储)而不将图形保存在内存中,您将如何调整此类插入?
如果我们忘记了查询,什么是一种好的持久存储方式:文件还是数据库?
你怎么看?
【问题讨论】:
我查看了 redland 文档,但有些问题我无法确定解决。
在 C++ 方面,假设您随着时间的推移为几个不同的图生成大量 rdf 三元组,并且知道将所有图都放在内存中并不是主要兴趣:
是否可以使用 redland 执行单个/批量插入(写入持久存储)而不将图形保存在内存中,您将如何调整此类插入?
如果我们忘记了查询,什么是一种好的持久存储方式:文件还是数据库?
你怎么看?
【问题讨论】:
是否可以使用 redland 执行单个/批量插入(写入持久存储)而不将图形保存在内存中,您将如何调整此类插入?
是的。创建一个您希望存储数据的librdf_storage 对象并将其传递给librdf_new_model()。然后使用任何 API 函数(例如 librdf_parser_parse_into_model())将数据存储在该模型中,并将其持久化到存储中。
仅当 librdf 存储模块以这种方式编写时,图表才会保存在内存中。
如果我们忘记了查询,什么是一种好的持久存储方式:文件还是数据库?
file 存储并不适合严肃的业务。它将图形保存在内存中,并通过与 RDF/XML 进行序列化来持久化到磁盘。
使用数据库支持的存储,例如 mysql 或 BDB hashes。
【讨论】: