0

我有一些在 Groovy 中编写的现有代码,用于通过 Cassandra + Elasticsearch 后端将数据摄取到 Titan。随着 Datastax Enterprise 5.0 的发布,我正在寻找是否可以迁移 Titan 的现有代码。

代码的主要用途是解析一些字段,转换一些值(例如:datetimestamp -> epoch),并在添加新边时检查边的唯一性(例如:“A likes Apples”关系应该只出现一次即使原始文件中可能出现多个“A 喜欢苹果”关系,该图也是如此)。

到目前为止我已经尝试过:

  • 使用边缘标签多重性为单一(无属性)和顶点多重性为单一的 DSE 图形加载器:

    data = File.text(filepath).delimiter(',').header('a', 'b', 'c')
    load(data).asVertices { }
    load(data).asEdges { }
    

    使用此模板,顶点是唯一的(每个顶点标签一个顶点)。但是,模式中定义为单一的边缘标签将在每次尝试添加“相同”边缘时引发异常。是否可以在加载脚本中添加唯一性检查?

  • 通过 gremlin 控制台加载数据

    :load filepath
    

    我发现我的预先存在的代码在执行加载命令时抛出了很多异常。在删除了一些没有导入的 Java/Titan 类(TitanManagement、SimpleDateFormat 无法导入)之后,我得到了一个

    org.apache.tinkerpop.gremlin.groovy.plugin.RemoteException
    

    有关使 gremlin-console 集成正常工作的任何提示?

最后一个问题:Datastax 收购 Titan 是否删除了任何功能?

提前致谢!

4

1 回答 1

1

我们正在研究 Graph Loader 的功能增强,以支持重复边检查。如果您的边缘只是单一基数,您可以使用边缘的基数属性 .single()

对于第二个项目,您是否使用 DSE 提供的 Gremlin 控制台?您的控制台是本地的,您的集群是否位于另一台机器上?您的 Titan 环境的设置是什么?

就上下文而言,DataStax 没有购买 Titan。Titan 是一个开源图形数据库,并且仍然是一个开源图形数据库。DataStax 收购了 Titan 的创建者 Aurelius 团队。Aurelius 团队构建了一个新的图形数据库,该数据库的灵感来自于 Titan,并且与 TinkerPop 兼容。DSE Graph 和 Titan 之间存在功能和实现细节差异,可在此处找到 - http://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/graphTOC.html

您可能感兴趣的一个是 DSE Search 和 DSE Graph 的集成。

于 2016-07-27T21:20:07.640 回答