【发布时间】:2017-04-12 12:07:53
【问题描述】:
我对 Titan 完全陌生,当我开始研究它时,我感到很困惑,因为它有很多新东西,比如 Gremlin、tinkerpop 和 rexter 等。
我想要的是 java 中的一个示例,它使用以 Cassandra 作为后端的 Titan。我想创建一个图,存储在 cassandra 中,取回并遍历它。一个非常简单的方法也会很有帮助。
我有一个我运行的 java 基本示例。
BaseConfiguration baseConfiguration = new BaseConfiguration();
baseConfiguration.setProperty("storage.backend", "cassandra");
baseConfiguration.setProperty("storage.hostname", "192.168.3.82");
TitanGraph titanGraph = TitanFactory.open(baseConfiguration);
Vertex rash = titanGraph.addVertex(null);
rash.setProperty("userId", 1);
rash.setProperty("username", "rash");
rash.setProperty("firstName", "Rahul");
rash.setProperty("lastName", "Chaudhary");
rash.setProperty("birthday", 101);
Vertex honey = titanGraph.addVertex(null);
honey.setProperty("userId", 2);
honey.setProperty("username", "honey");
honey.setProperty("firstName", "Honey");
honey.setProperty("lastName", "Anant");
honey.setProperty("birthday", 201);
Edge frnd = titanGraph.addEdge(null, rash, honey, "FRIEND");
frnd.setProperty("since", 2011);
titanGraph.shutdown();
所以当我运行它时,我观察了 cassandra 日志,它创建了一个名为 titan 的键空间和以下表格:
- titan_ids
- 边缘存储
- 图形索引
- system_properties
- 系统日志
- txlog
- edgestore_lock_
- graphindex_lock_
- system_properties_lock_
我不知道这些表的用途以及它们如何存储数据。
运行程序后,它会创建一个由 2 个顶点和它们之间的边组成的图形。我查询了这些表,并在每个表中发现了一些十六进制值。
我有以下问题:
图形是如何存储在 cassandra 中的?
现在我将这张图说“x”存储在 cassandra 中。假设我创建了另一个图形“y”并存储它。如何能够检索和遍历任何特定的图?因为在普通的 cql 查询中,您知道要查询的表和列。我将如何分别识别“x”和“y”。
任何人都可以帮助在 java 中发布示例代码以使用一些示例 csv 数据创建图形。存储在 Cassandra 和一些遍历示例中的同一张图。将很有帮助,因为没有这样可以理解的示例。
【问题讨论】:
-
你真的需要泰坦吗? Datastax 在 Cassandra 上有图表。 datastax.com/dse-graph-campaign/index.html
-
@cricket_007 DSE 只是我认为的商业产品。因此,如果您无法为 DSE 省钱,使用 Titan 是一个不错的选择。 JanusGraph 也是一个不错的免费选择。
-
@FilipeTeixeira 我注册了一个免费帐户并且之前安装了 DSE
-
@cricket_007 会再看一遍,谢谢。我的印象是,要在大规模生产中部署 DSE Graph,您必须为此付费。
-
@FilipeTeixeira 我会澄清的。对于“非生产目的”,您可以免费使用它。 datastax.com/enterprise-terms
标签: java cassandra graph-databases titan graph-traversal