Ausführen einer Zusammenführungsoperation durch Ersetzung vorhandener Zeilen - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Ausführen einer Zusammenführungsoperation durch Ersetzung vorhandener Zeilen

Wenn Sie die im Verfahren beschriebene Zusammenführungsoperation ausführen, führen Sie alle Schritte abgesehen vom Erstellen und Entfernen der temporären Staging-Tabelle in einer einzigen Transaktion aus. Die Transaktion wird rückgängig gemacht, falls ein Schritt fehlschlägt. Die Verwendung einer einzelnen Transaktion reduziert auch die Anzahl der Commit-Vorgänge, was Zeit und Ressourcen spart.

So führen Sie eine Zusammenführungsoperation durch Ersetzung vorhandener Zeilen aus
  1. Erstellen Sie eine Staging-Tabelle und füllen Sie sie mit Daten aus, die zusammengeführt werden sollen, wie im folgenden Pseudocode gezeigt.

    CREATE temp table stage (like target); INSERT INTO stage SELECT * FROM source WHERE source.filter = 'filter_expression';
  2. Verwenden Sie MERGE, um einen Inner Join mit der Staging-Tabelle durchzuführen und die Zeilen aus der Zieltabelle zu aktualisieren, die der Staging-Tabelle entsprechen. Fügen Sie dann alle verbleibenden Zeilen in die Zieltabelle ein, die nicht mit der Staging-Tabelle übereinstimmen.

    Wir empfehlen, die Aktualisierungs- und Einfügevorgänge in einem einzigen MERGE-Befehl auszuführen.

    MERGE INTO target USING stage [optional alias] on (target.primary_key = stage.primary_key) WHEN MATCHED THEN UPDATE SET col_name1 = stage.col_name1 , col_name2= stage.col_name2, col_name3 = {expr} WHEN NOT MATCHED THEN INSERT (col_name1 , col_name2, col_name3) VALUES (stage.col_name1, stage.col_name2, {expr});
  3. Entfernen Sie die Staging-Tabelle.

    DROP TABLE stage;