【问题标题】:Cassandra/Scylla as graph database backen for JanusGraph and API exposed with GraphQlCassandra/Scylla 作为 JanusGraph 的图形数据库后端和使用 GraphQl 公开的 API
【发布时间】:2017-12-18 21:23:43
【问题描述】:

我正在寻找一个使用 Scylla 或 Cassandra 作为后端的 Graph 数据库,然后将 Web api 公开为 GraphQl。

你能帮我验证一下我得到了正确的堆栈吗:

  1. GraphQl 或 TinkerPop // Api 架构,公开 api
  2. JanusGraph(privious Titan) // 数据库层促进图结构
  3. Cassasndra 或 Scylla

【问题讨论】:

    标签: cassandra graphql tinkerpop janusgraph scylla


    【解决方案1】:

    虽然只是为了帮助澄清,但您几乎是正确的:

    GraphQL 是一种抽象,旨在帮助开发人员简化开发/数据访问。您必须创建一个将 GraphQL 转换为 Gremlin 的服务。

    您设想的堆栈如下所示:

    GraphQL -> Gremlin/TinkerPop -> JanusGraph -> DataStore(Cassandra、Scylla 等)。

    就数据存储而言,JanusGraph 与 Apache Cassandra 和 Scylla 兼容。

    【讨论】:

    • 仅供参考,IBM 选择 JanusGraph 和 Scylla 作为其 Compose DBaaS。在一次会议上讨论了有关此选择的详细信息:scylladb.com/tech-talk/…
    【解决方案2】:

    我喜欢@MarcintheCloud 的回答,只是想解释一下并给出我对问题的解决方案。

    GraphQL 不关心或不依赖于任何特定的数据库类型、KV、Graph、Document 等,事实上,GraphQL 将自己标榜为能够从不同来源获取数据。因此,您可以创建一个 UI 来从 redis 中获取最新的股票价格、从 Mongo 中获取股票历史记录以及从 Elasticsearch 中按名称获取类似股票。 GraphQL 将让您从 API 中抽象出这种复杂性(但它仍然存在于其他地方),允许您一次性获取所有数据。 GraphQL 和 Graph 数据库之间没有关系。

    简而言之,Gremlin 是一种强大的图遍历,可与 SQL 用于某些关系数据库相媲美。

    抛开定义不谈,我如何使用它们都是将 GraphQL 映射到 Gremlin。我试图围绕它创建一个标准https://github.com/The-Don-Himself/graphql2gremlin。基本上,它通过在顶点和边之间交换 GraphQL 参数来工作,所以像这样的 GraphQL 查询

    {
      users(
        following: {
          users: {
            user_id: "eq(5)"
          }
        }
      ) {
        user_id
        username
        bio
      }
    }
    

    意味着为 user_id 5 获取用户关注者并获取 id、username 和 bio 字段。有更复杂的 GraphQL 到 Gremlin 示例的示例,它非常适合我的用例。

    gremlin 遍历可能如下所示

    g.V().hasLabel('users').has('user_id', eq(5)).in('following').hasLabel('users').values('user_id', 'username', 'bio')

    如果你想玩它https://github.com/The-Don-Himself/gremlin-ogm,我还用 PHP 开源了一个示例 Twitter Graph。

    【讨论】:

      猜你喜欢
      • 2016-08-04
      • 1970-01-01
      • 2016-09-03
      • 2014-02-13
      • 2019-10-28
      • 1970-01-01
      • 2019-02-02
      • 2017-11-28
      • 2020-07-27
      相关资源
      最近更新 更多