Hi There,

I have been working with OrientDB now for only a short period but I have 
run across a problem with the ETL application.  Now this may just be my 
lack of experience but I wanted to check.

I am shipping data from a MySQL server and then trying to create a company 
hierarchy of many business and customers.  I have used some of the code 
that has been posted within this group but I am still struggling to get it 
to work as I would like.  The problem I am facing is that the ETL app is 
adding the edges between the verticies if they are already there.  So if I 
run the ETL application over and over again ( which I will need to do ) the 
edges are created over and over again and I cannot see any way to stop it. 
 Basically I am only want to create the edge between the verticies if there 
is not already an edge there.  So each customer should only have one edge 
per business.

Below is my setup and ETL config.

Is someone able to help?

-- Business --
CREATE CLASS Business EXTENDS V;
CREATE PROPERTY Business.BusinessLabel STRING;
CREATE PROPERTY Business.Name STRING;
CREATE INDEX Business.Label UNIQUE;

-- Customer --
CREATE CLASS Customer EXTENDS V;
CREATE PROPERTY Customer.EmailAddress STRING;    
CREATE PROPERTY Customer.Name STRING;    
CREATE PROPERTY Customer.BusinessLabel         STRING;
CREATE INDEX Customer.EmailAddress UNIQUE;
CREATE INDEX Customer.BusinessLabel NOTUNIQUE;

-- Customer to Business Edge --
CREATE CLASS CustomerOf EXTENDS E;

-- OETL Config --
{
"config": 
    {
    "log": "debug"
    },
"extractor" : 
    {
    "jdbc": 
        { 
        "driver": "com.mysql.jdbc.Driver",
        "url": "jdbc:mysql://localhost/Company",
        "userName": "admin",
        "userPassword": "admin",
        "query": "SELECT EmailAddress, Name, BusinessLabel FROM Customer;" }
    },
"transformers" : 
    [
    {
    log: 
        {
        prefix: "MySQL -> "
        }
    },
    {
    merge: 
        {
        joinFieldName: "EmailAddress",
        lookup: "Customer.EmailAddress"
        }
    },
    {
    vertex: 
        {
        class: "Customer"
        }
    },
    {
    edge: 
        {
        joinFieldName: "BusinessLabel",  
        lookup: "Business.BusinessLabel",
        class: "CustomerOf", 
        direction: "out",
        unresolvedLinkAction: "CREATE"
        }
    },
    {
    log: 
        {
        prefix: "Vertex -> "
        }
    }
    ],
"loader" : 
    {
    "orientdb": 
        {
        "dbURL": "remote:localhost/Company",
        "dbUser": "admin",
        "dbPassword": "admin",
        "dbType": "graph",
        "tx":false,
        "batchCommit":100,
        "wal":false
        }
    }
}

-- 

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