Aktualisieren von Daten und Einfügen neuer Daten - 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.

Aktualisieren von Daten und Einfügen neuer Daten

Mit dem Befehl MERGE können Sie einer vorhandenen Tabelle effizient neue Daten hinzufügen. Führen Sie einen Zusammenführungsvorgang durch, indem Sie eine Staging-Tabelle erstellen und dann eine der in diesem Abschnitt beschriebenen Methoden verwenden, um die Zieltabelle aus der Staging-Tabelle zu aktualisieren. Weitere Informationen zum MERGE-Befehl finden Sie unter MERGE.

In Beispiele für Zusammenführungen wird ein Beispieldatensatz für Amazon Redshift verwendet, der sogenannte TICKIT-Datensatz. Als Voraussetzung können Sie die TICKIT-Tabellen und -Daten einrichten, indem Sie den Anweisungen unter Erste Schritte mit gängigen Datenbankaufgaben folgen. Weitere Informationen zum Beispieldatensatz finden Sie unter Beispieldatenbank.

Zusammenführungsmethode 1: Ersetzung vorhandener Zeilen

Wenn Sie alle Spalten in der Zieltabelle überschreiben, besteht die schnellste Methode der Zusammenführung darin, die vorhandenen Zeilen zu ersetzen. Bei dieser Methode wird die Zieltabelle nur einmal gescannt. Dabei wird ein innerer Join verwendet, um Zeilen zu löschen, die aktualisiert werden. Nach dem Löschen werden die Zeilen in einer einzigen Einfügungsoperation basierend auf der Staging-Tabelle durch neue Zeilen ersetzt.

Verwenden Sie diese Methode, wenn alle folgenden Bedingungen zutreffen:

  • Zieltabelle und Staging-Tabelle enthalten dieselben Spalten.

  • Sie möchten alle Daten in den Spalten der Zieltabelle durch alle Spalten der Staging-Tabelle ersetzen.

  • Sie verwenden alle Zeilen in der Staging-Tabelle bei der Zusammenführung.

Wenn eines dieser Kriterien nicht zutrifft, verwenden Sie die Zusammenführungsmethode 2: Angabe einer Spaltenliste ohne den Befehl MERGE, wie im folgenden Abschnitt beschrieben.

Wenn Sie nicht alle Zeilen in der Staging-Tabelle verwenden, filtern Sie die Anweisungen DELETE und INSERT mittels einer WHERE-Klausel, um Zeilen auszulassen, die nicht geändert werden. Wenn jedoch die meisten Zeilen in der Staging-Tabelle nicht an der Zusammenführung beteiligt sind, wird die Ausführung einer UPDATE- und INSERT-Operation in getrennten Schritte empfohlen wie später in diesem Abschnitt beschrieben.

Zusammenführungsmethode 2: Angabe einer Spaltenliste ohne den Befehl MERGE

Verwenden Sie diese Methode, um spezifische Spalten in der Zieltabelle zu aktualisieren, statt ganze Zeilen zu überschreiben. Diese Methode dauert länger als die vorherige Methode, da sie einen zusätzlichen Update-Schritt erfordert und den Befehl MERGE nicht nutzt. Verwenden Sie diese Methode, wenn eine der folgenden Bedingungen zutrifft:

  • Es müssen nicht alle Spalten in der Zieltabelle aktualisiert werden.

  • Die meisten Zeilen in der Staging-Tabelle werden nicht für Aktualisierung verwendet.