Perguntas frequentes sobre operações DDL em tabelas, partições e colunas no MaxCompute.
Categoria | Perguntas frequentes |
Operações de tabela | |
Operações de partição | |
Operações de coluna | |
Operações de ciclo de vida | How is old data in a partitioned table cleaned up when a 3-day lifecycle is set? |
Suporte a tabelas virtuais
O MaxCompute não oferece suporte a tabelas virtuais. É possível criar uma tabela DUAL manualmente.
Suporte a índices
Não. As tabelas do MaxCompute não possuem índices. No entanto, o recurso Hash Clustering funciona de maneira semelhante a um índice de cluster em bancos de dados. Para mais informações, consulte Table operations.
Modificação do atributo Hash Clustering
Para adicionar o atributo Hash Clustering a uma tabela, execute o seguinte comando:
alter table table_name [clustered by (col_name [, col_name, ...]) [sorted by (col_name [asc | desc] [, col_name [asc | desc] ...])] into number_of_buckets buckets];.Para remover o atributo Hash Clustering de uma tabela, execute o seguinte comando:
alter table table_name not clustered;.
Conversão de tabelas não particionadas para particionadas
Não é possível converter uma tabela não particionada em uma tabela particionada nem adicionar colunas de chave de partição a uma tabela existente. Crie uma nova tabela particionada. Para mais informações, consulte Table operations.
Restauração de uma tabela excluída
O MaxCompute oferece backup e recuperação com um período de retenção gratuito padrão de 24 horas, que pode ser personalizado. Caso você exclua uma tabela acidentalmente, restaure os dados dentro desse período. Para mais informações sobre backup e recuperação, consulte backup and recovery.
Consulta de tabelas por proprietário
Utilize a visualização de metadados TABLES e filtre pelo campo owner_name para encontrar tabelas criadas por um usuário específico. Para mais informações sobre TABLES, consulte TABLES.
Verificação da existência de uma tabela
Use a função TABLE_EXISTS para verificar se uma tabela específica existe. Para mais informações, consulte TABLE_EXISTS.
Obtenção de todos os nomes de tabelas em um projeto
Execute o comando show tables; na MaxCompute client ou utilize o service de metadados do MaxCompute. Para mais informações, consulte Table operations ou Information Schema.
Localização de todas as tabelas particionadas em um projeto
Execute o comando abaixo na MaxCompute client para listar todas as tabelas particionadas do seu projeto.
select table_name from information_schema.columns where is_partition_key = true group by table_name;
Verificação do último horário de acesso de uma tabela
No DataWorks, acesse a página data map, pesquise sua tabela e abra a página de detalhes. No painel Technical Information, localize os seguintes campos: Technical type, Last DDL change time, Last data modification time, Last access time e Compute engine information.
Verificação do volume de dados de uma tabela
O volume de dados de uma tabela refere-se à contagem de linhas e ao espaço físico ocupado:
Para verificar o espaço físico de toda a tabela, execute o comando
desc. Para obter o número de linhas, execute a instrução SQLselect count() as cnt from table_name;.
Para verificar o espaço físico de uma partição específica, execute o comando
desccom uma cláusulaWHERE. Para contar as linhas da partição, execute a instrução SQLselect count() as cnt from table_name where ...;.
Verificação da contagem de linhas de uma tabela
Execute o comando select count(*) from table_name; na MaxCompute client para verificar o número de linhas em uma tabela particionada ou não particionada.
Tabela não visível no DataWorks
Se você criar uma tabela usando uma instrução SQL em vez da creating it in the DataWorks UI, a tabela poderá levar de duas a três horas para aparecer.
Partições e colunas de chave de partição
As tabelas no MaxCompute podem ser particionadas. Uma tabela particionada possui colunas de chave de partição, utilizadas para criar as partições.
Por exemplo, em uma partição especificada como ds=20150101, ds é a coluna de chave de partição e ds=20150101 representa a partição.
Número ideal de partições
Uma tabela do MaxCompute pode ter no máximo 60.000 partições, com capacidade ilimitada por partição. Contudo, um excesso de partições pode dificultar a análise e a geração de estatísticas dos dados.
O MaxCompute impõe um limite máximo de instâncias por job. A quantidade de instâncias utilizadas depende do volume de dados de entrada e do número de partições. Portanto, escolha uma estratégia de particionamento adequada às necessidades do seu negócio.
Adição de partições a uma tabela sem chaves de partição
O MaxCompute não permite adicionar ou modificar campos de chave de partição em uma tabela existente. Crie uma nova tabela particionada e utilize uma instrução SQL de particionamento dinâmico para importar os dados da tabela source para a nova tabela. Para mais informações, consulte Insert or overwrite data into dynamic partitions (DYNAMIC PARTITION).
Verificação da existência de uma partição
Utilize a função PARTITION_EXISTS para verificar se uma partição específica existe. Para mais informações, consulte PARTITION_EXISTS.
Verificação do número de partições
Use a visualização PARTITIONS no Information Schema para obter os nomes das partições e, em seguida, conte-as.
Adição ou exclusão de colunas
O MaxCompute permite adicionar e excluir colunas. A adição de colunas de tipos de dados complexos e a exclusão de colunas estão disponíveis em preview por convite. Para solicitar um teste, consulte Apply for a trial of new features.
Adição de uma coluna
Execute o comando abaixo para adicionar colunas. Se a tabela já contiver dados, as novas colunas terão valor NULL para todas as linhas existentes.
alter table table_name add columns (col_name1 type1, col_name2 type2…);
Para mais informações sobre a sintaxe, consulte Add a column.
Configuração de uma coluna de incremento automático
O MaxCompute não oferece suporte a colunas de incremento automático. Para pequenos volumes de dados, utilize a função ROW_NUMBER como alternativa.
Número máximo de colunas por tabela
Uma única tabela do MaxCompute pode ter no máximo 1.200 colunas. Caso sua tabela ultrapasse esse limite, considere as seguintes soluções:
Reduza o número de dimensões dos seus dados para 1.200 colunas ou menos.
Altere o método de armazenamento de dados, por exemplo, utilizando tipos de dados complexos como arrays ou maps para consolidar dados relacionados.
Uso de palavras-chave como nomes de colunas
Ao utilizar uma palavra-chave para nomear uma tabela, coluna ou partição, coloque-a entre crases (). Caso contrário, ocorrerá um erro.
Modificação do tipo de dados de uma coluna
Não é possível alterar o tipo de dados de uma coluna existente. Em vez disso, crie uma nova tabela com o tipo de dados desejado e migre os dados. Para mais informações sobre tipos de dados, consulte Data type editions.
Limpeza de dados para tabelas particionadas com ciclo de vida
Quando uma partição em uma tabela com ciclo de vida configurado não é modificada dentro do período especificado, o MaxCompute a recupera automaticamente.
Execute o comando desc table_name partition(pt_spec); para verificar se uma partição antiga foi modificada dentro do período do ciclo de vida. Execute o comando desc tablename; para visualizar a configuração do ciclo de vida. O MaxCompute recupera partições expiradas diariamente às 17:00. A atualização de status no console do DataWorks pode sofrer atrasos, geralmente de até um dia.