Ich füge distkey/sortkey zu allen meinen Tabellen in redshift hinzu und möchte dies automatisieren. Ich mache folgendes:Wie abhängige Ansichten migriert werden, wenn die Tabelle tief kopiert wird
ALTER TABLE table RENAME TO tmp_table;
CREATE TABLE table
distkey(id)
sortkey(id)
AS
select * from tmp_table;
DROP TABLE tmp_table;
Das funktioniert gut, außer die Ansichten werden nicht migriert. Wenn Sie ALTER TABLE verwenden, zeigen die vorhandenen Ansichten auf tmp_table. Im Idealfall möchte ich die Sichten auf den vorherigen Weg wiederherstellen, möglicherweise in derselben Abfragetransaktion oder als Teil eines Skripts.
Beachten Sie, erhalten Ansicht Befehle erstellen, die CREATE TABLE .. AS tut behalte die NOT NULL-Einstellungen nicht bei. Alle Spalten in der neuen Tabelle werden als NULL erstellt. Auch meine Vermutung ist, dass Spaltencodierung/Kompressionseinstellung nicht beibehalten wird. – jhncz