As tabelas são as unidades fundamentais de armazenamento de dados no MaxCompute. Todas as tarefas de desenvolvimento, análise e O&M em um data warehouse giram em torno dos dados das tabelas. Este documento descreve operações comuns de tabela, como criar, excluir e consultar tabelas.
Ferramentas de execução
Execute os comandos deste tópico usando as seguintes ferramentas:
Operações comuns
-
Tipo
Operação
Função
Cria uma tabela não particionada, tabela particionada, tabela externa ou tabela em cluster.
Usuários com a permissão
CreateTableem um projeto.Altera o proprietário de uma tabela.
Proprietário do projeto
Exclui uma tabela não particionada ou tabela particionada.
Usuários com a permissão
DROPem uma tabela.Visualiza informações sobre uma tabela gerenciada do MaxCompute, view ou tabela externa.
Usuários com a permissão
Describenos metadados da tabela.Visualiza informações de partição de uma tabela particionada específica.
Usuários com a permissão
Describenos metadados da tabela.Lista todas as tabelas e views em um projeto, ou aquelas que correspondem a uma regra específica (há suporte a expressões regulares).
Usuários com a permissão
Listem um projeto.Lista todas as partições em uma tabela.
Usuários com a permissão
Listem um projeto.
Crie uma tabela
Crie tabelas não particionadas, particionadas, externas ou clusterizadas.
Limitações
Uma tabela particionada pode ter até seis níveis de partição. Por exemplo, é possível usar uma data como coluna de partição e definir níveis como
year/month/week/day/hour/minute.O número máximo de partições por tabela é configurável por projeto, com o valor padrão de 60.000.
As demais limitações de tabela estão documentadas em MaxCompute SQL limits.
Sintaxe
Tabela interna
Crie uma tabela interna (não particionada ou particionada)
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Tabela clusterizada
Crie uma tabela clusterizada
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Tabela externa
Crie uma tabela externa
Este exemplo cria uma tabela externa do OSS com o parser de dados de texto nativo. O ORC external table aborda os demais formatos.
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Tabelas transacionais e Delta
-
Cria uma tabela transacional, na qual é possível executar operações UPDATE ou DELETE. Contudo, tabelas transacionais têm limitações.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Cria uma tabela Delta. Quando combinada com uma chave primária, permite realizar operações como upserts, consultas incrementais e time travel.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK-
Uma tabela Delta com chave primária permite usar um subconjunto da chave primária como chave de cluster de hash.
Em uma tabela Delta com chave primária, o sistema usa o cluster de hash por padrão, com a chave primária completa como chave de cluster. Se as consultas filtrarem com frequência um subconjunto de colunas da chave primária, especifique explicitamente esse subconjunto como chave de cluster para melhorar o desempenho da filtragem.
-
Se você especificar explicitamente uma chave de cluster, o sistema distribuirá os dados da tabela em buckets de hash com base nas colunas especificadas. A chave de cluster deve ser um subconjunto das colunas da chave primária.
Se você não especificar uma chave de cluster, o sistema usará o conjunto completo de colunas da chave primária como a chave de cluster padrão.
Não modifique a chave de cluster após a criação da tabela. Especifique-a durante a criação.
-
Cláusulas CTAS e LIKE
-
Cria uma nova tabela com base em uma tabela existente e copia os dados, mas não copia as propriedades de partição. Esta cláusula aplica-se a tabelas externas e a tabelas em projetos externos do Lakehouse.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Cria uma nova tabela com a mesma estrutura de uma tabela existente, mas não copia os dados. Esta cláusula aplica-se a tabelas externas e a tabelas em projetos externos do Lakehouse.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Parâmetros
Parâmetros gerais
Parâmetros gerais
|
Parâmetro |
Obrigatório |
Descrição |
Observações |
|
OR REPLACE |
Não |
|
Isso equivale a executar os seguintes comandos:
|
|
EXTERNAL |
Não |
Cria uma tabela externa. |
N/D |
|
IF NOT EXISTS |
Não |
Cria a tabela apenas se ainda não existir outra com o mesmo nome. |
Sem o IF NOT EXISTS, o sistema retorna um erro ao criar uma tabela com nome duplicado. Com o IF NOT EXISTS, a instrução é executada com sucesso mesmo que já exista uma tabela com o mesmo nome, mas com um esquema diferente. Os metadados da tabela existente permanecem inalterados. |
|
table_name |
Sim |
O nome da tabela. |
O nome da tabela deve ter no máximo 128 bytes e conter apenas letras, dígitos e sublinhados (_). Não há distinção entre maiúsculas e minúsculas. Recomenda-se iniciar o nome com uma letra. |
|
PRIMARY KEY(pk) |
Não |
A chave primária da tabela. |
Defina uma ou mais colunas como chave primária para garantir a exclusividade da combinação de colunas. Esta configuração segue a sintaxe padrão de chave primária do SQL. As colunas de chave primária devem ser NOT NULL e não podem ser modificadas. Importante
Este parâmetro se aplica apenas a uma Delta Table. |
|
col_name |
Sim |
O nome da coluna. |
|
|
col_comment |
Não |
O comentário da coluna. |
Deve ser uma string de no máximo 1.024 bytes. |
|
data_type |
Sim |
O tipo de dados da coluna. |
Tipos suportados: BIGINT, DOUBLE, BOOLEAN, DATETIME, DECIMAL, STRING, entre outros listados em Data types. |
|
NOT NULL |
Não |
Especifica que a coluna não pode conter valores NULL. |
Para mais informações sobre como modificar a propriedade NOT NULL, consulte Partition operations. |
|
default_value |
Não |
O valor padrão da coluna. |
Se uma operação Nota
Não há suporte para o uso de funções como |
|
table_comment |
Não |
O comentário da tabela. |
Deve ser uma string de no máximo 1.024 bytes. |
|
LIFECYCLE |
Não |
O ciclo de vida da tabela, em dias. |
São suportados apenas números inteiros positivos. A unidade é medida em dias.
|
Parâmetros de tabelas particionadas
Parâmetros de tabela particionada
O MaxCompute oferece suporte a tabelas particionadas padrão e com particionamento automático. Escolha o tipo com base na forma de geração das colunas de partição. Partitioned table overview.
Parâmetros de tabela particionada padrão
|
Parâmetro |
Obrigatório |
Descrição |
Observações |
|
PARTITIONED BY |
Sim |
Especifica as partições para uma tabela particionada padrão. |
Especifique as partições usando PARTITIONED BY ou AUTO PARTITIONED BY, mas não ambos. |
|
col_name |
Sim |
O nome da coluna de partição. |
|
|
data_type |
Sim |
O tipo de dados da coluna de partição. |
O MaxCompute V1.0 oferece suporte apenas a STRING. A V2.0 adiciona TINYINT, SMALLINT, INT, BIGINT e VARCHAR (o suporte a STRING é mantido). Lista completa em Data types. O particionamento elimina as varreduras completas na tabela para operações no nível de partição. |
|
col_comment |
Não |
O comentário da coluna de partição. |
Deve ser uma string de no máximo 1.024 bytes. |
Um valor de partição deve ter no máximo 255 bytes. Não pode conter caracteres de dois bytes, como caracteres chineses. O valor deve começar com uma letra e conter apenas letras, dígitos e os seguintes caracteres: espaço, dois-pontos (:), sublinhado (_), cifrão ($), cerquilha (#), ponto (.), ponto de exclamação (!) e arroba (@). O comportamento de outros caracteres, como os caracteres de escape \t, \n e /, é indefinido.
Parâmetros de tabela com particionamento automático
Uma tabela com particionamento automático gera colunas de partição automaticamente. Os detalhes de uso estão em Partitioned table types.
|
Parâmetro |
Obrigatório |
Descrição |
Observações |
|
AUTO PARTITIONED BY |
Sim |
Especifica as partições para uma tabela com particionamento automático. |
Especifique as partições usando PARTITIONED BY ou AUTO PARTITIONED BY, mas não ambos. |
|
auto_partition_expression |
Sim |
A expressão que define como a coluna de partição é calculada. Atualmente, apenas a função TRUNC_TIME pode ser usada para gerar a coluna de partição. Há suporte para apenas uma coluna de partição. |
A função TRUNC_TIME pode truncar dados de uma coluna do tipo hora ou data com base em uma unidade de tempo especificada para gerar uma coluna de partição. |
|
auto_partition_column_name |
Não |
O nome da coluna de partição gerada. Se você não especificar um nome, o sistema usará |
Com base no cálculo da expressão de partição, o sistema gera uma coluna de partição do tipo STRING. Você pode especificar explicitamente um nome para esta coluna, mas não pode modificar diretamente seu tipo de dados ou valor. |
|
TBLPROPERTIES('ingestion_time_partition'='true') |
Não |
Especifica se as colunas de partição devem ser geradas com base no horário de ingestão dos dados. |
O particionamento por horário de ingestão é descrito em Auto-partitioned tables based on data ingestion time. |
Parâmetros de tabela clusterizada
Parâmetros de tabela clusterizada
As tabelas clusterizadas dividem-se em tabelas clusterizadas por hash e tabelas clusterizadas por intervalo.
Tabela clusterizada por hash
|
Parâmetro |
Obrigatório |
Descrição |
Observações |
|
CLUSTERED BY |
Sim |
Especifica a chave de hash. O MaxCompute calcula os valores de hash para as colunas especificadas e distribui os dados em buckets de hash com base nesses valores. |
Para evitar distorção de dados (data skew) e alcançar um bom paralelismo, escolha colunas com alta cardinalidade e poucas duplicatas para a cláusula |
|
SORTED BY |
Sim |
Especifica a ordem de classificação das colunas dentro de cada bucket de hash. |
Para um desempenho ideal, use as mesmas colunas para SORTED BY e CLUSTERED BY. Após especificar a cláusula SORTED BY, o MaxCompute cria automaticamente um índice e o utiliza para acelerar as consultas. |
|
number_of_buckets |
Sim |
Especifica o número de buckets de hash. |
Este valor é obrigatório e depende do volume de dados. |
Ao selecionar o número de buckets de hash, siga estes dois princípios:
Mantenha o tamanho do bucket de hash moderado: o tamanho recomendado para cada bucket é de aproximadamente 500 MB. Por exemplo, se o tamanho estimado da partição for 500 GB, defina o número de buckets como 1.000. Isso resulta em um tamanho médio de bucket de hash de cerca de 500 MB. Para tabelas muito grandes, você pode exceder o limite de 500 MB. Um tamanho de 2 GB a 3 GB por bucket é adequado.
Para otimizar operações de
join, a remoção das etapas de shuffle e classificação melhora significativamente o desempenho. Isso exige que o número de buckets de hash nas duas tabelas seja múltiplo um do outro, por exemplo, 256 e 512. Recomenda-se definir o número de buckets de hash como uma potência de 2 (2n), como 512, 1024, 2048 ou 4096. Isso permite que o sistema divida ou mescle buckets de hash automaticamente e remova as etapas de shuffle e classificação, o que melhora a eficiência da execução.
Tabela clusterizada por intervalo
|
Parâmetro |
Obrigatório |
Descrição |
Observações |
|
RANGE CLUSTERED BY |
Sim |
Especifica as colunas de cluster de intervalo. |
O MaxCompute executa operações de bucketing nas colunas especificadas e distribui os dados em buckets com base nos números dos buckets. |
|
SORTED BY |
Sim |
Especifica a ordem de classificação das colunas dentro de cada bucket. |
O uso é o mesmo de uma tabela clusterizada por hash. |
|
number_of_buckets |
Sim |
Especifica o número de buckets. |
Para uma tabela clusterizada por intervalo, a prática recomendada de potência de 2 (2n) que se aplica a tabelas clusterizadas por hash não é necessária. Qualquer número de buckets é aceitável se os dados estiverem distribuídos uniformemente. Este parâmetro é opcional para tabelas clusterizadas por intervalo. Se você o omitir, o sistema determinará automaticamente o número ideal de buckets com base no volume de dados. |
Ao executar uma operação de join ou agregação em uma tabela clusterizada por intervalo, se a chave de join ou de grupo for a chave de cluster de intervalo ou seu prefixo, você pode eliminar a redistribuição de dados (shuffle remove) para melhorar o desempenho. Execute o comando set odps.optimizer.enable.range.partial.repartitioning=true/false; para ativar ou desativar esse recurso. Ele vem desativado por padrão.
-
Benefícios das tabelas clusterizadas:
Poda de buckets otimizada
Agregações otimizadas
Armazenamento otimizado
-
Limitações das tabelas clusterizadas:
Não há suporte para
INSERT INTO. Você pode adicionar dados apenas usandoINSERT OVERWRITE.O Tunnel não oferece suporte ao upload direto de dados para uma tabela clusterizada por intervalo porque faz o upload dos dados de maneira não ordenada.
Não há suporte para os recursos de backup e recuperação.
Parâmetros de tabela externa
Parâmetros de tabela externa
Esta seção aborda os parâmetros de tabela externa do OSS. Outros tipos de tabelas externas estão documentados em External tables.
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Especifica o file_format com base no formato de dados da tabela externa. |
|
|
Não |
Especifica parâmetros relacionados à autorização, compactação e análise de caracteres para a tabela externa. |
|
oss_location |
Sim |
O local de armazenamento no OSS dos dados da tabela externa. Para mais informações, consulte OSS external tables. |
Parâmetros de Transactional Table e Delta Table
Parâmetros de Transactional Table e Delta Table
Parâmetros de Delta Table
A Delta Table é um formato de tabela que permite leituras e gravações em tempo quase real, além de armazenamento e acesso incrementais com atualizações em tempo real. No momento, o suporte é restrito a tabelas com chave primária.
|
Parâmetro |
Obrigatório |
Descrição |
Observações |
|
PRIMARY KEY(PK) |
Sim |
Define a chave primária da Delta Table, que pode incluir várias colunas. |
A sintaxe segue o padrão SQL para chaves primárias. As colunas de chave primária devem ser definidas como NOT NULL e não podem ser modificadas. Após a definição da chave primária, os dados são deduplicados com base nessas colunas. A restrição de unicidade é aplicada dentro de uma única partição ou em uma tabela não particionada. |
|
transactional |
Sim |
Obrigatório para criar uma Delta Table. Defina este parâmetro como |
Indica que a tabela oferece suporte às propriedades transacionais das tabelas ACID do MaxCompute. A tabela utiliza o modelo de Controle de Concorrência Multiversão (MVCC) para garantir o nível de isolamento de snapshot. |
|
write.bucket.num |
Não |
O valor padrão é 16. O intervalo válido é |
Especifica o número de buckets para cada partição ou para uma tabela não particionada, indicando também o número de nós simultâneos para gravação de dados. Modifique este parâmetro em tabelas particionadas para que a nova configuração tenha efeito nas novas partições. Em tabelas não particionadas, essa alteração não é permitida. Siga as recomendações abaixo:
|
|
acid.data.retain.hours |
Não |
O valor padrão é 24. O intervalo válido é |
Define o intervalo de tempo, em horas, no qual é possível consultar estados históricos de dados usando o Time Travel. Caso precise de um histórico do Time Travel superior a 168 horas (7 dias), entre em contato com o suporte técnico do MaxCompute.
|
|
acid.incremental.query.out.of.time.range.enabled |
Não |
Valor padrão: |
Se for |
|
acid.write.precombine.field |
Não |
Especifica o nome de uma única coluna. |
Quando um nome de coluna é especificado, o sistema utiliza essa coluna em conjunto com as colunas de chave primária para deduplicar dados dentro do mesmo commit, garantindo a unicidade e a consistência dos dados. Nota
Se um único commit de dados exceder 128 MB, vários arquivos serão gerados. Este parâmetro não se aplica a múltiplos arquivos. |
|
acid.partial.fields.update.enable |
Não |
Ao definir como |
Defina este parâmetro ao criar a tabela e não o modifique após a criação. |
-
Outros requisitos de parâmetros para Delta Tables:
LIFECYCLE: O ciclo de vida da tabela deve ser maior ou igual ao período de retenção do Time Travel, ou seja,
lifecycle >= acid.data.retain.hours / 24. O sistema realiza uma verificação ao criar a tabela e reporta um erro caso essa condição não seja atendida.Recursos não suportados: Não há suporte para
CLUSTERED BY,EXTERNALeCREATE TABLE AS.
-
Outras limitações:
Atualmente, outros mecanismos não podem operar diretamente em uma Delta Table. Apenas o MaxCompute SQL é suportado.
Não é possível converter uma tabela padrão em uma Delta Table.
Não é possível alterar o schema das colunas de chave primária de uma Delta Table.
Parâmetros de Transactional Table
|
Parâmetro |
Obrigatório |
Descrição |
|
|
TBLPROPERTIES("transactional"="true") |
Sim |
Defina a tabela como uma Transactional Table para habilitar operações de |
DELETE)](t2043562.dita#concept_2043562). |
As seguintes limitações se aplicam a uma Transactional Table:
-
Defina a propriedade
transactionalapenas ao criar uma tabela. Não modifique essa propriedade em uma tabela existente com oALTER TABLE. A seguinte instrução retorna um erro:sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK Não é possível definir uma tabela clusterizada ou externa como uma Transactional Table.
Não é possível converter uma tabela interna padrão, externa ou clusterizada em uma Transactional Table, nem vice-versa.
Não há suporte para compactação automática. Compacte os arquivos manualmente conforme descrito em Compact files in a Transactional Table.
Não há suporte para a operação
merge partition.O acesso a Transactional Tables a partir de outros sistemas é limitado. Por exemplo, o MaxCompute Graph não oferece suporte a operações de leitura ou gravação. O Spark e o PAI suportam apenas operações de leitura.
Antes de executar operações de
update,deleteouinsert overwriteem dados importantes, faça o backup manual para outra tabela usando uma instruçãoSELECT...INSERT.
Criar tabela (a partir de existente)
Criar tabela (a partir de existente)
-
Crie outra tabela e copie dados para ela simultaneamente usando a instrução
CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] AS <select_statement>;.Esta instrução não copia as propriedades de partição. As colunas de partição da tabela source são tratadas como colunas regulares na tabela de destino. A propriedade de ciclo de vida da tabela source também não é copiada.
Especifique um ciclo de vida para a nova tabela por meio do parâmetro lifecycle. Além disso, crie uma tabela interna e copie dados de uma tabela externa com esta mesma instrução.
-
Crie uma nova tabela com o mesmo schema de uma tabela existente usando a instrução
CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] LIKE <existing_table_name>;.Esta instrução copia o schema, mas não copia os dados nem a propriedade de ciclo de vida da tabela source.
Especifique um ciclo de vida para a nova tabela usando o parâmetro lifecycle. Com esta instrução, crie também uma tabela interna que copie o schema de uma tabela externa.
Exemplos
Tabela não particionada
-
Crie uma tabela não particionada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela não particionada e especifique valores padrão para as colunas.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Tabela particionada
-
Crie uma tabela particionada com AUTO PARTITION que gera partições com base em uma coluna de dados temporais usando uma função de tempo.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela particionada com AUTO PARTITION que gera partições com base no horário de ingestão de dados. O sistema recupera automaticamente o horário em que os dados são gravados no MaxCompute e gera partições usando uma função de tempo.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Tabela com cluster hash ou range
-
Crie uma tabela não particionada com cluster hash.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela particionada com cluster hash.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela não particionada com cluster range.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela particionada com cluster range.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Tabela transacional
-
Crie uma tabela transacional não particionada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela transacional particionada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Tabela interna
-
Crie uma tabela interna copiando dados de uma tabela particionada externa. A tabela interna não incluirá propriedades de partição.
-
Crie uma tabela externa do OSS e uma tabela interna do MaxCompute. Crie uma tabela interna usando CREATE TABLE AS.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Execute o comando
DESC from_exetbl_oss;para visualizar o schema da tabela interna. O comando retorna a seguinte saída.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
-
-
Crie uma tabela interna copiando o schema de uma tabela particionada externa. A tabela interna inclui propriedades de partição.
-
Crie a tabela interna
from_exetbl_like. Consulte a tabela externa do OSS a partir do MaxCompute. Crie uma tabela interna usando CREATE TABLE LIKE.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Execute o comando
DESC from_exetbl_like;para visualizar o schema da tabela interna. O comando retorna a seguinte saída.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
-
Tabela Delta
-
Crie uma tabela Delta.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Crie uma tabela Delta e defina propriedades principais da tabela.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Outros métodos
Substituir uma tabela existente
-
Crie a tabela original
my_tablee insira dados nela.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Use
OR REPLACEpara criar uma nova tabela com o mesmo nome e modifique suas colunas.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Consulte a tabela
my_table. A consulta retorna o seguinte resultado.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OKAs seguintes instruções SQL são inválidas:
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Copiar dados e definir um ciclo de vida
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Execute o comando DESC EXTENDED sale_detail_ctas1; para visualizar detalhes como o schema e o ciclo de vida da tabela.
Neste exemplo, sale_detail é uma tabela particionada. Ao usar a instrução CREATE TABLE ... AS select_statement ... para criar a tabela sale_detail_ctas1, as propriedades de partição não são copiadas. As colunas de partição da tabela de origem tornam-se colunas regulares na tabela de destino. Portanto, sale_detail_ctas1 é uma tabela não particionada com cinco colunas.
Usar constantes para valores de coluna
Se você usar constantes como valores de coluna na cláusula SELECT, especifique os nomes das colunas. Caso contrário, a quarta e a quinta colunas na tabela criada sale_detail_ctas3 receberão nomes padrão, como _c4 e _c5.
-
Especifique os nomes das colunas.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Não especifique os nomes das colunas.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Copiar um schema e definir um ciclo de vida
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Execute o comando DESC EXTENDED sale_detail_like; para visualizar detalhes como o schema e o ciclo de vida da tabela.
O schema de sale_detail_like é idêntico ao schema de sale_detail. Todas as propriedades, como nomes de colunas, comentários de colunas e comentários de tabela, são copiadas, exceto a propriedade de ciclo de vida. No entanto, os dados em sale_detail não são copiados para a tabela sale_detail_like.
Copiar um schema de uma tabela externa
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Execute o comando DESC mc_oss_extable_orc_like; para visualizar detalhes como o schema da tabela.
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Novos tipos de dados
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Alterar o proprietário da tabela
Limitações
Apenas usuários com a função Project Owner ou Super_Administrator podem executar este comando.
Sintaxe
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Parâmetros
table_name: Obrigatório. O nome da tabela cujo proprietário será alterado.
-
new_owner: Obrigatório. A conta do novo proprietário.
Se o novo proprietário for um usuário do Resource Access Management (RAM):
O usuário RAM deve ser membro do projeto que contém a tabela.
Formato:
RAM$<UID>:<ram_name>, em que UID é o ID da sua conta Alibaba Cloud e ram_name é o nome de exibição do usuário RAM.
Exemplos
-
Altere o proprietário da tabela test1 para
ALIYUN$xxx@aliyun.com.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Altere o proprietário da tabela test1 para o usuário RAM chamado
ram_test.sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
DROP TABLE
Exclui uma tabela não particionada ou uma tabela particionada.
Precauções
Tenha cuidado ao excluir uma tabela. Para restaurar uma tabela excluída, ative o backup e a restauração do projeto e certifique-se de que a tabela esteja dentro do período de retenção de dados. A restauração exige que você configure local backup.
Excluir uma tabela reduz o uso de armazenamento do projeto MaxCompute.
Sintaxe
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
IF EXISTS |
Não |
Sem o IF EXISTS, a tentativa de excluir uma tabela inexistente retorna uma exceção. Com o IF EXISTS, a instrução é bem-sucedida mesmo que a tabela não exista. |
|
table_name |
Sim |
O nome da tabela a ser excluída. |
Exemplos
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Tabelas ou views
Exibe informações sobre Managed Tables, Views, Materialized Views, External Tables, Clustered Tables ou Transactional Tables no MaxCompute.
Sintaxe
sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen
OK
Parâmetros
|
Nome do parâmetro |
Descrição |
|
table_name |
Obrigatório. O nome da tabela que você deseja visualizar. |
|
view_name |
Obrigatório. O nome da view que você deseja visualizar. |
|
mv_name |
O nome da Materialized View que você deseja consultar. |
|
pt_spec |
Opcional. A partição que você deseja visualizar em uma tabela particionada. O formato é |
|
extended |
Inclua este parâmetro para exibir informações estendidas de uma Materialized View, tabela externa, tabela clusterizada ou tabela transacional. Este parâmetro também permite visualizar informações estendidas de uma tabela interna, como a propriedade não nula de uma coluna. |
Valores de retorno
Nome do parâmetro | Descrição |
Owner | A conta do proprietário da tabela ou view. |
Project | O projeto ao qual a tabela ou view pertence. |
TableComment | O comentário da tabela ou view. |
CreateTime | A data e a hora de criação da tabela ou view. |
LastDDLTime | A data e a hora da última modificação da Data Definition Language (DDL) da tabela ou view. |
LastModifiedTime | A data e a hora da última modificação dos dados na tabela ou view. |
LastAccessTime | A data e a hora do último acesso aos dados da tabela ou view. Este horário é apenas para referência. Pode haver uma diferença de até 24 horas entre este valor e o horário real do último acesso. Quando os acessos aos dados são frequentes, o sistema não atualiza o valor de LastAccessTime se ele já foi atualizado nas últimas 24 horas. Isso reduz a sobrecarga de desempenho gerada por atualizações frequentes. |
Lifecycle | O ciclo de vida em dias. |
InternalTable | Indica se o objeto é uma tabela interna. Este parâmetro é retornado apenas para objetos de tabela. |
VirtualView | Indica se o objeto é uma view. Este parâmetro é retornado apenas para objetos de view. |
Size | O tamanho da tabela em bytes. |
NativeColumns | As informações das colunas da tabela ou view. |
PartitionColumns | As informações das colunas de chave de partição. Este parâmetro é retornado apenas para tabelas particionadas. |
Exemplos
O tamanho retornado por
DESC table_nameinclui os dados da lixeira.Para excluir os dados da lixeira do cálculo de tamanho, execute primeiro
PURGE TABLE table_name. Em seguida, executeDESC table_name.Execute
SHOW recyclebine visualize os detalhes dos dados na lixeira do projeto atual.
Exemplo 1: Visualize uma tabela não particionada
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações da tabela test_table.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 2: Visualize uma tabela particionada
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 3: Visualize informações detalhadas de uma tabela particionada
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 4: Visualize uma tabela com ciclo de vida
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize informações detalhadas da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 5: Visualize uma tabela com vários tipos de dados
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize informações detalhadas da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 6: Visualize uma tabela não particionada com cluster hash
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações detalhadas da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
As propriedades do cluster aparecem na seção Extended Info.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 7: Visualize uma tabela particionada com cluster hash
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações detalhadas da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
As propriedades do cluster aparecem na seção Extended Info.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 8: Visualize uma tabela não particionada com cluster range
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações detalhadas da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
As propriedades do cluster aparecem na seção Extended Info.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 9: Visualize uma tabela particionada com cluster range
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize as informações detalhadas da tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
As propriedades do cluster aparecem na seção Extended Info.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 10: Verificar se uma tabela não particionada é transacional
Use a versão 0.35.4 ou posterior do MaxCompute client para verificar se uma tabela é transacional.
Outras ferramentas podem não oferecer suporte a esse recurso caso não sejam atualizadas para a versão necessária, e o resultado da consulta pode omitir informações transacionais.
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize informações detalhadas sobre a tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
A propriedade Transactional aparece na seção Extended Info.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 11: Verificar se uma tabela particionada é transacional
Use a versão 0.35.4 ou posterior do MaxCompute client para verificar se uma tabela é transacional.
Outras ferramentas podem não oferecer suporte a esse recurso caso não sejam atualizadas para a versão necessária, e o resultado da consulta pode omitir informações transacionais.
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize informações detalhadas sobre a tabela criada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
A propriedade Transactional aparece na seção Extended Info.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 12: Visualizar a materialized view mv
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Visualize informações detalhadas sobre a materialized view.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exemplo 13: Visualizar informações de partição
-
Crie uma tabela de teste.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Consulte as informações de partição da tabela particionada.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Resultado retornado.
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Visualize informações de partição
Visualiza as informações de partição de uma tabela particionada.
-
Sintaxe
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Parâmetros
table_name: obrigatório. O nome da tabela particionada cujas informações de partição você deseja visualizar.
pt_spec: obrigatório. As informações sobre a partição que você deseja visualizar. O valor deste parâmetro deve estar no formato
partition_col1=col1_value1, partition_col2=col2_value1.... Se a tabela possuir partições de vários níveis, especifique os valores de todas as colunas de chave de partição.
-
Exemplos
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OKO resultado retornado é:
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exiba tabelas e views em um projeto
Exibe todas as tabelas e views, ou apenas aquelas que atendem a regras específicas em um projeto.
-
Sintaxe
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Exemplos
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OKO resultado retornado é:
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Exiba partições
Exibe todas as partições de uma tabela. Caso a tabela não exista ou não seja particionada, o sistema retornará um erro.
-
Sintaxe
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK -
Parâmetros
table_name: obrigatório. O nome da tabela particionada cujas informações de partição você deseja visualizar.
-
Exemplos
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OKO resultado retornado é:
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Documentação relacionada
Modifique o schema de uma tabela, como adicionar colunas, remover colunas ou alterar os tipos de dados das colunas, conforme descrito em Partition operations.
Copie os dados de uma tabela para outra consultando CLONE TABLE.
Atualize ou exclua dados em uma tabela transacional consultando Update or delete data (UPDATE | DELETE).