我有一些在 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 是否删除了任何功能?
提前致谢!