Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 泰坦+;d3用于计算机网络可视化_Graph_Cassandra_Visualization_Titan_Rexster - Fatal编程技术网

Graph 泰坦+;d3用于计算机网络可视化

Graph 泰坦+;d3用于计算机网络可视化,graph,cassandra,visualization,titan,rexster,Graph,Cassandra,Visualization,Titan,Rexster,在过去的几周里,我一直在尝试泰坦,我想了解一些前进的方向,以及一些具体的问题。该项目的目的是将日志数据存储在Cassandra集群上(对于这个问题,让我们使用web流量的示例),并在Titan图中表示关系。所有节点都建模为具有实体值和类型(例如“google.com”、“hostname”),边具有标签(例如“connects”)以及关系的多个属性(时间戳、流长度等) 一旦这些数据存储在cassandra中并表示为Titan图,我计划使用d3代码生成可视化。在隧道的尽头,我希望能够构建大规模、交

在过去的几周里,我一直在尝试泰坦,我想了解一些前进的方向,以及一些具体的问题。该项目的目的是将日志数据存储在Cassandra集群上(对于这个问题,让我们使用web流量的示例),并在Titan图中表示关系。所有节点都建模为具有实体值和类型(例如“google.com”、“hostname”),边具有标签(例如“connects”)以及关系的多个属性(时间戳、流长度等)

一旦这些数据存储在cassandra中并表示为Titan图,我计划使用d3代码生成可视化。在隧道的尽头,我希望能够构建大规模、交互式、复杂的图形网络,看起来像这样:

我当前的设置如下:

  • 一个python脚本,用于将日志文件转换为Gremlin要加载的
    顶点.csv
    边缘.csv
    文件
  • Titan服务器0.4
    (使用CassandraThrift作为存储后端)-将转换后的数据加载到Titan的gremlin脚本
  • 使用NetworkX打开RexPro连接的Python脚本,允许分析师输入自定义Gremlin查询,并将结果输出为JSON
  • 本地web前端,使用生成的JSON和d3将查询结果显示为图形
理想情况下,作为一个测试用例,我希望用户能够在web前端键入一个Gremlin查询,并将其定向到包含交互式d3结果图的页面

我的具体问题如下:

  • 为边指定属性的过程是什么?我很难找到帮助我使用上面列出的模型表示图形的示例代码

  • 将数据加载到Titan中的我的gremlin脚本使用
    bg.commit()
    创建批处理图,该批处理图稍后在RexPro连接
    conn=RexProConnection('localhost,8184,'bg')
    中引用。这本来是可行的,但在更改我的加载脚本、清除Gremlin中的图形并重新加载之后,由于图形bg显然不存在,因此无法打开RexPro连接。在Titan中更新图表的过程是什么?假设使用同一个图运行两次加载脚本只会将节点/顶点添加到现有的图中,那么,每次更新模型时,我将如何使用相同的名称生成一个新的图,并让RexPro在运行查询时能够引用它

  • 扩展接口以允许分析员在前端输入SQL查询,使用RexPro以与所述类似的方式访问图形,这有多容易

  • 为这篇冗长的帖子道歉,但如果有人能分享他们的专业知识,那将不胜感激

    为边指定属性的过程是什么

    该过程与向顶点添加特性相同。获取一个
    Edge
    实例,然后执行以下操作:

    Edge e = g.addEdge(v1,v2,'label')
    e.setProperty('weight',0.1d)
    
    至于:

    在Titan中更新图表的过程是什么?假设使用同一个图运行两次加载脚本只会将节点/顶点添加到现有的图中,那么,每次更新模型时,我将如何使用相同的名称生成一个新的图,并让RexPro在运行查询时能够引用它

    加载后,您不希望引用
    BatchGraph
    ,因为它会阻止您进行查询。听起来您应该在
    rexster.xml
    中配置“yourgraph”,当您通过脚本加载时,只需将
    rexster.xml
    配置的
    Graph
    包装在代码中,并对其执行加载操作。当您想查询它时,只需引用“yourgraph”而不是“bg”

    扩展接口以允许分析员在前端输入SQL查询,使用RexPro以与所述类似的方式访问图形,这有多容易


    很难说这是否“容易”,因为这取决于技术之外的因素。我要说的是,可以构建一个接口来接受Gremlin查询(您编写的SQL,但我认为您指的是Gremlin),将它们传递给Rexster并返回一个答案。如何处理这个答案取决于您,但就Rexster在其中的作用而言,我不认为这会是一个问题。

    对于d3可视化,您可以使用力导向图。它们有一些变体

    关系图

    部队布局树


    如果网络包含大量节点和边,则需要在可视化之前对数据进行聚类。您可以使用Gephi、NodeXL等工具来执行集群。然后使用集群数据构建部队导向的可视化。

    嗨,斯蒂芬,谢谢你的回复!边上的属性解释非常有用。至于批处理图,我目前在一个Gremlin加载脚本中有一些代码,该脚本创建一个图g,然后使用g创建一个批处理图。所有数据加载都是使用bg函数完成的,但在我的Python NetworkX可视化脚本中,查询是使用g。这似乎很有效。我说的对吗,一旦你从一个普通的批处理图创建了一个批处理图,更新对g的引用也会更新bg?从最后一条评论继续,因为我的行数已经用完了:如果我的第三个问题让你有点困惑,我道歉。我的意思是,我已经有了一个界面,允许用户在web前端输入一个Gremlin查询,以便根据查询生成一个图形。我通过建立一个RexPro连接并通过。事实上,我所寻找的是一种允许不熟悉Gremlin的分析师能够编写简单查询以类似方式返回数据的东西。所以要么是CQL,要么是SPARQL,要么是类似的。再次干杯。如果您创建
    g
    而没有在
    rexster.xml
    i中定义它
    conn = RexProConnection('localhost,8184,'yourgraph')