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.

Reply via email to