Vous essayez de charger un simple fichier de données json dans OrientDB à l'aide de l'utilitaire oetl.sh.Impossible de charger JSON dans la classe OrientDB
Voici mon fichier de données d'entrée (/tmp/databases/test_data1/database.json).
[
{
"id": 1,
"name" : "xyz"
},
{
"id": 2,
"name" : "pqr"
},
{
"id": 3,
"name" : "abc"
}
]
Voici mon fichier JSON de configuration (/tmp/json_import_config.json).
{
"config": {
"log": "debug"
},
"source" : {
"file": { "path": "/tmp/databases/test_data1/database.json" }
},
"extractor" : {
"json": {}
},
"transformers": [
{
"log": {}
}
],
"loader" : {
"orientdb": {
"dbURL": "plocal:/opt/orientdb/databases/example3",
"dbUser": "admin",
"dbPassword": "admin",
"dbAutoDropIfExists": true,
"dbAutoCreate": true,
"standardElementConstraints": false,
"tx": false,
"wal": false,
"batchCommit": 1000,
"dbType": "document",
"classes": [{"name": "Account"}]
}
},
"end": []
}
Voici la commande que j'utilise.
./oetl.sh /tmp/json_import_config.json
est ici la sortie ....
OrientDB etl v.2.2.20 (build 76ab59e72943d0ba196188ed100c882be4315139) https://www.orientdb.com
[file] INFO Load from file /tmp/databases/test_data1/database.json
[orientdb] INFO Dropping existent database 'plocal:/opt/orientdb/databases/example3'...
BEGIN ETL PROCESSOR
[file] INFO Reading from file /tmp/databases/test_data1/database.json with encoding UTF-8
Started execution with 1 worker threads
+ extracted 0 entries (0 entries/sec) - 0 entries -> loaded 0 documents (0 documents/sec) Total time: 1000ms [0 warnings, 0 errors]
[orientdb] DEBUG - OrientDBLoader: created class 'Account'
[orientdb] DEBUG orientdb: found 0 documents in class 'null'
Start extracting
[0:log] DEBUG Transformer input: {id:1,name:xyz}
Extraction completed
[0:log] INFO {id:1,name:xyz}
[0:log] DEBUG Transformer output: {id:1,name:xyz}
Pipeline execution halted
2018-12-06 13:47:41:386 SEVER {db=example3} ETL process halted: com.orientechnologies.orient.etl.OETLProcessHaltedException: Cannot insert new document {id:1,name:xyz} because it has not class [OETLProcessor$OETLPipelineWorker][orientdb] INFO committing
Pipeline worker done without errors: false
END ETL PROCESSOR
+ extracted 3 entries (15 entries/sec) - 3 entries -> loaded 0 documents (0 documents/sec) Total time: 1190ms [0 warnings, 1 errors]
Besoin d'aide pour résoudre ce problème. J'aimerais aussi savoir si OrientDB est un bon choix pour l'utiliser seulement comme un magasin de documents car il n'a pas trouvé beaucoup de cas d'utilisation autour d'elle. La plupart des cas d'utilisation sont w.r.t. Graphique.
Merci Roberto pour la réponse. Il ne fonctionne toujours pas après avoir fait le changement suggéré. Je reçois l'erreur suivante. "java.lang.ClassCastException: java.lang.String ne peut pas être converti en com.orientechnologies.orient.core.record.impl.ODocument". Serait-il possible de partager les configurations exactes qui ont fonctionné? – TechEnthusiast
Je viens d'ajouter le transformateur comme montré dans mon extrait. Rien d'autre. –
Merci Roberto ça a marché. J'ai essayé d'éditer votre réponse et de tirer le crochet dans l'extrait de code, mais je n'ai pas réussi à le faire car il fallait modifier 6 caractères. – TechEnthusiast