Ich habe eine große Menge von Daten in S3 in Form von ein paar hundert CSV-Dateien, die ~ 1,7 TB insgesamt (unkomprimiert) sind. Ich versuche, es auf einen leeren Tisch in einem Redshift-Cluster zu kopieren.Warum verwenden Redshift COPY-Abfragen (viel) mehr Speicherplatz für Tabellen mit einem Sortierschlüssel
Der Cluster ist leer (keine anderen Tabellen) und hat 10 dw2.large Knoten. Wenn ich einen Sortierschlüssel in der Tabelle einstelle, verbraucht der Kopierbefehl den gesamten verfügbaren Speicherplatz auf 25% des Weges und bricht ab. Wenn kein Sortierschlüssel vorhanden ist, wird die Kopie erfolgreich abgeschlossen und verwendet nie mehr als 45% des verfügbaren Speicherplatzes. Dieses Verhalten ist konsistent, unabhängig davon, ob ich auch einen Verteilungsschlüssel gesetzt habe oder nicht.
Ich weiß nicht wirklich, warum das passiert, oder wenn es erwartet wird. Hat jemand dieses Verhalten gesehen? Wenn ja, hast du Vorschläge, wie du das umgehen kannst? Eine Idee wäre es, jede Datei einzeln zu importieren, aber ich würde gerne einen Weg finden, Redshift mit diesem Teil selbst zu arbeiten und alles in einer Abfrage zu erledigen.
2.5x die Größe der eingehenden Daten? Das erscheint lächerlich. Es ist nicht eine konstante Anzahl von Reihen, die Sie einfügen, aber es ist tatsächlich abhängig von der Größe der Zeilen? – michaelsnowden
Wir hatten auch große Probleme damit. Unser Cluster hatte zu Beginn des Imports 40% Festplattenbenutzung und würde den ganzen Weg auf 100% gehen und manchmal sogar den Import abstürzen, was lächerlich erscheint. –