Laden von Daten aus komprimierten und unkomprimierten Dateien - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Laden von Daten aus komprimierten und unkomprimierten Dateien

Wenn Sie komprimierte Daten laden, empfehlen wir, die Daten für jede Tabelle in mehrere Dateien aufzuteilen. Wenn Sie unkomprimierte, getrennte Daten laden, verwendet der COPY-Befehl die massiv parallele Verarbeitung (MPP) und Scanbereiche, um Daten aus großen Dateien in einen Amazon S3 Bucket zu laden.

Laden von Daten aus mehreren komprimierten Dateien

In Fällen, in denen Sie komprimierte Daten haben, empfehlen wir, die Daten für jede Tabelle in mehrere Dateien aufzuteilen. Der COPY-Befehl kann Daten aus mehreren Dateien parallel laden. Sie können mehrere Dateien durch die Angabe eines gemeinsamen Präfixes bzw. Präfixschlüssels für den Satz oder durch die explizite Auflistung der Dateien in einer Manifestdatei laden.

Teilen Sie die Daten so in Dateien auf, dass die Anzahl der Dateien ein Vielfaches der Anzahl der Slices in Ihrem Cluster ist. Auf diese Weise kann Amazon Redshift die Daten gleichmäßig über die Slices verteilen. Die Anzahl der Slices pro Knoten ist von der Knotengröße des Clusters abhängig. Beispielsweise hat jeder dc2.large Compute Node zwei Slices und jeder dc2.8xlarge Compute Node hat 16 Slices. Weitere Informationen zur Anzahl der Slices für die einzelnen Knotengrößen finden Sie unter About Clusters and Nodes (Informationen zu Clustern und Knoten) im Amazon-Redshift-Verwaltungshandbuch.

Die Knoten sind alle an der parallelen Abfrageausführung beteiligt und arbeiten mit Daten, die so gleichmäßig wie möglich über die Slices verteilt sind. Wenn Sie einen Cluster mit zwei dc2.large-Knoten haben, können Sie Ihre Daten in vier Dateien oder ein Vielfaches von vier aufteilen. Amazon Redshift berücksichtigt die Dateigröße beim Aufteilen des Workloads nicht. Deshalb müssen Sie dafür sorgen, dass die Dateien ungefähr die gleiche Größe haben, nach der Komprimierung von 1 MB bis 1 GB.

Wenn Sie Objektpräfixe zur Bezeichnung der Ladedateien verwenden möchten, benennen Sie die einzelnen Dateien mit einem gemeinsamen Präfix. Beispielsweise können Sie die Datei venue.txt wie folgt in vier Dateien aufteilen.

venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4

Wenn Sie mehrere Dateien in einen Ordner in Ihrem Bucket ablegen und den Ordnernamen als Präfix angeben, lädt COPY alle Dateien in diesem Ordner. Wenn Sie die Dateien, die geladen werden sollen, explizit in einer Manifestdatei auflisten, können sich die Dateien in verschiedenen Buckets oder Ordnern befinden.

Weitere Informationen zu Manifestdateien finden Sie unter Example: COPY from Amazon S3 using a manifest.

Laden von Daten aus unkomprimierten, getrennten Dateien

Wenn Sie unkomprimierte, getrennte Daten laden, verwendet der COPY-Befehl die Architektur für die massiv parallele Verarbeitung (Massively Parallel Processing, MPP) in Amazon Redshift. Amazon Redshift verwendet automatisch parallel arbeitende Slices, um Datenbereiche aus einer großen Datei in einen Amazon S3 Bucket zu laden. Die Datei muss getrennt sein, damit ein paralleles Laden stattfindet. Zum Beispiel durch Pipe-Zeichen (|) getrennt. Das automatische, parallele Laden von Daten mit dem Befehl COPY ist auch für CSV-Dateien verfügbar. Sie können auch von der Parallelverarbeitung profitieren, indem Sie für Ihre Tabellen Verteilungsschlüssel festlegen. Weitere Informationen zu Verteilungsschlüsseln finden Sie unter Arbeiten mit Datenverteilungsstilen.

Das automatische, parallele Laden von Daten wird nicht unterstützt, wenn die COPY-Abfrage eines der folgenden Schlüsselwörter enthält: ESCAPE, REMOVEQUOTES und FIXEDWIDTH.

Die Daten aus der Datei oder den Dateien werden Zeile für Zeile in die Zieltabelle geladen. Die Felder in der Datendatei stimmen mit den Tabellenspalten von links nach rechts überein. Die Felder in den Datendateien können eine feste Breite oder durch Zeichen abgetrennt sein. Das Standardtrennzeichen ist das Pipe-Zeichen (|). Standardmäßig werden alle Tabellenspalten geladen. Sie können jedoch optional eine durch Komma getrennte Liste von Spalten definieren. Wenn eine Tabellenspalte nicht in der Liste der Spalten enthalten ist, die im COPY-Befehl angegeben ist, wird sie mit einem Standardwert geladen. Weitere Informationen finden Sie unter Laden von Standardspaltenwerten.

Befolgen Sie für das Laden von Daten aus Amazon S3 diesen allgemeinen Prozess, wenn Ihre Daten unkomprimiert und getrennt sind:

  1. Laden Sie Ihre Dateien in Amazon S3 hoch.

  2. Führen Sie einen COPY-Befehl aus, um die Tabelle zu laden.

  3. Überprüfen Sie, ob die Daten korrekt geladen wurden.

Beispiele für COPY-Befehle finden Sie unter Beispiele für COPY. Weitere Informationen zu Daten, die in Amazon Redshift geladen wurden, finden Sie in den STL_LOAD_COMMITS- und STL_LOAD_ERRORS-Systemtabellen.

Weitere Informationen zu Knoten und den darin enthaltenen Slices finden Sie unter Informationen zu Clustern und Knoten im Amazon-Redshift-Verwaltungshandbuch.