【问题标题】:Loading data into Titan with bulbs and then accessing it用灯泡将数据加载到 Titan,然后访问它
【发布时间】:2015-09-11 19:45:47
【问题描述】:

我是图形数据库和所有 Titan 生态系统的完全新手,所以请原谅我听起来很愚蠢。我也因缺乏文档而苦恼-_-

我已经安装了 Titan 服务器。我使用 Cassandra 作为后端。

我正在尝试使用 Python 将基本的 twitter 数据加载到 Titan。 为此,我使用 bulbs 库。 可以说,我在 朋友 列表中列出了我在 twitter 上关注的人

我的python脚本是这样的

from bulbs.titan import Graph
# some other imports here

# getting the *friends* list for a specified user here


g = Graph()

# a vertex of a specified user
center = g.vertices.create(name = 'sergiikhomenko')


for friend in friends:
    cur_friend = g.vertices.create(name = friend)
    g.edges.create(center,'follows',cur_friend)

据我了解 - 上面的代码应该在 Titan 中创建了一个带有多个顶点的图形,其中一些顶点由 follows 边连接。 p>

我的问题是:

如何在 Titan 中保存它? (就像 SQL 中的提交)

我以后如何访问它?我应该能够通过它访问它吗 小鬼壳??如果是,如何??

我的下一个问题是关于可视化数据,但我离那里还很远 :)

请帮助 :) 我完全迷失在这一切 Titan、Gremlin、Rexster 等中。 :)

更新: 我们的 POC 项目的要求之一是 ... python :),这就是我直接跳入灯泡的原因。不过,我肯定会遵循以下建议:)

【问题讨论】:

  • 欢迎来到俱乐部。顺便说一句,如果您打算使用 Titan,您应该知道 Titan 开发现在还没有完全成熟。您还应该考虑其他替代方案,例如 OrientDB。

标签: python titan gremlin rexster bulbs


【解决方案1】:

我的回答会有些不完整,因为我无法真正提供有关灯泡的答案,但您确实提出了一些我可以尝试回答的具体问题:

如何在 Titan 中保存它? (就像 SQL 中的提交)

它只是 Java/Groovy 中的 g.commit()

我以后如何访问它?我应该能够通过 gremlin shell 访问它吗?如果是,如何??

一旦它被提交给 cassandra,就可以使用 Bulbs、gremlin shell、其他一些应用程序等等来访问它。不知道你到底在问什么,但我喜欢 Gremlin 控制台这样的事情,所以如果 cassandra 在本地启动,启动 bin/gremlin.sh 并执行:

g = TitanFactory.build()
    .set("storage.backend","cassandra")
    .set("storage.hostname","127.0.0.1")
    .open();

这将使您连接到 cassandra,您应该能够查询您的数据。

我完全迷失在这一切 Titan、Gremlin、Rexster 等中

我对所有新用户(尤其是那些刚接触图表、cassandra、jvm 等的用户)的建议是放慢速度。最快的方法是尝试对灯泡做 python 到 rexster 到 gremlin 在 Titan 到 cassandra 集群托管在 ec2 中,并尝试将十亿边图加载到其中。

如果您是新手,请从最新的东西开始:TinkerPop3 - http://tinkerpop.incubator.apache.org/ - 灯泡尚不支持 - 但没关系,因为您正在学习 TinkerPop,这对于学习整个堆栈和所有 TinkerPop 的实现很重要(例如泰坦)。将 TinkerGraph(不是 Titan)与一小部分数据一起使用,并确保在尝试全面使用之前获得加载该小子集的模式。将 Gremlin 控制台用于与此初始目标相关的所有内容。这是轻松获胜的秘诀。在这种方法下,您可能会在一天内对自己的数据进行一些查询,并了解您需要使用 Titan 完成的大部分操作。

一旦你有了你的图表,让它在Gremlin Server(TP3 的 Rexster 替代品)中工作。然后考虑如何通过 python 工具访问它。或者,也许您知道如何将 TinkerGraph 转换为 Titan(可能从 BerkeleyDB 而不是 cassandra 开始)。我的观点是更缓慢地增加你对生态系统不同部分的参与,因为否则它是压倒性的。

【讨论】:

  • 谢谢斯蒂芬!这里有几个简短的问题。 1.假设我们有存储数据的 Cassandra,以及为数据访问、匹配等提供逻辑结构的 Titan。(希望我在这一点上没有搞砸)我们可以在 Titan 中存储多个单独的图(制作一个这里类似于 sql 模式)?或者存储在 Titan 中的所有内容(或者我应该在这里使用底层数据库的名称)是一个大整体的一部分,在访问和操作方面不能分解为单独的图表?
  • 问题 2. 您对访问保存的图形并对其进行可视化有何建议?即使它由两个顶点和一个边组成:)
  • 非常抱歉,但这是第三个问题 :) 互联网上是否有任何地方可以为每个项目(例如 Titan、Gremlin、Rexster)提供两个词的描述以及如何它们结合在一起,哪一个有什么好处?因为每个项目的描述在词汇和措辞方面都非常复杂,因此很难在脑海中获得完整的画面。
  • 每个键空间可以有一个图形 - 请参阅storage.cassandra.keyspace 设置。至于可视化,我会使用gephicytoscape。请注意,TinkerPop3 包括 gephi integration。至于术语,我建议你重新关注 TinkerPop3 术语,所以我会指出你 TP3 docs 的开头看到绿色的 NOTE 框。
  • wrt 你的问题编辑,我仍然建议为你的 POC 学习 TP3。请参阅TinkerPop home page 上的“社区贡献”部分,了解一组 Python 库,一旦您熟悉了堆栈,它们可能会对您有所帮助。 fwiw,Bulbs 的开发人员告诉我,他打算在 TP3 到达 GA 后移植到 TP3。
猜你喜欢
  • 2013-11-23
  • 1970-01-01
  • 2015-12-30
  • 2015-04-21
  • 1970-01-01
  • 2012-10-29
  • 2016-08-29
  • 2011-04-27
  • 1970-01-01
相关资源
最近更新 更多