NoSQL与RDF

NoSQL的优点是

  • 支持海量数据的快速读写
  • 支持分布式计算
  • 扩展性好
  • 无Schema模式易于以迭代法建立系统(表结构易变)
  • ……

它也有很大缺点:

  • 不支持联接(Join)运算;
  • 不支持标准查询语言;
  • 太多的方案、工具,缺乏标准;
  • ……

RDF数据具有的优点:

  • 标准化
  • 数据模型简单
  • 支持标准的查询语言SPARQL
  • 作为Native的网络数据,天然具有分布式、去中心化特征,数据可以存放于网络上的任何地方,用HTTP URI标识即可
  • 支持网络数据的标准格式:XML/JSON/TURTL/N3/N-QUADS等
  • 支持网络交换的标准协议:REST,SOAP,HTTP GET等

如采用NoSQL存放RDF数据,立刻具有如下优势:

  • 支持Web Scale管理
  • 标准化
  • 互操作性好
  • 支持语义集成

目前各类NoSQL对RDF的支持(来自小夏,待修改):

  • Apache Cassandra 有插件 RDF.rbCumulus 支持RDF数据
  • Apache CouchDB 是一个存储JSON格式文档的“文档型”数据库,有组件 JSON-LD (JavaScript Object Notation for Linked Data)
  • RDFgrid 是建立在Hadoop和Amazon的 Elastic MapReduce (EMR)基础上的RDF数据处理框架,这里有一些在Hadoop/MapReduce上处理RDF数据的最佳实践。
  • Amazon SimpleDB 是一个分布式的数据库,有系统处理RDF数据的经验
  • 键值数据库Riak ,NoSQL的主要类型,也有人探索用它来存储RDF数据的方法。
  • Sindice是一个著名的语义搜索引擎,它也使用了 Hadoop和其它的NoSQL解决方案。
  • Neo4j 是一个基于Java的“图(Graph)”数据库,NoSQL的第四种类型,是NoSQL班级的新生,RDF数据处理是其内置的功能。

W3C的RDB2RDF直接支持关系数据库发布成RDF,NoSQL的优势在:

  • 支持独立的可插拔的索引工具 (关系数据库的索引在数据量很大且数据不规范时很难建立)
  • 支持批处理,特别是批量导入RDF数据 (对于关系数据库来说,RDB2RDF不难,但反过来就不容易了)
  • 支持SPARQL查询语言 ,课跨库跨网检索。

 



留下评论