CREATE TABLE AS - 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.

CREATE TABLE AS

Erstellt eine neue Tabelle auf der Basis einer Abfrage. Der Besitzer dieser Tabelle ist der Benutzer, der den Befehl ausgibt.

Die neue Tabelle wird mit Daten geladen, die durch die Abfrage im Befehl definiert werden. Die Tabellenspalten haben Namen und Datentypen, die mit den Ausgabespalten der Abfrage verknüpft sind. Der Befehl CREATE TABLE AS (CTAS) erstellt eine neue Tabelle und evaluiert die Abfrage, um die neue Tabelle zu laden.

Syntax

CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ ( column_name [, ... ] ) ] [ BACKUP { YES | NO } ] [ table_attributes ] AS query where table_attributes are: [ DISTSTYLE { AUTO | EVEN | ALL | KEY } ] [ DISTKEY( distkey_identifier ) ] [ [ COMPOUND | INTERLEAVED ] SORTKEY( column_name [, ...] ) ]

Parameter

LOCAL

Obwohl dieses optionale Schlüsselwort in der Anweisung akzeptiert wird, hat es in Amazon Redshift keine Auswirkungen.

TEMPORARY | TEMP

Erstellt eine temporäre Tabelle. Eine temporäre Tabelle wird am Ende der Sitzung, in der sie erstellt wurde, automatisch entfernt.

table_name

Der Name der Tabelle, die erstellt werden soll.

Wichtig

Wenn Sie einen Tabellennamen angeben, der mit „#“ beginnt, wird die Tabelle als temporäre Tabelle erstellt. Beispiel:

create table #newtable (id) as select * from oldtable;

Die maximale Länge des Tabellennamens beträgt 127 Bytes; längere Namen werden bei 127 Bytes abgeschnitten. Amazon Redshift erzwingt ein Kontingent für die Anzahl der Tabellen pro Cluster nach Knotentyp. Der Tabellenname kann mit dem Datenbank- und Schemanamen qualifiziert werden, wie die folgende Tabelle zeigt.

create table tickit.public.test (c1) as select * from oldtable;

In diesem Beispiel ist tickit der Datenbankname und public ist der Schemaname. Wenn die Datenbank oder das Schema nicht vorhanden sind, gibt die Anweisung einen Fehler zurück.

Wenn ein Schemaname vorhanden ist, wird die neue Tabelle in diesem Schema erstellt (vorausgesetzt, der Ersteller kann auf das Schema zugreifen). Der Tabellenname muss für dieses Schema eindeutig sein. Wenn kein Schema angegeben ist, wird die Tabelle anhand des aktuellen Datenbankschemas erstellt. Wenn Sie eine temporäre Tabelle erstellen, können Sie keinen Schemanamen angeben, da sich temporäre Tabellen in einem speziellen Schema befinden.

Mehrere temporäre Tabellen mit demselben Namen können in derselben Datenbank zur gleichen Zeit vorhanden sein, wenn sie in getrennten Sitzungen erstellt wurden. Diese Tabellen werden unterschiedlichen Schemata zugewiesen.

column_name

Der Name einer Spalte in der neuen Tabelle. Wenn keine Spaltennamen angegeben werden, werden die Spaltennamen den Ausgabespaltennamen der Abfrage entnommen. Für Ausdrücke werden Standardspaltennamen verwendet. Weitere Informationen zu gültigen Namen finden Sie unter Namen und Kennungen.

BACKUP { YES | NO }

Eine Klausel, die angibt, ob die Tabelle in automatisierten und manuellen Cluster-Snapshots enthalten sein sollte.

Geben Sie für Tabellen wie Staging-Tabellen, die keine kritischen Daten enthalten, BACKUP NO an, um beim Erstellen und Wiederherstellen von Snapshots Verarbeitungszeit zu sparen und den Speicherplatz auf Amazon Simple Storage Service zu reduzieren. Die Einstellung BACKUP NO wirkt sich nicht auf die automatische Replikation von Daten zu anderen Knoten innerhalb des Clusters aus. Daher werden Tabellen mit BACKUP NO bei einem Knotenausfall wiederhergestellt. Der Standardwert ist BACKUP YES.

DISTSTYLE { AUTO | EVEN | KEY | ALL }

Schlüsselwort, das den Datenverteilungsstil für die gesamte Tabelle definiert. Amazon Redshift verteilt die Zeilen einer Tabelle an die Datenverarbeitungsknoten gemäß dem für die Tabelle angegebenen Verteilungstyp. Der Standardwert ist DISTSTYLE AUTO.

Der von Ihnen für Tabellen ausgewählte Verteilungsstil wirkt sich auf die allgemeine Leistung Ihrer Datenbank aus. Weitere Informationen finden Sie unter Datenverteilung zur Abfrageoptimierung.

  • AUTO: Amazon Redshift weist auf der Grundlage der Tabellendaten den optimalen Verteilungsstil aus. Um den Verteilungsstil einer Tabelle anzuzeigen, führen Sie eine Abfrage für die Systemkatalogtabelle PG_CLASS aus. Weitere Informationen finden Sie unter Anzeigen von Verteilungsstilen.

  • EVEN: Die Daten in der Tabelle werden gleichmäßig in einer Round-Robin-Verteilung auf die Knoten in einem Cluster verteilt. Zeilen IDs werden verwendet, um die Verteilung zu bestimmen, und ungefähr die gleiche Anzahl von Zeilen wird auf jeden Knoten verteilt. Dies ist die Standardverteilungsmethode.

  • KEY: Die Daten werden anhand der Werte in der DISTKEY-Spalte verteilt. Wenn Sie verknüpfte Spalten von verknüpften Tabellen als Verteilungsschlüssel festlegen, werden die verknüpften Zeilen aus beiden Tabellen auf den Datenverarbeitungsknoten zusammen platziert. Wenn Daten zusammen platziert werden, kann der Optimierer Verknüpfungen effizienter ausführen. Wenn Sie einen DISTSTYLE KEY angeben, müssen Sie eine DISTKEY-Spalte benennen.

  • ALL: Eine Kopie der gesamten Tabelle wird zu jedem Knoten verteilt. Dieser Verteilungsstil stellt sicher, dass alle Zeilen, die für eine Verknüpfung erforderlich sind, auf jedem Knoten vorhanden sind. Die Speicheranforderungen werden jedoch multipliziert und die Lade- und Wartungszeiten für die Tabelle werden verlängert. Der Verteilungsstil ALL kann die Ausführungszeit verbessern, wenn er in Verbindung mit bestimmten Dimensionstabellen verwendet wird, für die der Verteilungsstil KEY nicht geeignet ist. Die Leistungsverbesserungen müssen jedoch gegen die Wartungskosten abgewogen werden.

DISTKEY (column)

Gibt einen Spaltennamen oder eine Positionsnummer für den Verteilungsschlüssel an. Verwenden Sie den Namen, der in der Liste der optionalen Spalten für die Tabelle oder in der Auswahlliste der Abfrage angegeben ist. Alternativ können Sie eine Positionsnummer verwenden, wobei die erste ausgewählte Spalte 1 ist, die zweite ausgewählte Spalte 2 ist usw. In eine Tabelle kann nur eine Spalte der Verteilungsschlüssel sein:

  • Wenn Sie eine Spalte als DISTKEY-Spalte deklarieren, muss DISTSTYLE auf KEY festgelegt werden oder darf überhaupt nicht festgelegt werden.

  • Wenn Sie keine DISTKEY-Spalte deklarieren, können Sie DISTSTYLE auf EVEN festlegen.

  • Wenn Sie weder DISTKEY noch DISTSTYLE angeben, legt CTAS den Verteilungsstil für die neue Tabelle anhand des Abfrageplans für die SELECT-Klausel fest. Weitere Informationen finden Sie unter Vererbung von Spalten- und Tabellenattributen.

Sie können dieselbe Spalte als Verteilungs- und Sortierschlüssel definieren. Dieser Ansatz tendiert dazu, Verknüpfungen zu beschleunigen, wenn die betreffende Spalte eine Verknüpfungsspalte in der Abfrage ist.

[ COMPOUND | INTERLEAVED ] SORTKEY (column_name [,... ] )

Gibt einen oder mehrere Sortierschlüssel für die Tabelle an. Wenn Daten in die Tabelle geladen werden, werden die Daten anhand der Spalten sortiert, die als Sortierschlüssel bezeichnet sind.

Sie können optional den COMPOUND- oder INTERLEAVED-Sortierstil angeben. Der Standard ist COMPOUND. Weitere Informationen finden Sie unter Schlüssel sortieren.

Sie können pro Tabelle maximal 400 COMPOUND SORTKEY-Spalten oder 8 INTERLEAVED SORTKEY-Spalten definieren.

Wenn Sie SORTKEY nicht angeben, legt CTAS die Sortierschlüssel für die neue Tabelle anhand des Abfrageplans für die SELECT-Klausel fest. Weitere Informationen finden Sie unter Vererbung von Spalten- und Tabellenattributen.

COMPOUND

Gibt an, dass die Daten mittels eines zusammengesetzten Schlüssels sortiert werden, der aus allen aufgelisteten Spalten in der Reihenfolge ihrer Auflistung besteht. Ein zusammengesetzter Sortierschlüssel ist am nützlichsten, wenn eine Abfrage Zeilen in der Reihenfolge der Sortierspalten scannt. Die Leistungsvorteile einer Sortierung mit einem zusammengesetzten Schlüssel nehmen ab, wenn Abfragen von sekundären Sortierspalten abhängig sind. Sie können maximal 400 COMPOUND SORTKEY-Spalten pro Tabelle definieren.

INTERLEAVED

Gibt an, dass die Daten mittels eines überlappenden Sortierschlüssels sortiert werden. Für einen überlappenden Sortierschlüssel können maximal acht Spalten angegeben werden.

Eine überlappende Sortierung gewichtet jede Spalte bzw. jeden Subsatz von Spalten im Sortierschlüssel gleich, so dass Abfragen nicht von der Reihenfolge der Spalten im Sortierschlüssel abhängig sind. Wenn eine Abfrage eine oder mehrere sekundäre Sortierspalten verwendet, wird die Abfrageleistung durch die überlappende Sortierung deutlich verbessert. Die überlappende Sortierung führt zu geringfügigen Overhead-Kosten für das Laden von Daten und das Bereinigen von Operationen.

AS query

Alle Abfragen (SELECT-Anweisungen), die von Amazon Redshift unterstützt werden.