2016-08-03 44 views
0

我使用orientdb 2.2.4/2.2.5/2.2.6通过oetl导入和导出边界。在所有版本中,错误都是一样的。如果我使用版本2.1,则不会发生错误。orientdb - 导入csv时出错 - 管理员凭证

我的JSON文件是

{ 
    "config": { 
     "log": "info", 
       "parallel": false 
    }, 
    "source": { 
     "file": { 
     "path": "/opt/orientdb/csvs_1milhao/metodo03/a10a.csv" 
     } 
    }, 
    "extractor": { 
     "row": { 
     } 
    }, 
    "transformers": [{ 
     "csv": { 
     "separator": ",", 
     "columnsOnFirstLine": true, 
     "columns": ["psq_id_from:integer", 
     "pro_id_to:integer", 
     "ordem:integer"] 
     } 
    }, 
    { 
     "command": { 
     "command": "create edge PUBLICOU from (SELECT FROM index:Pesquisador.psq_id WHERE key = ${input.psq_id_from}) to (SELECT FROM index:Producao.pro_id where key = ${input.pro_id_to})", 
     "output": "edge" 
     } 
    }], 
    "loader": { 
     "orientdb": { 
     "dbURL": "remote:localhost/dbUmMilhaoM03", 
     "dbUser": "admin", 
     "dbPassword": "admin", 
     "dbURL": "remote:localhost/dbUmMilhaoM03", 
     "dbType": "graph", 
     "standardElementConstraints": false, 
     "batchCommit": 1000, 
     "classes": [{ 
      "name": "PUBLICOU", 
      "extends": "E" 
     }] 
     } 
    } 
} 

当我执行oetl命令,结果是:

 [email protected]:/opt/orientdb_226/bin# ./oetl.sh /opt/orientdb_226/scripts_orientdb/Db1Milhao/metodo03/a10a_psq_publicou_pro.json >> log_m03 
Exception in thread "main" com.orientechnologies.orient.core.exception.OConfigurationException: Error on creating ETL processor 
    at com.orientechnologies.orient.etl.OETLProcessor.parse(OETLProcessor.java:225) 
    at com.orientechnologies.orient.etl.OETLProcessor.parse(OETLProcessor.java:176) 
    at com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:144) 
    at com.orientechnologies.orient.etl.OETLProcessor.main(OETLProcessor.java:108) 
Caused by: com.orientechnologies.orient.etl.loader.OLoaderException: unable to manage remote db without server admin credentials 
    at com.orientechnologies.orient.etl.loader.OOrientDBLoader.manageRemoteDatabase(OOrientDBLoader.java:447) 
    at com.orientechnologies.orient.etl.loader.OOrientDBLoader.configure(OOrientDBLoader.java:391) 
    at com.orientechnologies.orient.etl.OETLProcessor.configureComponent(OETLProcessor.java:448) 
    at com.orientechnologies.orient.etl.OETLProcessor.configureLoader(OETLProcessor.java:262) 
    at com.orientechnologies.orient.etl.OETLProcessor.parse(OETLProcessor.java:209) 
    ... 3 more 

当我OrientDb 2.1结果执行的是:

Exception in thread "main" com.orientechnologies.orient.etl.OETLProcessHaltedException: com.orientechnologies.orient.core.exception.OCommandExecutionException: Source vertex '#-1:-1' not exists 

但索引存在

Name Type Class Properties Engine Actions 
Atuacao.atu_id UNIQUE Atuacao  [atu_id] SBTREE 
dictionary DICTIONARY  [undefined]  SBTREE 
Instituicao.ins_id UNIQUE Instituicao  [ins_id] SBTREE 
ORole.name UNIQUE ORole [name] SBTREE 
OUser.name UNIQUE OUser [name] SBTREE 
Pais.pai_id  UNIQUE Pais [pai_id] SBTREE 
Pesquisador.psq_id UNIQUE Pesquisador  [psq_id] SBTREE 
Producao.pro_id  UNIQUE Producao [pro_id] SBTREE 
Publicacao.pub_id UNIQUE Publicacao [pub_id] SBTREE 
TipoPublicacao.tpu_id UNIQUE TipoPublicacao [tpu_id] SBTREE 

这是一个Orientdb错误吗?

+0

您是否创建了2.1或2.2版本的数据库?使用Studio还是控制台? –

+0

您可以尝试使用“dbURL”:“remote:localhost/yourDb”, “dbType”:“graph”, “dbUser”:“admin”, “dbPassword”:“admin”, “serverUser”您的服务器用户“, ”serverPassword“:”yourPasswordUser“, ”dbAutoCreate“:false, –

+0

好吧,Alessandro,带有serverUser和serverPassword证书其正常但是选择索引:in _from和_to返回-1,但是如果我执行在浏览器中选择返回@rid确定。 –

回答

0

试试这个作为你的命令:

"command": "create edge PUBLICOU from (SELECT expand(rid) FROM index:Pesquisador.psq_id WHERE key = ${input.psq_id_from}) to (SELECT expand(rid) FROM index:Producao.pro_id where key = ${input.pro_id_to})" 

这应该工作,因为当你从索引中选择与结果记录相关联的RID是在物业rid


甚至更​​好您可以直接从类而不是指数的选择:

create edge PUBLICOU from (SELECT FROM Pesquisador WHERE psq_id = ${input.psq_id_from}) to (SELECT FROM Producao where pro_id = ${input.pro_id_to}) 
以这种方式使用索引以及

example

伊万

+0

我试过使用:索引,因为Orientdb建议在日志中使用。有大约10万个边缘要导入。但是,与索引导入:不执行,返回Java异常错误,然后我在索引内使用导入: –

+0

我编辑了我的ans,在第一个命令中我已经在select中添加了'expand(rid)'。现在它可以工作。让我知道 –

+0

谢谢伊万。现在没事了。 –