2016-06-10 8 views
1

Schließlich muss ich 35 GB Daten in einer Aragnodb-Instanz laden.
Bisher habe ich diese Ansätze versucht nur 5GB zu laden (und nicht):Bulimimport/arangoimp

  • über Gremlin Laden. Es hat funktioniert, aber es dauerte ungefähr 3 Tage; Das ist keine Option.

  • bulkimport verfügt über einen import? API-Endpunkt, aber ich habe den folgenden Fehler:
    ...[1] WARNING maximal body size is 536870912, request body size is -2032123904

  • arangodbimp Befehl, aber ich endete mit zwei verschiedenen Fehler auf:

    • Ohne/small --batch-size es feuert
      import file is too big. please increase the value of --batch-size
    • Mit einem größeren --batch-size gibt es den gleichen Fehler wie der Bulkimport zurück.

Könnte mir jemand sagen, wie sie zu beheben haben Befehle, oder ein Weg, um tatsächlich diese Daten zu laden?

Dank

Edit für @DavidThomas, kommt hier die Spezifikationen:
- RAM: 128G
- CPU: 2x Intel (R) Xeon (R) Prozessor E5-2420 0 @ 1.90GHz
- OS: Linux (ubuntu) Sneezy 3.13.0-86-generic
- HDD: klassische (non SSD)

+0

Was waren die Spezifikationen Ihres ArangoDB-Servers? RAM, Festplatte, CPU, Betriebssystem. Ich weiß, RAM ist wichtig. Ich bin auch an meiner Arbeit in Arango interessiert. Prost, –

+0

Danke für die Statistiken. Ich habe Importe durchgeführt, aber eine node.js-App verwendet, um einen Stream-Reader für die Importdatei zu öffnen (im CSV- oder JSON-Format) und dann die Datensätze einfach mit dem .createReadStream innerhalb des fs-Pakets zu übertragen. Das Ausschalten von WaitForSync kann die Geschwindigkeit erhöhen, aber es können andere Probleme auftreten. Ich bin daran interessiert zu sehen, Arango Unterstützung dies zu beantworten. –

Antwort

1

ich hoffe, Sie sind nicht ArangoDB 2.4 als in your link to ArangoImp mit? ;-)

Für unsere Performance Blogpost series haben wir die pokec dataset using arangoimp importiert. Die maximale POST-Körpergröße des Servers beträgt 512 MB.

Aus Gründen der Leistung analysiert arangoimp den JSON nicht, sondern lehnt sich an eine Zeile der Importdatei an, die ein zu sendendes Dokument ist, so dass es leicht in Bits eines gültigen JSons zerlegt werden kann.

Es kann daher nicht in json behandelt Chunking diese Deponien wie:

[ 
{ "name" : { "first" : "John", "last" : "Connor" }, "active" : true, "age" : 25, "likes" : [ "swimming"] }, 
{ "name" : { "first" : "Lisa", "last" : "Jones" }, "dob" : "1981-04-09", "likes" : [ "running" ] } 
] 

und damit versuchen, auf einmal die ganze Datei zu senden; Wenn das Ihre angegebene Batch-Größe überschreitet, erhalten Sie die import file is too big Fehlermeldung.

Allerdings, wenn Ihre Datei enthält ein Dokument pro Zeile:

{ "name" : { "first" : "John", "last" : "Connor" }, "active" : true, "age" : 25, "likes" : [ "swimming"] } 
{ "name" : { "first" : "Lisa", "last" : "Jones" }, "dob" : "1981-04-09", "likes" : [ "running" ] } 

es entlang der --batch-size bis zu einer minimalen Größe von 32kb Chunking pro Zeile verarbeiten kann.

müssen Sie daher Ihren Dump entlang der oben genannten Richtlinien vorbereiten, um arangoimp zu verwenden.

Da arangoimp auch die Import-API verwendet, gelten dieselben Einschränkungen wie bei der Verwendung von raw.Sie müssen a tiny programm using a stream enabled json parser schreiben und die Ausgabe als ein Dokument pro Zeile übersetzen. Sie können dann direkt Chunks an den Server in Ihrem Skript senden oder arangoimp verwenden, um das Chunking für Sie zu erledigen.

+0

Vielen Dank für Ihre Unterstützung. Ich werde Ihre Tipps folgen, und dann werde ich zurück melden. – Martin

+0

Hat die Antwort für Sie funktioniert? Wenn ja, können Sie es als "akzeptiert" bezeichnen? Wenn nicht, was fehlt? – dothebart