知识图谱|【JanusGraph入门】4-TinkerPop简介

TinkerPop简介 简介 知识图谱|【JanusGraph入门】4-TinkerPop简介
文章图片

目标

  1. 什么是 TinkerPop
  • Apache TinkerPop? is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP).
    • 他是 Apache 顶级项目
    • 他是图计算框架, 支撑图数据库(OLTP)、图分析系统(OLAP)
  1. 【知识图谱|【JanusGraph入门】4-TinkerPop简介】TinkerPop 能做什么
  2. 有哪些项目在用 TinkerPop
网址
  • 官网
  • 官网文档
  • 中文文档
  • CSDN-Gremlin教程集合
官网用途示例
  1. 小精灵的朋友的朋友们都叫什么?
// What are the names of Gremlin's friends' friends? g.V().has("name","gremlin"). out("knows").out("knows").values("name")

  1. 有哪些产品是同时被两个人(他们是朋友)创作的?
// What are the names of projects that were created by two friends? g.V(). match(as("a").out("knows").as("b"), as("a").out("created").as("c"), as("b").out("created").as("c"), as("c").in("created").count().is(2)). select("c").by("name")

  1. 小精灵的上级到 CEO 的管理链上, 都有哪些管理者
// What are the names of the managers in the // management chain going from Gremlin to the CEO? g.V().has("name","gremlin"). repeat(in("manages")).until(has("title","ceo")). path().by("name")

  1. 跟小精灵一起创作产品的人, 职称都有哪些, 都有多少个(统计职称分布)
// What is the distribution of job titles amongst Gremlin's collaborators? g.V().has("name","gremlin").as("a"). out("created").in("created"). where(neq("a")). groupCount().by("title")

  1. 跟进小精灵的购买历史, 获取与他最相关的产品排名(他买的产品, 被别人买了, 别人还买了其他产品)
// Get a ranking of the most relevant products for Gremlin given his purchase history. g.V().has("name","gremlin").out("bought").aggregate("stash"). in("bought").out("bought"). where(not(within("stash"))). groupCount(). order(local).by(values,desc)

图系统支持 官方提到了很多支持该框架的图系统, 列举我比较关心的几个
  • Alibaba Graph Database - A real-time, reliable, cloud-native graph database service that supports property graph model.
    • https://cn.aliyun.com/product/gdb
    • 阿里云提供的图数据
    • 实时的、可靠的、云原生的图数据库服务, 支持属性图模型
    • 支持 Gremlin 语言查询
  • ArangoDB - OLTP Provider for ArangoDB.
    • https://github.com/ArangoDB-Community/arangodb-tinkerpop-provider
    • ArangoDB 图数据库
    • 有 TinkerPop OLTP 的支持包
  • janusgraph
    • https://janusgraph.org/
    • 基于 TinkerPop 的分布式图数据库
    • 开源的、非原生存储、支持 Hbase/Canssandra 等
  • Huawei Graph Engine Service
    • https://www.huaweicloud.com/product/ges.html
    • 华为图引擎服务 GES
    • 是国内首个商用的、拥有自主知识产权的国产分布式原生图引擎,是针对以“关系”为基础的“图”结构数据,进行查询、分析的服务
  • TinkerGraph
    • https://tinkerpop.apache.org/docs/current/reference/#tinkergraph-gremlin
    • TinkerPop 自己的基于内存的内嵌图数据库
    • 提供 OLAP\OLTP 支持
  • Neo4j
    • https://tinkerpop.apache.org/docs/current/reference/#neo4j-gremlin
    • Neo4j 数据库
    • 有 TinkerPop OLTP 的支持包
  • Hadoop (Spark)
    • https://tinkerpop.apache.org/docs/current/reference/#sparkgraphcomputer
    • TinkerPop 对 Hadoop (Spark) 的支持
工具的支持 可视化及其他使用工具, 下面列举我比较关心的
  • JUGRI - A Jupyter Gremlin interface
    • https://github.com/meltwater/jugri
    • 可以通过 jupyter(python) 去执行 gremlin 的查询, 还是蛮方便的
  • Gremlin-Visualizer A visualization tool for the results of gremlin traversals.
    • https://github.com/prabushitha/gremlin-visualizer
    • 简单的可视化工具
  • Graphexp - Interactive visualization of the Gremlin graph database with D3.js.
    • https://bricaud.github.io/graphexp/graphexp.html
    • 基于 D3 的可视化工具, 不过感觉很难用…
  • gremlify
    • https://gremlify.com/
    • 在线版的图可视化工具, 做的蛮高级的

    推荐阅读