在过去的几周里,我一直在尝试泰坦,并希望有一些关于前进方向的指针,以及一些具体问题。该项目的目的是将日志数据存储在Cassandra群集上(对于这个问题,我们使用Web流量的示例)并在Titan图表中表示关系。所有节点被建模为具有实体值和类型(例如“google.com”,“hostname”),并且边具有标签(例如“连接”)以及关系的几个属性(时间戳,流程长度等等上)。泰坦+ d3用于计算机网络可视化
一旦这些数据存储在cassandra中并表示为一个Titan图形,我打算使用d3代码来生成可视化。在隧道的尽头,我希望能够建立大规模,看起来像这样的互动,复杂的图形网络:http://goo.gl/CVEd55
我目前的设置如下:
- Python脚本将日志文件转换为
vertices.csv
和edges.csv
文件精怪在 Titan Server 0.4
(使用CassandraThrift作为存储后端)加载 - 小鬼脚本转换后的数据加载到泰坦 使用NetworkX打开RexPro连接
- Python脚本,所有由于分析者输入自定义的Gremlin查询,输出其结果作为一个JSON
- 本地Web使用生成的JSON和d3以显示查询的结果作为曲线图
理想地作为前端测试基本情况下,我希望用户能够在Web前端输入Gremlin查询并将其定向到包含结果的交互式d3图表的页面。
我的具体问题是有如下:
什么是对边缘分配属性的过程?我无法找到帮助我使用上面列出的模型来表示图形的示例代码。
我的gremlin脚本将数据加载到Titan中,使用
bg.commit()
来创建一个批处理图形,该图形稍后会在RexPro连接conn= RexProConnection('localhost,8184,'bg')
中引用。这是最初的工作,但在更改我的加载脚本后,清除Gremlin中的图形,然后重新加载,由于图形bg显然不存在,RexPro连接无法打开。 Titan更新图表的过程是什么?假设使用相同的图形运行加载脚本两次只会将节点/顶点添加到现有的脚本中,那么每次更新模型时如何生成一个具有相同名称的新图,并让RexPro能够引用它当运行查询?扩展接口以允许分析人员在前端输入SQL查询有多简单,使用RexPro以类似于所描述的方式访问图形?
对于长文章的道歉,但如果任何人都可以分享他们的专业知识,将不胜感激!
嗨斯蒂芬,感谢您的回复!边上的属性解释是非常有用的。 至于批处理图 - 我目前在一个Gremlin加载脚本中创建了一个图g,然后是使用g的批处理图。所有的数据加载都使用bg函数完成,但在我的Python NetworkX可视化脚本中,查询使用g完成。这似乎工作正常。我是否正确地说,一旦你创建了一个正常的批处理图,更新g的引用也会更新bg? – adaml288
从最后的评论继续为我跑出线: 道歉,如果我的第三个问题困惑你咯。我的意思是我已经有了一个界面,可以让用户在Web前端输入Gremlin查询,以便根据查询生成图形。我通过制作RexPro连接并传递查询来完成此操作。 什么,我其实在寻找的东西,可以让分析师谁可能不熟悉精怪要能写简单的查询,以类似的方式返回数据。所以无论是CQL,SPARQL还是类似的。 再次欢呼。 – adaml288
如果你在'rexster.xml'中没有定义'g'而创建'g',那么它将不在RexPro会话之外(我假设你正在使用RexPro进行会话通信)。如果这是确定,那么,你应该能够重新使用'g'基准(因为这将无法正常工作不使用'bg'进行查询。 –