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"] }
]
}
}
Sie können dies sehen [Frage] (http://stackoverflow.com/questions/37053190/orientdb-fastest-batchimport/37065876#37065876) –