zamiast upuszczać stół i odtwarzać go jako diststyle
wszystko, co chciałbym zmienić w tabeli diststyle
, czy to możliwe?zmień diststyle w istniejącej tabeli w redshift. Czy to możliwe?
Dzięki!
zamiast upuszczać stół i odtwarzać go jako diststyle
wszystko, co chciałbym zmienić w tabeli diststyle
, czy to możliwe?zmień diststyle w istniejącej tabeli w redshift. Czy to możliwe?
Dzięki!
Wygląda na niemożliwy. Łatwiejsze odtworzenie tabeli wypełnionej ze starego.
Najprostszym sposobem znalazłem jest użycie następujących:
BEGIN;
CREATE TABLE mytable_tmp
DISTSTYLE ALL -- You can also use DISTKEY(some_column) or DISTSTYLE EVEN
AS SELECT * FROM mytable;
DROP TABLE mytable;
ALTER TABLE mytable_tmp RENAME TO mytable;
COMMIT;
Pozwala to na łatwe modyfikowanie distkey lub diststyle stołu, nie wiedząc nawet, co kolumny są w tej tabeli. Musisz tylko znać nazwę stołu.
Z dokumentów "Tabele CREATE TABLE AS (CTAS) nie dziedziczą kodowania kompresji, więzów, kolumn tożsamości, domyślnych wartości kolumn ani klucza podstawowego z tabeli, z której zostały utworzone." Powyższe zapytanie nie skopiuje technik kompresji starej tabeli. Sprawdź http://docs.aws.amazon.com/redshift/latest/dg/r_CTAS_usage_notes.html – imVJ
Dzięki, pomyślałem, że czegoś mi brakowało. Łatwiej byłoby uruchomić 'alter table XXX alter diststyle to all;', ale takie jest moje zdanie. – dudu1982
To jest miłe, jeśli nie masz żadnych innych atrybutów dla tabeli lub kompresji. wszystkie pola są skompresowane, więc nie ma wyjścia. – dudu1982