Todos os produtos
Search
Central de documentação

MaxCompute:Operações de tabela

Última atualização: Oct 22, 2026

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

  1. Table Operations

    Tipo

    Operação

    Função

    Create a table

    Cria uma tabela não particionada, tabela particionada, tabela externa ou tabela em cluster.

    Usuários com a permissão CreateTable em um projeto.

    Change table owner

    Altera o proprietário de uma tabela.

    Proprietário do projeto

    DROP TABLE

    Exclui uma tabela não particionada ou tabela particionada.

    Usuários com a permissão DROP em uma tabela.

    Tables or views

    Visualiza informações sobre uma tabela gerenciada do MaxCompute, view ou tabela externa.

    Usuários com a permissão Describe nos metadados da tabela.

    View partition information

    Visualiza informações de partição de uma tabela particionada específica.

    Usuários com a permissão Describe nos metadados da tabela.

    Display tables and views in a project

    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 List em um projeto.

    Display partitions

    Lista todas as partições em uma tabela.

    Usuários com a permissão List em um projeto.

  2. Partition Operations

  3. Column Operations

  4. Table Lifecycle Operations

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

  • Se já existir uma tabela com o mesmo nome, o sistema a exclui e a substitui pela nova tabela.

  • Não é possível usar CREATE OR REPLACE TABLE com as seguintes cláusulas:

    • CREATE TABLE ... IF NOT EXISTS

Isso equivale a executar os seguintes comandos:

DROP TABLE IF EXISTS <tableName>;  -- If the table exists, drop it.
CREATE TABLE <tableName> ...;      -- Create the new table.

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.

  • O nome da coluna deve ter no máximo 128 bytes e conter apenas letras, dígitos, sublinhados (_) ou caracteres chineses. Não há distinção entre maiúsculas e minúsculas. Recomenda-se iniciar o nome com uma letra.

  • Execute o comando SET odps.sql.bigquery.compatible=true; para ativar o modo de compatibilidade com o BigQuery. Nesse modo, o nome da coluna pode ter até 256 bytes. Caso contrário, o sistema retorna um erro.

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 insert não especificar um valor para esta coluna, o sistema grava o valor padrão na coluna.

Nota

Não há suporte para o uso de funções como GETDATE() e NOW() como valores padrão.

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.

  • Para uma tabela não particionada, o ciclo de vida começa no momento da última modificação dos dados. Se os dados não forem modificados pelo número especificado de days, o MaxCompute recolhe a tabela automaticamente, o que equivale a uma operação DROP TABLE.

  • Para uma tabela particionada, o sistema determina se deve recolher uma partição com base em seu LastModifiedTime. Ao contrário das tabelas não particionadas, o sistema não exclui a tabela em si após recolher sua última partição. Defina o ciclo de vida apenas no nível da tabela, e não no nível da partição.

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.

  • O nome da coluna deve ter no máximo 128 bytes e conter apenas letras, dígitos, sublinhados (_) ou caracteres chineses. Não diferencia maiúsculas de minúsculas. É recomendável iniciar o nome com uma letra.

  • Execute o comando SET odps.sql.bigquery.compatible=true; para ativar o modo de compatibilidade com BigQuery. Nesse modo, o nome da coluna pode ter até 256 bytes. Caso contrário, o sistema retornará um erro.

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.

Nota

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á _pt_col_0_ como nome padrão. Se este nome já estiver em uso, o sistema incrementará o sufixo (por exemplo, _pt_col_1_ ou _pt_col_2_) até encontrar um nome não utilizado.

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 CLUSTERED BY. Para otimização de join, selecione chaves de join ou agregação usadas com frequência.

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.

Nota

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.

Nota
  • 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 usando INSERT 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

STORED AS '&lt;file_format&gt;'

Sim

Especifica o file_format com base no formato de dados da tabela externa.

WITH SERDEPROPERTIES(options)

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 true.

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 é (0, 4096].

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:

  • Ao importar dados pelo Tunnel, este parâmetro define o número de nós simultâneos do Tunnel. A configuração afeta o tráfego de importação e também é limitada pelo número máximo de nós simultâneos do Tunnel.

  • Ao gravar dados via SQL, este parâmetro determina o grau de simultaneidade dos reducers, respeitando o limite máximo de nós reducers simultâneos.

  • O tamanho recomendado para cada bucket é de aproximadamente 500 MB de dados. Por exemplo, se o tamanho estimado da partição for de 500 GB, defina o número de buckets como 1.000. Para tabelas muito grandes, aumente o tamanho do bucket para 2 GB a 3 GB.

acid.data.retain.hours

Não

O valor padrão é 24. O intervalo válido é [24, 168].

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.

  • O valor 0 indica que o estado histórico dos dados não é retido, desabilitando as consultas do Time Travel.

  • O sistema pode excluir ou compactar dados históricos mais antigos que o valor especificado.

  • Se uma consulta do Time Travel especificar um horário anterior ao intervalo permitido por este parâmetro, o sistema retornará um erro. Por exemplo, se o valor for 72, uma consulta para dados de mais de 72 horas atrás falhará.

acid.incremental.query.out.of.time.range.enabled

Não

Valor padrão: false.

Se for true, o endTimestamp em uma consulta incremental pode ser posterior ao horário do último commit de dados da tabela. Nesse caso, múltiplas consultas podem retornar resultados diferentes devido à possível inserção de novos dados. Modifique o valor deste parâmetro para uma tabela existente conforme necessário.

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 true, será possível executar uma partial column update na Delta Table por meio de SQL ou Tunnel.

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 &gt;= 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, EXTERNAL e CREATE 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 update e delete no nível de linha. UPDATE | DELETE[Update or delete data (UPDATE

DELETE)](t2043562.dita#concept_2043562).

As seguintes limitações se aplicam a uma Transactional Table:

  • Defina a propriedade transactional apenas ao criar uma tabela. Não modifique essa propriedade em uma tabela existente com o ALTER 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, delete ou insert overwrite em dados importantes, faça o backup manual para outra tabela usando uma instrução SELECT ... 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] &lt;table_name&gt; [LIFECYCLE &lt;days&gt;] AS &lt;select_statement&gt;;.

    • 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] &lt;table_name&gt; [LIFECYCLE &lt;days&gt;] LIKE &lt;existing_table_name&gt;;.

    • 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 padrão.

    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 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.

    1. 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
    2. 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.

    1. 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
    2. 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

  1. Crie a tabela original my_table e insira dados nela.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  2. Use OR REPLACE para 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
  3. 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
    
    OK

    As 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.

Nota

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

Nota

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.

Nota

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$&lt;UID&gt;:&lt;ram_name&gt;, 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 é (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...).

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

Nota
  • O tamanho retornado por DESC table_name inclui os dados da lixeira.

  • Para excluir os dados da lixeira do cálculo de tamanho, execute primeiro PURGE TABLE table_name. Em seguida, execute DESC table_name.

  • Execute SHOW recyclebin e 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

Nota

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

Nota

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
    
    OK

    O 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
    
    OK

    O 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
    
    OK

    O 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