1

我正在从 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 分析来计算节点,例如,

https://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/graphAnalytics/northwindDemoGraphSnapshot.html

但我没有找到更多关于如何使用分析运行自定义脚本的文档

谢谢

4

1 回答 1

1

答案恰好在您链接的页面上。看起来它可能比您习惯使用 Titan 时要容易一些。关键是在第 8 步中,您将 Traversal 配置为使用预配置的 OLAP/Analytics TraversalSource,它被命名为a(用于 Analytics)。

  1. 将遍历命名为 Northwind 分析 OLAP 遍历源 a。一次性分析查询的 OLAP 遍历源的别名 g:

gremlin> :remote config alias g northwind.a

这基本上是说..“当我在 TraversalSource 上执行 Traversal 时g,我希望它northwind.a在服务器上具有别名”。

一旦你这样做了,所有的遍历都g将使用northwind.aSpark 分析引擎执行。

于 2016-11-26T16:19:35.417 回答