我正在从Titan迁移到Datastax。我有一个大约有5000万个节点的图表,由人,地址,电话等组成
我想计算一个Person节点连接(有多少人有相同的电话,地址等)。
在Titan中,我编写了一个Hadoop作业,该作业覆盖了人员节点,我可以编写一个gremlin脚本,以查看有多少人为此特定节点拥有相同的电话
所以我作为输入属性:
titan.hadoop.input.format=com.thinkaurelius.titan.hadoop.formats.hbase.TitanHBaseInputFormat
titan.hadoop.input.conf.storage.backend=hbase
对于查询过滤器,我只查询人员节点
titan.hadoop.graph.input.vertex-query-filter=v.query().has('type',Compare.EQUAL,'person')
要运行我使用的脚本
titan.hadoop.output.conf.script-file=scripts/calculate.groovy
这将为每个节点计算该人拥有的共享电话连接数。
object.phone_shared= object.as('x').out('person_phones').in('person_phones').except('x').count()
有没有办法在Datastax中编写这种脚本来遍历人员节点。我看到Datastax使用Spark分析来计算节点,例如,
但我没有找到关于如何使用分析运行自定义脚本的更多文档
由于
答案 0 :(得分:1)
答案恰好在您链接的页面上。看起来它可能比你习惯Titan更容易一些。关键是在步骤8中,您将Traversal配置为使用预配置的OLAP / Analytics TraversalSource,其名为a
(用于Google Analytics)。
- 将遍历别名转换为Northwind分析OLAP遍历源 一个。别名为一次性分析查询的OLAP遍历源:
醇>
gremlin> :remote config alias g northwind.a
这基本上说..
“当我在TraversalSource g
上执行Traversal时,我希望它在服务器上与northwind.a
别名”。
完成此操作后,g
的所有遍历将使用northwind.a
执行,从而执行Spark分析引擎。