Erstellen von Datendateien für Abfragen in Amazon Redshift Spectrum - 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.

Erstellen von Datendateien für Abfragen in Amazon Redshift Spectrum

Die Datendateien, die Sie für Abfragen in Amazon Redshift Spectrum verwenden, sind im Allgemeinen dieselben Dateitypen, die Sie für andere Anwendungen verwenden. Beispielsweise werden dieselben Dateitypen mit Amazon Athena, Amazon EMR und Amazon verwendet. QuickSight Sie können die Daten im Originalformat direkt aus Amazon S3 abfragen. Dazu müssen die Datendateien in einem Format vorliegen, das Redshift Spectrum unterstützt und sich in einem Amazon-S3-Bucket befinden, auf den Ihr Cluster zugreifen kann.

Der Amazon S3 S3-Bucket mit den Datendateien und der Amazon Redshift Redshift-Cluster müssen sich in derselben AWS Region befinden. Informationen zu den unterstützten AWS Regionen finden Sie unterAmazon-Redshift-Spectrum-Regionen.

Datenformate für Redshift Spectrum

Redshift Spectrum unterstützt die folgenden strukturierten und halbstrukturierten Datenformate.

Dateiformat Säulenförmig Unterstützt parallele Lesevorgänge Geteilte Einheit
Parquet Ja Ja Zeilengruppe
ORC Ja Ja Stripe
RCFile Ja Ja Zeilengruppe
TextFile Nein Ja Zeile
SequenceFile Nein Ja Zeile oder Block
RegexSerde Nein Ja Zeile
OpenCSV Nein Ja Zeile
AVRO Nein Ja Block
Ion Nein Nein N/A
JSON Nein Nein N/A

In der vorhergehenden Tabelle geben die Überschriften Folgendes an:

  • Columnar (Spaltenorientiert) – Gibt an, ob das Dateiformat Daten physisch in einer spaltenorientierten Struktur im Gegensatz zu einer zeilenorientierten Struktur speichert.

  • Supports Parallel reads (Unterstützt parallele Lesevorgänge) – Gibt an, ob das Dateiformat das Lesen einzelner Blöcke innerhalb der Datei unterstützt. Das Lesen einzelner Blöcke ermöglicht die verteilte Verarbeitung einer Datei über mehrere unabhängige Redshift-Spectrum-Anfragen, anstatt die vollständige Datei in einer einzigen Anforderung lesen zu müssen.

  • Split Unit (Geteilte Einheit) – Bei Dateiformaten, die parallel gelesen werden können, ist die geteilte Einheit der kleinste Datenblock, den eine einzelne Redshift-Spectrum-Anforderung verarbeiten kann.

    Anmerkung

    Die Zeitstempelwerte in Textdateien müssen das Format yyyy-MM-dd HH:mm:ss.SSSSSS haben, wie der folgende Zeitstempelwert zeigt: 2017-05-01 11:30:59.000000.

    Wir empfehlen die Verwendung eines nach Spalten organisierten Speicherdateiformats, wie etwa Apache Parquet. Mit einem solchen Format minimieren Sie die Datenübertragung aus Amazon S3, indem Sie nur die benötigten Spalten auswählen.

Komprimierungstypen für Redshift Spectrum

Um den Speicherplatz zu reduzieren, die Leistung zu verbessern und die Kosten zu minimieren, empfehlen wir dringend, Ihre Datendateien zu komprimieren. Redshift Spectrum erkennt Dateikomprimierungstypen anhand der Dateierweiterung.

Redshift Spectrum unterstützt die folgenden Komprimierungstypen und Erweiterungen.

Komprimierungsalgorithmus Dateierweiterung Unterstützt parallele Lesevorgänge
Gzip .gz Nein
Bzip2 .bz2 Ja
Snappy .snappy Nein

Sie können die Komprimierung auf verschiedenen Ebenen anwenden. Zumeist komprimieren Sie eine ganze Datei oder einzelne Blöcke innerhalb einer Datei. Das Komprimieren von Spaltenformaten auf Dateiebene bringt keine Leistungsvorteile.

Damit Redshift Spectrum eine Datei parallel lesen kann, muss Folgendes zutreffen:

  • Das Dateiformat unterstützt parallele Lesevorgänge.

  • Die Komprimierung auf Dateiebene (falls vorhanden) unterstützt parallele Lesevorgänge.

Es spielt keine Rolle, ob die einzelnen geteilten Einheiten innerhalb einer Datei mit einem Komprimierungsalgorithmus komprimiert werden, der parallel gelesen werden kann, da jede geteilte Einheit von einer einzigen Redshift-Spectrum-Anforderung verarbeitet wird. Ein Beispiel dafür sind Snappy-komprimierte Parquet-Dateien. Einzelne Zeilengruppen innerhalb der Parquet-Datei werden mit Snappy komprimiert, aber die oberste Struktur der Datei bleibt unkomprimiert. In diesem Fall kann die Datei parallel gelesen werden, da jede Redshift-Spectrum-Anforderung einzelne Zeilengruppen von Amazon S3 lesen und verarbeiten kann.

Verschlüsselung für Redshift Spectrum

Redshift Spectrum entschlüsselt in transparenter Weise Datendateien, die mit den folgenden Verschlüsselungsoptionen verschlüsselt wurden:

  • Serverseitige Verschlüsselung (SSE-S3) mit einem von Amazon S3 verwalteten AES-256-Verschlüsselungsschlüssel.

  • Serverseitige Verschlüsselung mit Schlüsseln, die von AWS Key Management Service (SSE-KMS) verwaltet werden.

Redshift Spectrum unterstützt die clientseitige Amazon-S3-Verschlüsselung nicht. Weitere Informationen zur serverseitigen Verschlüsselung finden Sie unter Schutz von Daten mittels serverseitiger Verschlüsselung im Amazon-Simple-Storage-Service-Benutzerhandbuch.

Amazon Redshift unterstützt die massiv parallele Verarbeitung (Massively Parallel Processing, MPP) für die schnelle Ausführung komplexer Abfragen für sehr große Datenmengen. Redshift Spectrum verwendet das gleiche Prinzip auch für die Abfrage externer Daten und nutzt nach Bedarf mehrere Redshift Spectrum-Instances zum Scanning von Dateien. Setzen Sie die Dateien in separate Ordner für jede Tabelle.

Sie können mithilfe der folgenden Verfahren Ihre Daten für die parallele Verarbeitung optimieren:

  • Wenn Ihr Dateiformat oder Ihre Komprimierung das parallele Lesen nicht unterstützt, teilen Sie große Dateien in viele kleinere Dateien auf. Wir empfehlen Dateigrößen zwischen 64 MB und 1 GB.

  • Sorgen Sie dafür, dass alle Dateien etwa die gleiche Größe haben. Wenn einige Dateien viel größer als andere sind, kann Redshift Spectrum den Workload nicht gleichmäßig verteilen.