(预计阅读时间:7分钟)
TuGraph 图数据库提供了 JAVA、C++、Python 等多种语言的 SDK 支持,方便客户在各种场景下使用。用户使用 SDK 向TuGraph服务器发送Cypher请求,服务器则以 JSON形式返回数据。近日,TuGraph 推出了一款面向 JAVA 客户端用户的开发工具 TuGraph-OGM (Object Graph Mapping),为用户提供了对象操作接口,相较 Cypher/JSON 接口应用起来更加便捷。
OGM 类似于关系数据库中的 ORM(Object Relational Model),可以将数据库返回的数据自动映射成 JAVA 中的对象,方便用户读取,而用户对这些对象的更新操作也可以被自动翻译成 Cypher 语句发送给服务器。这样即便是完全不懂 Cypher 的用户,也可以通过操作对象与数据库进行交互,大大降低了图数据库的使用门槛。
TuGraph-OGM 同时也兼容其他开源产品 OGM 工具如 Neo4j-OGM,方便用户将工程在不同数据库与 TuGraph数据库间无缝迁移。本文将对 TuGraph-OGM 进行全面的介绍。
0 映射原理
TuGraph-OGM 将 JAVA 对象映射为图的对象,类映射为点,类的属性映射为图中的属性,类中的方法映射为操作 TuGraph 的查询语句。
(图1,电影场景图数据)
以电影场景为例,对演员、电影、导演之间的关系进行数据化,就形成了非常典型的图数据。举一个简单的示例,演员Alice在1990年和2019年分别出演了两部电影《Jokes》和《Speed》,其中《Jokes》的导演是Frank Darabont。
以图的思维来看,演员、导演、电影可以被映射为三种不同的节点,而出演、执导可以被映射为两种边,映射结果如上图所示,将数据存入图数据库后,相关的开发人员就可以使用各类图查询语言对数据进行查询。
但对非图数据库相关的开发人员来说,这个例子中的演员、导演、电影作为实体,同样可以映射为类中的对象,而与实体相关联的对象可以通过集合存储,这是大多数开发人员熟悉的领域。