我无法让ETL导入器正常工作。
我使用的配置文件是以下
{
"config": {
"log": "debug"
},
"begin": [],
"source": {
"file": {
"path": "/mnt/shares/Sites/store.csv"
}
},
"extractor": {
"csv" : {
"ignoreEmptyLines": true
}
},
"transformers": [
{
"vertex": {
"class": "Store" ,
"skipDuplicates": true
}
}
],
"loader": {
"orientdb": {
"dbURL": "plocal:/usr/local/src/orientdb-community-2.2.6/databases/my_database_name",
"dbUser": "myuser",
"dbPassword": "mypass",
"dbAutoCreate": false,
"tx": false,
"batchCommit": 1000,
"wal" : false
}
},
"end": []
}
我得到的错误是:
线程中的异常" main" java.lang.IllegalAccessError:尝试访问方法com.orientechnologies.common.exception.OException。(Ljava / lang / String; Ljava / lang / Throwable;)来自com.orientechnologies.orient.etl.OETLProcessor类的V 在com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:136) 在com.orientechnologies.orient.etl.OETLProcessor.main(OETLProcessor.java:113)
如果我将配置文件与" config"放在一起,我甚至会遇到同样的错误单独进入...
有人对这个话题有一些想法吗?
更新: 错误似乎在OETLProcessor.java中的以下行引发:
final OTransformer tr = factory.getTransformer(name);
答案 0 :(得分:0)
我尝试导入此csv
storeid,name
1,store1
2,store2
3,store3
用这个json
{
"config": {
"log": "debug"
},
"begin": [],
"source": {
"file": {
"path": "myPath/Store.csv"
}
},
"extractor": {
"csv" : {
"separator": ",",
"ignoreEmptyLines": true
}
},
"transformers": [
{
"vertex": {
"class": "Store" ,
"skipDuplicates": true
}
}
],
"loader": {
"orientdb": {
"dbURL": "plocal:myPath/Store",
"dbUser": "admin",
"dbPassword": "admin",
"dbAutoCreate": false,
"tx": false,
"batchCommit": 1000,
"wal" : false
}
},
"end": []
}
它对我有用。
希望它有所帮助。
答案 1 :(得分:0)
重试后我发现了问题: 由于某种原因,我有2个不同的.jar版本,显然使用的是错误的版本。 我有 - ORIENTDB_HOME / LIB / orientdb-etl-2.1.3.jar - ORIENTDB_HOME / LIB / orientdb-etl-2.2.6.jar
我刚刚在orientdb-etl-2.1.3.jarUNUSED中重命名了2.1.3
事情开始奏效了。下一个问题是我无法使用root帐户进行访问(github问题上有明确描述的动机,但我无法再找到它...),所以我创建了一个新的管理员帐户并使用它。
所以最终它起作用了。