2016-05-31 23 views
0

Neo4Jで少し経験があり、OETL.BATツールを使用してエッジを読み込んで作成しようとすると、パフォーマンスの問題が発生します。私はノード間に~440万のエッジを作成する必要があります(およそ4200万、すべての段階がetlのこの段階で使用されるわけではありません)。 「顧客」ノードは既にロードされており、ロードリストは非常に単純で(以下のように)、各エッジの宛先IDは&です。その目的は顧客間の支払いをモデル化することです。OrientDBスローエッジETL作成

現在、etlツールによれば、毎秒〜23-30のスループットが得られます。私はRDBMSへのJDBC接続ではなく、CSVファイルを使うことに頼っていました。私は "plocal"モードにもなっています。

これを行う方法はありますか?または私はおそらく間違ったアプローチをしていますか?

カスタマー - 頂点 CISNumber、名前支払っ

- エッジ SourceCISNumber、DestCISNumber、金額、TransactionCount事前に

おかげ

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

この[質問](http://stackoverflow.com/questions/37053190/orientdb-fastest-batchimport/37065876#37065876)が表示されます。 –

答えて

0

あなたが "batchCommit" を置く必要があります: "ローダー"の1000。 また、「パラレル」:「設定」の真

関連する問題