2016-08-03 22 views
0

Ich importiere und Edge von oetl mit orientdb 2.2.4/2.2.5/2.2.6. In allen Versionen ist der Fehler gleich. Wenn ich Version 2.1 verwende, tritt der Fehler nicht auf.orientdb - Fehler beim Import csv - admin Anmeldeinformationen

Meine JSON-Datei

{ 
    "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" 
     }] 
     } 
    } 
} 

ist, wenn ich den OETL Befehl ausführen, das Ergebnis ist:

 [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 

Als ich mit Orientdb 2.1 das Ergebnis ausführen wird:

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

Aber die Indizes existieren

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 

Ist das ein Orientdb-Fehler?

+0

erstellt haben Sie die Datenbank mit der Version 2.1 oder 2.2? Mit Studio oder Konsole? –

+0

Könnten Sie versuchen mit "dbURL": "remote: localhost/yourDb", "dbType": "Grafik", "dbUser": "admin", "dbPassword": "admin", "serverUser": " yourServerUser ", " serverPassword ":" yourPasswordUser ", " dbAutoCreate ": false, –

+0

ok, Alessandro, mit serverUser und serverPassword der Berechtigungsnachweis ist ok aber der selects index: in _from und _to -1, aber wenn ich den Auswahl im Browser gibt @rid ok zurück. –

Antwort

0

versuchen, dies als Befehl:

"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})" 

dies soll da arbeiten, wenn Sie aus dem Index auswählen, die in der Eigenschaft des rid im Zusammenhang mit dem Rekordergebnis rid ist.


Oder noch besser Sie können direkt aus der Klasse wählen statt Index:

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}) 

auf diese Weise es Indizes als auch verwendet.

example

Ivan

+0

Ich habe versucht, zu verwenden: Index, weil die Orientdb die Verwendung im Protokoll vorgeschlagen. Es sind ungefähr 10 Millionen Kanten zu importieren. Aber der Import mit Index: nicht ausführen, Java Exception Error zurückgeben, dann benutze ich den Import im Index: –

+0

Ich habe meine ans bearbeitet, im ersten Befehl habe ich die 'expand (rid)' in beiden auswählen. Jetzt funktioniert es. Lass es mich wissen –

+0

Danke Ivan. Jetzt ist es ok. –