如何将Neo4j CSV数据库转储导入OrientDB?遇ETL配置错误求助
问题排查与修复
错误原因
从堆栈日志可定位核心问题:
- 异常
StringIndexOutOfBoundsException: String index out of range: -1源于OrientDB ETL Loader解析数据库URL时,无法找到目标数据库名称。 - 你的
dbURL仅指定了连接地址和端口,未包含数据库名称,而OrientDB远程连接URL的标准格式必须附带数据库名(如remote:localhost:2480/[数据库名]),否则工具会因截取不到有效字符串抛出异常。
修复方法
修改Anatomy-config.json中的dbURL配置,补充自定义的数据库名称(示例用NIH-Lung-Cancer,可按需调整):
"loader": { "orientdb": { "dbURL": "remote:localhost:2480/NIH-Lung-Cancer", "dbUser": "root", "dbPassword": "rootpwd", "dbAutoCreate": true, "tx": false, "batchCommit": 1000, "dbType": "graph" } }
- 因配置中开启了
dbAutoCreate: true,若指定的数据库不存在,OrientDB会自动创建该数据库。
验证步骤
- 保存修改后的配置文件
- 重新执行ETL命令:
oetl.sh /home/dataverse_files/input/Orientdb/Anatomy-config.json
- 检查日志是否正常初始化数据库并启动CSV数据导入流程。
内容的提问来源于stack exchange,提问作者Zach
相关产品推荐
相关产品推荐

