ALTER MATERIALIZED VIEW
Altera os atributos de uma visão materializada.
Sintaxe
ALTER MATERIALIZED VIEW mv_name { AUTO REFRESH { YES | NO } | ALTER DISTKEY column_name | ALTER DISTSTYLE ALL | ALTER DISTSTYLE EVEN | ALTER DISTSTYLE KEY DISTKEY column_name | ALTER DISTSTYLE AUTO | ALTER [COMPOUND] SORTKEY ( column_name [,...] ) | ALTER SORTKEY AUTO | ALTER SORTKEY NONE | ROW LEVEL SECURITY { ON | OFF } [ CONJUNCTION TYPE { AND | OR } ] [FOR DATASHARES] };
Parâmetros
- mv_name
-
O nome da visualização materializada a ser alterada.
- AUTO REFRESH { YES | NO }
-
Uma cláusula que ativa ou desativa a atualização automática de uma visão materializada. Para obter informações sobre atualização automática ou visões materializadas, consulte Atualizar uma visão materializada.
- ALTER DISTSTYLE ALL
-
Uma cláusula que altera o estilo de distribuição existente de uma tabela para
ALL
. Considere o seguinte:-
Um ALTER DISTSTYLE, ALTER SORTKEY e VACUUM não podem ser executados simultaneamente na mesma relação.
-
Se VACUUM estiver sendo executado no momento, a execução ALTER DISTSTYLE ALL retornará um erro.
-
Se ALTER DISTSTYLE ALL estiver em execução, um vacuum em segundo plano não será iniciado em uma relação.
-
-
O comando ALTER DISTSTYLE ALL não é compatível para relações com chaves de classificação intercaladas e tabelas temporárias.
-
Se o estilo de distribuição tiver sido definido anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela.
Para obter mais informações sobre DISTSTYLE ALL, acesse CREATE MATERIALIZED VIEW.
-
- ALTER DISTSTYLE EVEN
-
Uma cláusula que altera o estilo de distribuição existente de uma tabela para
EVEN
. Considere o seguinte:-
Um ALTER DISTSYTLE, ALTER SORTKEY e VACUUM não podem ser executados simultaneamente na mesma relação.
-
Se VACUUM estiver sendo executado no momento, a execução ALTER DISTSTYLE EVEN retornará um erro.
-
Se ALTER DISTSTYLE EVEN estiver em execução, um vacuum em segundo plano não será iniciado na relação.
-
-
O comando ALTER DISTSTYLE EVEN não é compatível para relações com chaves de classificação intercaladas e tabelas temporárias.
-
Se o estilo de distribuição tiver sido definido anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela.
Para obter mais informações sobre DISTSTYLE EVEN, acesse CREATE MATERIALIZED VIEW.
-
- ALTER DISTKEY column_name ou ALTER DISTSTYLE KEY DISTKEY column_name
-
Uma cláusula que altera a coluna usada como chave de distribuição de uma relação. Considere o seguinte:
-
VACUUM e ALTER DISTKEY não podem ser executados simultaneamente na mesma relação.
-
Se VACUUM já estiver sendo executado, então, ALTER DISTKEY retornará um erro.
-
Se ALTER DISTKEY estiver em execução, o vacuum em segundo plano não será iniciado em uma relação.
-
Se ALTER DISTKEY estiver sendo executado, a limpeza em primeiro plano retornará um erro.
-
-
Você só pode executar um comando ALTER DISTKEY em uma relação por vez.
-
O comando ALTER DISTKEY não é compatível para relações com chaves de classificação intercaladas.
-
Se o estilo de distribuição tiver sido definido anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela.
Ao especificar DISTSTYLE KEY, os dados são distribuídos pelos valores na coluna DISTKEY. Para obter mais informações sobre DISTSTYLE, consulte CREATE MATERIALIZED VIEW.
-
- ALTER DISTSTYLE AUTO
-
Uma cláusula que altera o estilo de distribuição existente de uma relação para AUTO.
Quando você altera um estilo de distribuição para AUTO, o estilo de distribuição da relação é definido como o seguinte:
-
Uma pequena relação com DISTSTYLE ALL é convertida em AUTO(ALL).
-
Uma pequena relação com DISTSTYLE EVEN é convertida em AUTO(ALL).
-
Uma pequena relação com DISTSTYLE KEY é convertida em AUTO(ALL).
-
Uma grande relação com DISTSTYLE ALL é convertida em AUTO(EVEN).
-
Uma grande relação com DISTSTYLE EVEN é convertida em AUTO(EVEN).
-
Uma grande relação com DISTSTYLE KEY é convertida em AUTO(KEY) e a DISTKEY é preservada. Nesse caso, o Amazon Redshift não faz alterações na relação.
Se o Amazon Redshift determinar que um novo estilo de distribuição ou chave melhorará a performance das consultas, o Amazon Redshift poderá alterar o estilo de distribuição ou a chave da relação no futuro. Por exemplo, o Amazon Redshift pode converter uma relação com um DISTSTYLE de AUTO(KEY) em AUTO(EVEN) ou vice-versa. Para obter mais informações sobre o comportamento quando as chaves de distribuição são alteradas, incluindo redistribuição de dados e bloqueios, acesse Recomendações do Amazon Redshift Advisor.
Para mais informações sobre DISTSTYLE AUTO, acesse CREATE MATERIALIZED VIEW.
Para visualizar o estilo de distribuição de uma relação, consulte a visualização de catálogo SVV_TABLE_INFO do sistema. Para obter mais informações, acesse SVV_TABLE_INFO. Para visualizar as recomendações do Amazon Redshift Advisor para relações, consulte a visualização de catálogo SVV_ALTER_TABLE_RECOMMENDATIONS do sistema. Para obter mais informações, acesse SVV_ALTER_TABLE_RECOMMENDATIONS. Para exibir as ações executadas pelo Amazon Redshift, consulte a visualização do catálogo do sistema SVL_AUTO_WORKER_ACTION. Para obter mais informações, acesse SVL_AUTO_WORKER_ACTION.
-
- ALTER [COMPOUND] SORTKEY ( column_name [,...] )
-
Uma cláusula que altera ou adiciona a chave de classificação usada para uma relação. ALTER SORTKEY não é compatível com tabelas temporárias.
Quando você altera uma chave de classificação, a codificação de compactação de colunas na chave de classificação nova ou original pode ser alterada. Se nenhuma codificação for definida explicitamente para a relação, o Amazon Redshift atribuirá automaticamente codificações de compactação da seguinte maneira:
-
Colunas que são definidas como chaves de classificação são designadas a compactação RAW.
-
Colunas que são definidas como tipos de dados BOOLEAN, REAL ou DOUBLE PRECISION recebem a compactação RAW.
-
As colunas definidas como SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP ou TIMESTAMPTZ recebem a compactação AZ64.
-
As colunas definidas como CHAR ou VARCHAR recebem a compactação LZO.
Considere o seguinte:
-
Você pode definir no máximo 400 colunas para uma chave de classificação por relação.
-
É possível alterar uma chave de classificação intercalada para uma chave de classificação composta ou nenhuma chave de classificação. Porém, não é possível alterar uma chave de classificação composta para uma chave de classificação intercalada.
-
Se a chave de classificação tiver sido definida anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela.
-
O Amazon Redshift recomenda o uso de codificação RAW (sem compactação) para colunas definidas como chaves de classificação. Quando você altera uma coluna para escolhê-la como uma chave de classificação, a compactação da coluna é alterada para compactação RAW (sem compactação). Isso pode aumentar a quantidade de armazenamento necessária para a relação. Quanto o tamanho da relação aumenta depende da definição específica da relação e do conteúdo da relação. Para obter mais informações sobre compactação, acesse Codificações de compactação.
Quando os dados são carregados em uma relação, eles são carregados na ordem da chave de classificação. Quando você altera a chave de classificação, o Amazon Redshift reorganiza os dados. Para obter mais informações sobre SORTKEY, consulte CREATE MATERIALIZED VIEW.
-
- ALTER SORTKEY AUTO
-
Uma cláusula que altera ou adiciona a chave de classificação da relação de destino para AUTO. ALTER SORTKEY AUTO não é compatível com tabelas temporárias.
Quando você altera uma chave de classificação para AUTO, o Amazon Redshift preserva a chave de classificação existente da relação.
Se o Amazon Redshift determinar que uma nova chave de classificação melhorará a performance das consultas, o Amazon Redshift poderá alterar a chave de classificação da sua relação no futuro.
Para obter mais informações sobre SORTKEY AUTO, consulte CREATE MATERIALIZED VIEW.
Para visualizar a chave de classificação de uma relação, consulte a visualização de catálogo SVV_TABLE_INFO do sistema. Para obter mais informações, acesse SVV_TABLE_INFO. Para visualizar as recomendações do Amazon Redshift Advisor para relações, consulte a visualização de catálogo SVV_ALTER_TABLE_RECOMMENDATIONS do sistema. Para obter mais informações, acesse SVV_ALTER_TABLE_RECOMMENDATIONS. Para exibir as ações executadas pelo Amazon Redshift, consulte a visualização do catálogo do sistema SVL_AUTO_WORKER_ACTION. Para obter mais informações, acesse SVL_AUTO_WORKER_ACTION.
- ALTER SORTKEY NONE
-
Uma cláusula que remove a chave de classificação da relação de destino.
Se a chave de classificação tiver sido definida anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela.
- ROW LEVEL SECURITY { ON | OFF } [ CONJUNCTION TYPE { AND | OR } ] [ FOR DATASHARES ]
-
Uma cláusula que ativa ou desativa a segurança no nível da linha para uma relação.
Quando a segurança no nível da linha é ativada para uma relação, você só pode ler as linhas às quais a política de segurança no nível da linha permite acesso. Quando não há política que conceda acesso à relação, você não consegue ver nenhuma linha da tabela. Somente superusuários e usuários ou perfis que tenham o perfil
sys:secadmin
podem definir a cláusula ROW LEVEL SECURITY. Para obter mais informações, consulte Segurança por linha.-
[ CONJUNCTION TYPE { AND | OR } ]
Uma cláusula que permite a você escolher o tipo de conjunção da política de segurança no nível da linha para uma relação. Quando várias políticas de segurança no nível da linha são anexadas a uma relação, você pode combinar as políticas com a cláusula AND ou OR. Por padrão, o Amazon Redshift combina políticas RLS com a cláusula AND. Superusuários, usuários ou funções que tenham a função
sys:secadmin
podem usar essa cláusula para definir o tipo de conjunção da política de segurança no nível da linha para uma relação. Para obter mais informações, consulte Combinar várias políticas por usuário. -
PARA UNIDADES DE COMPARTILHAMENTO DE DADOS
Uma cláusula que determina se uma relação protegida por RLS pode ser acessada por meio das unidades de compartilhamento de dados. Por padrão, uma relação protegida por RLS não pode ser acessada por meio de uma unidade de compartilhamento de dados. Um comando ALTER MATERIALIZED VIEW ROW LEVEL SECURITY executado com essa cláusula só afeta a propriedade de acessibilidade da unidade de compartilhamento de dados da relação. A propriedade ROW LEVEL SECURITY não foi alterada.
Se você tornar uma relação protegida por RLS acessível por meio de unidades de compartilhamentos de dados, a relação não terá segurança no nível da linha no banco de dados compartilhado no lado do consumidor. A relação mantém a propriedade RLS do lado do produtor.
-
Exemplos
O exemplo a seguir habilita a visualização materializada tickets_mv
a ser atualizada automaticamente.
ALTER MATERIALIZED VIEW tickets_mv AUTO REFRESH YES