【发布时间】:2013-12-13 01:21:20
【问题描述】:
在过去的几周里,我一直在使用 Titan 进行试验,希望得到一些关于前进方向的建议,以及一些具体的问题。该项目的目的是将日志数据存储在 Cassandra 集群上(对于这个问题,让我们使用 Web 流量的示例)并在 Titan 图中表示关系。所有节点都被建模为具有实体值和类型(例如“google.com”、“主机名”),并且边具有标签(例如“连接”)以及关系的几个属性(时间戳、流长度等在)。
一旦这些数据存储在 cassandra 中并表示为 Titan 图,我计划使用 d3 代码生成可视化。在隧道的尽头,我希望能够构建大规模、交互式、复杂的图网络,如下所示:http://goo.gl/CVEd55
我目前的设置如下:
- 将日志文件转换为
vertices.csv和edges.csv文件以供 Gremlin 加载的 python 脚本 -
Titan Server 0.4(使用 CassandraThrift 作为存储后端) - 将转换后的数据加载到 Titan 的 gremlin 脚本 - 使用 NetworkX 打开 RexPro 连接的 Python 脚本,允许分析师输入自定义 Gremlin 查询,以 JSON 格式输出结果
- 使用生成的 JSON 和 d3 将查询结果显示为图形的本地 Web 前端
理想情况下,作为测试基础案例,我希望用户能够在 Web 前端输入 Gremlin 查询,并被定向到包含结果的交互式 d3 图的页面。
我的具体问题如下:
为边分配属性的过程是什么?我找不到帮助我使用上面列出的模型表示图形的示例代码。
我将数据加载到 Titan 的 gremlin 脚本使用
bg.commit()创建批处理图,稍后在 RexPro 连接conn= RexProConnection('localhost,8184,'bg')中引用该批处理图。这最初是有效的,但是在更改我的加载脚本、清除 Gremlin 中的图形然后重新加载后,由于图形 bg 显然不存在,无法打开 RexPro 连接。 Titan中更新图的过程是什么?大概使用相同的图运行加载脚本两次只会将节点/顶点添加到现有的图,所以我将如何在每次更新模型时生成具有相同名称的新图,并让 RexPro 能够引用它运行查询时?扩展界面以允许分析师将 SQL 查询输入前端,使用 RexPro 以与所述方式类似的方式访问图表,这有多容易?
为这篇长文道歉,但如果有人能分享他们的专业知识,将不胜感激!
【问题讨论】:
标签: graph cassandra visualization titan rexster