2016-08-03 71 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

謝謝伊萬。現在沒事了。 –