Largando colunas da tabela

Vertica Analytics Platform Version 9.2.x Documentação

ALTER TABLE…DROP COLUMN cai a tabela especificada e a coluna de ROS recipientes que correspondem ao cair da coluna:

ALTER TABLE table DROP column 

Após a queda de conclusão da operação, dados de backup a partir da época atual em diante recupera sem a coluna. Os dados recuperados a partir de uma cópia de segurança que precede a época atual re-adicionar a coluna da tabela. Porque as operações de queda removem fisicamente o armazenamento de objectos e as definições de catálogos (histórico da tabela) da tabela, AT EPOCH (Histórico) as consultas não devolvem nada para a coluna largada.

A tabela alterada mantém a sua IDENTIFICAÇÃO do objecto.

Drop column operations can be fast because these catalog-level changes do not require data reorganization, so Vertica can quickly reclaim disk storage.

restrições

  • Não pode largar ou alterar uma coluna de chave primária ou uma coluna que participa na cláusula de particionamento da tabela.
  • Você não pode cair a primeira coluna de qualquer ordem de ordenação de projeção, ou colunas que participam de uma expressão de segmentação de projeção. todos os nós devem estar prontos.
  • Não pode largar uma coluna associada a uma política de acesso. Tentativas de fazê-lo produzem o seguinte erro:
    ERROR 6482: Failed to parse Access Policies for table "t1"

Usando CASCATA para Forçar uma Queda

Se a coluna da tabela de drop possui dependências, você deve qualificar o DROP COLUMN cláusula com o CASCADE opção. Por exemplo, a coluna alvo pode ser especificada numa ordem de ordenação de projeção. In this and other cases, DROP COLUMN…CASCADE handles the dependency by reorganizing catalog definitions or dropping a projection. Em todos os casos, CASCADE realiza a reorganização mínima necessária para retirar a coluna.

Use CASCADE para cancelar uma coluna com as seguintes dependências:

coluna Descartada dependência comportamento em CASCATA

Qualquer restrição

Vertica descarta a coluna quando uma restrição de CHAVE ESTRANGEIRA depende de uma restrição UNIQUE ou PRIMARY KEY em colunas referenciadas.

Especificado na projeção ordem de classificação

Vertica trunca projeção ordem de classificação, até e incluindo a projeção que é descartado sem impacto no armazenamento físico para outras colunas e, em seguida, cai a coluna especificada. Por exemplo,se as colunas de uma projeção estão em ordem de ordenação (A,b, c), a queda da coluna b faz com que a ordem de ordenação da projeção seja justa (a), omitindo a coluna (c).

especificado numa expressão de segmentação de projecção

A coluna a cair faz parte integrante da definição de projecção. Se possível, Vertica deixa cair a projeção, desde que fazê-lo não comprometa a segurança de K; caso contrário, a transação retrocede.

referenciado como valor padrão de outra coluna

ver a queda de uma coluna referenciada como padrão, abaixo.

Soltando uma Coluna Referenciada como Padrão

Você pode querer soltar uma coluna da tabela que é referenciada por outra coluna como seu valor padrão. Por exemplo, a seguinte tabela é definida com duas colunas, a e b, onde b fica com o seu valor padrão da coluna a:

=> CRIAR TABELA x (a int) não segmentado TODOS os NÓS;CREATE TABLE=> ALTER TABLE x ADICIONE a COLUNA b int PADRÃO;ALTER TABLE

neste caso, deixar a coluna a requer o seguinte procedimento:

  1. Remover o padrão de dependência através de ALTER COLUMN..DROP DEFAULT:
    => ALTER TABLE x ALTERAR a COLUNA b SOLTAR PADRÃO;
  2. Crie uma substituição superprojection para a tabela de destino, se uma ou ambas das seguintes condições for verdadeira:
  • A coluna de destino é a tabela da primeira ordem de classificação coluna. Se a tabela não tem ordem de ordenação explícita, a ordem de ordenação de tabela padrão especifica a primeira coluna de tabela como a primeira coluna de ordenação. Neste caso, a nova superprojeção deve especificar uma ordem de ordenação que exclui a coluna alvo.se a tabela estiver segmentada, a coluna-alvo é especificada na expressão de segmentação. Neste caso, a nova superprojeção deve especificar uma expressão de segmentação que exclui a coluna alvo.

dado o exemplo anterior, a tabela x tem uma ordem de ordenação padrão de (A,b). Uma vez que a coluna a é a coluna da primeira ordem da tabela, você deve criar uma superprojeção de substituição que é ordenada pela coluna b:

=> CREATE PROJECTION x_p1 as select * FROM x ORDER BY b UNSEGMENTED ALL NODES;

  • Run START_REFRESH:
    => SELECT START_REFRESH(); START_REFRESH---------------------------------------- Starting refresh background process.(1 row)
  • Run MAKE_AHM_NOW:
    => SELECT MAKE_AHM_NOW(); MAKE_AHM_NOW------------------------------- AHM set (New AHM Epoch: 1231)(1 row)
  • Drop the column:
    => ALTER TABLE x DROP COLUMN a CASCADE;
  • Vertica implementa CASCADE directiva da seguinte forma:

    • Gotas original superprojection para a tabela xx_super).
    • actualiza a superprojeção de substituição x_p1largando a colunaa.

    Exemplos

    O seguinte série de comandos com êxito cai um BYTEA coluna de tipo de dados:

    => CREATE TABLE t (x BYTEA(65000), y BYTEA, z BYTEA(1)); CREATE TABLE=> ALTER TABLE t DROP COLUMN y;ALTER TABLE=> SELECT y FROM t;ERROR 2624: Column "y" does not exist=> ALTER TABLE t DROP COLUMN x RESTRICT;ALTER TABLE=> SELECT x FROM t;ERROR 2624: Column "x" does not exist=> SELECT * FROM t; z---(0 rows)=> DROP TABLE t CASCADE;DROP TABLE

    a seguinte série de comandos tenta largar uma coluna flutuante(8) e falha porque não existem projecções suficientes para manter a K-segurança.

    => CREATE TABLE t (x, FLOAT(8),y, FLOAT(08));CREATE TABLE=> ALTER TABLE t DROP COLUMN y RESTRINGIR;ALTER TABLE=> SELECIONE y DE t;ERRO 2624: Coluna "y" não existe=> ALTER TABLE t DROP x CASCATA;REVERSÃO 2409: não é Possível descartar qualquer mais colunas em t=> DROP TABLE t CASCATA;



    Deixe uma resposta

    O seu endereço de email não será publicado.