2016-05-31 10 views
0

Ich bin neu in OrientDB, hatte ein wenig Erfahrung mit Neo4J, und ich habe Leistungsprobleme beim Laden und Erstellen von Kanten mit dem OETL.BAT-Tool. Ich muss ~ 4,4 Millionen Kanten zwischen den Knoten erstellen (etwa 42 Millionen, nicht alle werden in dieser Stufe von ETL verwendet). Die "Kunden" -Knoten sind bereits geladen, und die Kantenliste, die ich lade, ist sehr einfach (wie unten) und hat einfach eine Ziel-ID & für jede Kante, ihre Absicht ist es, Zahlungen zwischen Kunden zu modellieren.OrientDB slow Edge ETL Erstellung

Im Moment bekomme ich einen Durchsatz von ~ 23-30 pro Sekunde, nach dem Etl-Tool. Ich habe statt einer JDBC-Verbindung zu meinem RDBMS eine CSV-Datei verwendet, und ich bin auch im "Plocal" -Modus.

Gibt es einen schnelleren Weg, dies zu tun? oder gehe ich vielleicht den falschen Weg?

Kunden - Vertex CISNumber, Namens-

PAID - Kanten SourceCISNumber, DestCISNumber, Betrag, TransactionCount

Vielen Dank im Voraus

{ 
"source": { "file": { "path": "/datafiles/PersonalCustomers/Edges.csv" } }, 
    "extractor": { "row": {} }, 
"transformers": [ 
    {"csv": {} }, 
    {"merge": {"joinFieldName": "SourceCISNumber", "lookup": "Customer.CISNumber"} }, 
    {"vertex": {"class": "Customer", "skipDuplicates": true} }, 
    { "edge": 
     { 
      "class": "PAID", 
      "joinFieldName": "DestCISNumber", 
      "lookup": "Customer.CISNumber", 
      "unresolvedLinkAction": "SKIP", 
      "edgeFields": 
       { 
        "Volume": "${input.Transactioncount}", 
        "Value": "${input.Amount}" 
       } 
     } 
    }, 
    {"field": {"fieldNames": ["SourceCISNumber", "DestCISNumber", "Transactioncount", "Amount"], "operation": "remove" } } 
    ], 
    "loader": { 
    "orientdb": { 
     "dbURL": "plocal:/orientdb/databases/Customers", 
     "dbType": "graph", 
     "batchCommit": 500, 
     "useLightweightEdges" : true, 
     "classes": [ 
     {"name": "PAID", "extends": "E"}, 
     ] 
    }, 
    "indexes": [ 
     {"class":"Customer", "fields":["CISNumber:long"] } 
     ] 
    } 
} 
+0

Sie können dies sehen [Frage] (http://stackoverflow.com/questions/37053190/orientdb-fastest-batchimport/37065876#37065876) –

Antwort

0

sollten Sie setzen "batchCommit" : 1000 im "loader". Auch "parallel": wahr in der "config"