java - OrientDB Java 批量导入
问题描述
当我使用 Java 时,OrientDB 中的批量导入存在更大的问题。
我的数据是记录 ID 和令牌的集合。每个 ID 都存在一组令牌,但令牌可以在多个 ID 中。
例子:
身份令牌
1 2,3,4
2 3,5,7
3 1,2,4
我的图表应该有两种类型的顶点:rIDClass
和tokenClass
. 我想给每个顶点一个对应于记录 ID 和令牌的 ID。所以tokenClass顶点的总数应该是数据中唯一token的总数。(每个令牌只创建一次!)
我怎样才能意识到这个问题?我尝试了原始文档中的“自定义批量插入”,并尝试了蓝图文档中描述的“批量实现”方法。
第一种方法的问题是,OrientDB 为每个插入的标记创建一个具有自定义 ID 的单独顶点,该自定义 ID 由系统本身设置。
第二种方法的问题是,当我尝试将顶点添加到批处理图时,我无法设置相应的顶点类,另外我得到一个异常。这是我的第二种方法的代码:
BatchGraph<OrientGraph> bgraph = new BatchGraph<OrientGraph>(graph, VertexIDType.STRING, 1);
Vertex vertex1 = bgraph.addVertex(1);
vertex1.setProperty("uid", 1);
也许有人有解决方案。
Vertex vertex2 = bgraph.addVertex(2);
vertex2.setProperty("uid", 2);
Edge edge1 = graph.addEdge(12, vertex1 , vertex2, "EdgeConnectClass");
我得到以下异常:
Exception in thread "main" java.lang.ClassCastException:
com.tinkerpop.blueprints.util.wrappers.batch.BatchGraph$BatchVertex cannot be cast to com.tinkerpop.blueprints.impls.orient.OrientVertex
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.addEdge(OrientBaseGraph.java:612)
at App.indexRecords3(App.java:83)
at App.main(App.java:47)
解决方案
推荐阅读
- html - 如何将 404 重定向到主页
- amazon-web-services - AWS Athena \ Glue 上的希伯来语编码
- c++ - 我不知道我在 FindLargest 函数中做错了什么
- ruby-on-rails - Authlogic gem:在会话级别而不是在用户级别使用 last_request_at 列
- sql-server - 使用 mod_proxy 通过反向代理连接到 SQL Server 的正确连接字符串是什么(
)]? - splunk - 如何在 splunk 中获取一个字段值的每小时总和
- typo3 - TYPO3 流体:从页面获取所有内容 ID
- multithreading - 为什么多线程时间不等于 gunicorn 的单个处理时间?
- javascript - 十进制转换错误 - 16 个字符后返回错误答案
- vue.js - Vuetify 路由:更改页面内容难题