O MaxCompute cobra pelo armazenamento de dados com base no volume; portanto, dados não utilizados ou mal organizados aumentam diretamente sua fatura. Ao adotar medidas direcionadas — como particionar tabelas de forma eficaz, definir ciclos de vida e remover tabelas obsoletas — você elimina desperdícios e mantém os custos de armazenamento sob controle.
Este tópico aborda as seguintes estratégias:
Particione suas tabelas de forma eficaz
No MaxCompute, cada valor distinto em uma coluna de chave de partição gera uma partição separada. Ao consultar uma tabela particionada e especificar uma partição, o sistema lê apenas os dados dessa partição em vez de verificar a tabela inteira. Essa prática reduz o volume de dados processados e os custos associados.
Combine várias colunas em uma partição multinível, que funciona como uma estrutura de diretórios hierárquica. A tabela a seguir ajuda a escolher as colunas de partição adequadas:
|
Frequência de coleta de dados |
Colunas de partição recomendadas |
Motivo |
|
Diária |
Data |
Os dados de cada dia são direcionados para sua própria partição. As operações subsequentes leem apenas as partições necessárias. |
|
Horária |
Data + Hora |
Os dados de cada hora são direcionados para sua própria partição. Se você particionar dados horários apenas por data, os dados de todas as horas serão anexados à mesma partição. Como resultado, as consultas leem grandes quantidades de dados desnecessários, o que aumenta os custos de armazenamento. |
|
Outra |
Qualquer coluna com um conjunto relativamente fixo de valores enumerados, como canal, país ou estado. Também é possível combinar colunas de tempo com outras colunas. |
As consultas leem apenas as partições correspondentes à condição de filtro, o que reduz o volume de dados verificados. |
Limite cada tabela a dois níveis de partições. Cada tabela suporta no máximo 60.000 partições.
Defina ciclos de vida para tabelas
Um ciclo de vida define por quanto tempo o MaxCompute retém os dados antes de excluí-los automaticamente. Definir um ciclo de vida durante a criação da tabela garante a limpeza de dados desatualizados sem intervenção manual e libera espaço de armazenamento ao longo do tempo.
Defina um ciclo de vida ao criar uma tabela
A instrução a seguir cria uma tabela com um ciclo de vida de 100 dias. Se a tabela ou qualquer uma de suas partições não for modificada por mais de 100 dias, o MaxCompute a excluirá:
CREATE TABLE test3 (key BOOLEAN) PARTITIONED BY (pt STRING, ds STRING) LIFECYCLE 100;
Altere o ciclo de vida de uma tabela existente
Para alterar o ciclo de vida de uma tabela existente, execute a seguinte instrução. Para obter mais informações, consulte Operações de gerenciamento de ciclo de vida.
ALTER TABLE table_name SET lifecycle days;
Em tabelas particionadas, o ciclo de vida opera no nível da partição, que é a menor unidade. As partições que atingem o limiar do ciclo de vida são excluídas individualmente; as demais permanecem inalteradas.
Escolha um ciclo de vida compatível com o tempo real de necessidade dos dados pelos jobs downstream. Prazos muito curtos arriscam excluir dados ainda em uso; prazos muito longos anulam a economia de custos.
Exclua tabelas obsoletas regularmente
Mesmo com ciclos de vida configurados, tabelas desnecessárias podem se acumular ao longo do tempo. Revise seu projeto periodicamente e remova tabelas obsoletas, ou seja, aquelas sem acesso por um longo período.
Uma tabela é considerada obsoleta se atender a qualquer um dos seguintes critérios:
|
Critério |
Aplica-se a |
|
Não acessada nos últimos três meses |
Todas as tabelas |
|
Não acessada no último mês |
Tabelas não particionadas |
|
Não consome recursos de armazenamento |
Todas as tabelas |
Remover essas tabelas libera espaço de armazenamento e facilita o gerenciamento do projeto.