我有一些现有的代码,我用Groovy编写,用于将数据提取到Titan w / Cassandra + Elasticsearch后端。随着Datastax Enterprise 5.0的发布,我一直在寻找是否可以迁移Titan的现有代码。
代码的主要用途是解析一些字段,转换一些值(例如:datetimestamp - > epoch),并在添加新边时检查边缘唯一性(例如:' A喜欢Apples& #39;关系应该只出现在图表中一次,即使多个“A”喜欢“苹果关系”可能会出现在原始文件中。
到目前为止我尝试过:
使用带有边标签多重性的DSE图形加载器作为单个(无属性)和顶点多重性为单个:
data = File.text(filepath).delimiter(',').header('a', 'b', 'c')
load(data).asVertices { }
load(data).asEdges { }
使用此模板,顶点是唯一的(每个顶点标签一个顶点)。但是,模式中定义为单个的边标签将在每次"相同的情况下抛出异常。尝试添加边缘。是否可以在加载脚本中添加检查以获得唯一性?
通过gremlin控制台加载数据
:load filepath
我发现我的预先存在的代码在执行load命令时抛出了很多异常。在摆脱了一些没有导入的Java / Titan类之后(TitanManagement,无法导入SimpleDateFormat),我得到了一个
org.apache.tinkerpop.gremlin.groovy.plugin.RemoteException
有关让gremlin-console集成工作的任何提示?
最后一个问题:Datastax收购Titan后是否有任何功能被删除?
提前致谢!
答案 0 :(得分:1)
我们正在研究图形加载器的功能增强,以支持重复边缘检查。如果您的边缘只是单基数,则可以使用边缘的基数属性强制执行该操作。单个()
对于第二项,您使用的是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的集成。