Schritt 1: Erstellen einer externen Tabelle mit verschachtelten Daten - Amazon Redshift

Schritt 1: Erstellen einer externen Tabelle mit verschachtelten Daten

Um die externe Tabelle für dieses Tutorial zu erstellen, führen Sie den folgenden Befehl aus.

CREATE EXTERNAL TABLE spectrum.customers ( id int, name struct<given:varchar(20), family:varchar(20)>, phones array<varchar(20)>, orders array<struct<shipdate:timestamp, price:double precision>> ) STORED AS PARQUET LOCATION 's3://awssampledbuswest2/nested_example/customers/';

Im voranstehenden Beispiel verwendet die externe Tabelle spectrum.customers die Datentypen struct und array, um Spalten mit verschachtelten Daten zu definieren. Amazon Redshift Spectrum unterstützt das Abfragen verschachtelter Daten in den Dateiformaten ORC, JSON und Ion. Der Parameter LOCATION muss auf den Amazon S3-Ordner verweisen, der die verschachtelten Daten oder Dateien enthält.

Anmerkung

Amazon Redshift unterstützt keine komplexen Datentypen in Amazon-Redshift-Datenbanktabellen. Sie können komplexe Datentypen nur bei externen Redshift Spectrum-Tabellen verwenden.

Sie können die Typen array und struct auf jeder beliebigen Ebene verschachteln. So können Sie z. B. eine Spalte mit dem Namen toparray definieren; siehe folgendes Beispiel.

toparray array<struct<nestedarray: array<struct<morenestedarray: array<string>>>>>

Außerdem können Sie wie für Spalte struct im folgenden Beispiel veranschaulicht auch x-Typen verschachteln.

x struct<a: string, b: struct<c: integer, d: struct<e: string> > >