Salve!
the exception complains about a duplicate record, and I think that's quite
okay. The only thing is that I do not want to stop the whole ETL process,
when this exception occurs but rather want to skip the record and continue
with the next.
To better understand my requirement: I have an excel that contains
employees of a company. This excel also contains the cost centers of each
the employees, in the same row as name, address and so on. So the excel is
far from being normalized (this is quite often the case with excels). My
problem is that I want to create not only the employees (as vertices) out
of this excel, but the cost centers as well. But as the cost centers occur
more than once, I get duplicate key errors.
Here is the exception:
[2:vertex] DEBUG Transformer input:
{cc:Geschäftsleitung,cc_no:1,responsible:0,next_cc:1}
Error in Pipeline execution:
com.orientechnologies.orient.core.storage.ORecordDuplicatedException:
Cannot index record
CostCenter{cc:Geschäftsleitung,cc_no:1,responsible:0,next_cc:1}: found
duplicated key '1' in index 'CostCenter.cc_no' previously assigned to the
record #11:0 RID=#11:0
com.orientechnologies.orient.core.storage.ORecordDuplicatedException:
Cannot index record
CostCenter{cc:Geschäftsleitung,cc_no:1,responsible:0,next_cc:1}: found
duplicated key '1' in index 'CostCenter.cc_no' previously assigned to the
record #11:0 RID=#11:0
at
com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.checkEntry(OIndexTxAwareOneValue.java:221)
And, if anyone is interested, this is my config file (perhaps someone as
proposals to improve it):
{
"config": {
"log": "debug"
},
"source": {
"file": {
"path": "/Users/d022051/NetBeansProjects/ETL/Personalstamm -
Kostenstellenhierarchie.csv"
}
},
"extractor": {
"row": {}
},
"transformers": [
{
"csv": {
"skipFrom": 0,
"skipTo": 0,
"nullValue": "",
"separator": ";",
"columns": ["id:integer", "name", "firstname", "title",
"birthday:string", "function", "country", "cc", "cc_no:integer",
"responsible:integer", "next_cc:integer"]
}
}, {
"field": {
"fieldName": "id",
"operation": "remove"
}
},
{
"field": {
"fieldName": "name",
"operation": "remove"
}
},
{
"field": {
"fieldName": "firstname",
"operation": "remove"
}
},
{
"field": {
"fieldName": "title",
"operation": "remove"
}
},
{
"field": {
"fieldName": "birthday",
"operation": "remove"
}
},
{
"field": {
"fieldName": "function",
"operation": "remove"
}
},
{
"field": {
"fieldName": "country",
"operation": "remove"
}
},
{
"vertex": {
"class": "CostCenter"
}
}
],
"loader": {
"orientdb": {
"dbURL": "plocal:/Users/d022051/NetBeansProjects/ETL/db",
"dbType": "graph",
"dbAutoDropIfExists": false,
"dbAutoCreate": true,
"standardElementConstraints": false,
"classes": [
{
"name": "CostCenter",
"extends": "V"
}
],
"indexes": [
{
"class": "CostCenter",
"fields": ["cc_no:integer"],
"type": "UNIQUE"
}
]
}
}
}
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.