RDF 三元组的图存储功能,DB2 的支持做得还挺到位。你要结构混杂、模式不统一的数据,用它就比较顺手了。是它的 SPARQL 查询,写法简单,查询跨数据源也没太大压力。

DB2 NoSQL Graph StoreRDF 支持,适合那种多来源数据整合的场景。以前要么拼接 SQL,要么靠定制代码,现在有标准化的语义查询方式,查询关系也方便多了。

三元组模型蛮有意思,它把数据拆成Subject-Predicate-Object三部分,类似“谁-干了什么-对象是谁”。比如张三 teaches 数据库课,转换成 RDF 后就能统一,还能关联更多信息。

查询用的是 SPARQL 语法,写起来像结构化版的图查询。比如你要查研究生和他的导师、课程,可以直接这么写:

SELECT ?gradStudent, ?course, ?advisor
WHERE {
  ?gradStudent  rdf:type ex:GraduateStudent.
  ?gradStudent  ex:takesCourse ?course.
  ?advisor      ex:advises     ?gradStudent.
  ?advisor      ex:teaches     ?course.
}

你会担心 NoSQL 图存储缺事务支持?嗯,DB2 这里确实下了功夫,直接拿它原有的ACID 机制压缩并发控制那一套来保障图数据的可靠性。

一些好用的场景比如:多个孤岛系统的数据想松散整合一下,不管你是搞PLM还是供应链协同,RDF 都挺灵活。另外做知识图谱、跨系统查询这些,也适合。

如果你经常和结构乱七八糟的数据打交道,又想搞点语义整合、跨库查询的事,试试 DB2 的这个NoSQL Graph Store,配合 SPARQL,用起来还挺爽的。