top of page

Coffee and Tips Newsletter

Inscreva-se na nossa newsletter semanal

Nos vemos em breve!

Liquid Clustering no Delta Lake: organizando dados de forma inteligente

  • Foto do escritor: JP
    JP
  • há 11 horas
  • 3 min de leitura

Habilitando performance através do Liquid Clustering no Delta Lake


Quem já trabalha com grandes volumes de dados sabe: com o tempo, as tabelas começam a perder desempenho. Consultas que antes eram rápidas passam a demorar mais, o custo de manutenção aumenta e o simples ato de encontrar informações no meio de terabytes de arquivos se torna trabalhoso.


O Liquid Clustering surgiu para resolver parte desse problema. Ele reorganiza os dados internamente de forma eficiente, sem exigir reescritas completas e sem depender de um particionamento físico rígido.


Um breve lembrete sobre o Delta Lake


O Delta Lake é uma camada que roda sobre sistemas como Apache Spark e que transforma um data lake comum em algo mais próximo de um data warehouse. Ele garante transações ACID, versionamento de dados, evolução de esquema e otimizações de performance. É bastante usado em arquiteturas do tipo lakehouse, combinando a flexibilidade de um data lake com recursos típicos de bancos analíticos.


Quer aprender mais sobre Delta Lake? acesse os links abaixo:



O que é o Liquid Clustering


 Liquid Clustering
Como organizar os dados com  Liquid Clustering

Tradicionalmente, quando queremos otimizar a leitura de dados, recorremos a duas técnicas: particionamento e Z-Ordering.

O particionamento cria diretórios separados para valores de uma coluna, o que funciona bem quando essa coluna tem poucos valores distintos, mas complica bastante quando ela tem alta cardinalidade.

O Z-Ordering, por sua vez, organiza fisicamente os dados em múltiplas dimensões, mas exige reescrever toda a tabela para aplicar alterações o que é caro e lento.


O Liquid Clustering substitui essas abordagens. Ele agrupa os dados usando uma curva de Hilbert, que preserva a proximidade entre registros relacionados, e faz isso de forma incremental. Em vez de reescrever todos os arquivos, ele reorganiza apenas o que realmente precisa, o que reduz custos e evita janelas longas de indisponibilidade.


Além disso, é possível mudar as colunas usadas para clustering a qualquer momento, sem ter que refazer todo o layout existente.


Principais vantagens


O Liquid Clustering não está disponível em qualquer lugar. Hoje, ele só funciona em:

  • Databricks Runtime 15.2 ou superior (15.4 LTS para clustering automático);

  • Amazon EMR com Delta Lake 3.1 ou superior, configurado manualmente.

Se você usa Spark standalone, Glue, DataProc ou outra plataforma sem essas integrações, não conseguirá habilitar essa funcionalidade.O motivo é que ela depende de recursos internos do motor Delta e do suporte nativo no runtime, algo que ainda não foi disponibilizado de forma ampla no código open-source.

Como ativar

No Databricks, criando uma tabela já com clustering definido:

CREATE TABLE vendas (
	id STRING,
	cliente_id STRING,
	produto_id STRING,
	valor DOUBLE,
	data_compra DATE
)
USING DELTA
CLUSTER BY (cliente_id, data_compra);

Ativando clustering automático:

CREATE TABLE vendas (
	id STRING,
	cliente_id STRING,
	produto_id STRING,
	valor DOUBLE,  
	data_compra DATE
)
USING DELTA
CLUSTER BY AUTO;

Nesse caso, o próprio Databricks decide quais colunas usar, com base no padrão de consultas realizadas.


Gravando dados com PySpark:

df.write.format("delta") \
	.option("delta.feature.liquidClustering", "enabled") \
	.option("delta.clustering.columns", "cliente_id,data_compra") \
	.save("/tabelas/vendas")

Quando faz sentido usar


Essa abordagem vale a pena quando:

  • A tabela tem milhões ou bilhões de registros;

  • Consultas filtram ou agregam com frequência por determinadas colunas;

  • O custo e o tempo de manutenção do Z-Ordering são altos;

  • Há ingestão contínua de dados e necessidade de manter consultas rápidas.


Resumo


O Liquid Clustering é uma evolução na forma como organizamos dados no Delta Lake. Ele entrega desempenho, flexibilidade e menor custo de manutenção, mas depende de um ambiente moderno e compatível para funcionar. Se você já trabalha com Databricks ou EMR atualizados, vale a pena considerar essa funcionalidade. Caso contrário, é algo para colocar no radar e planejar para quando a sua infraestrutura permitir.


Referências




Quer Aprender Mais? Inscreva-se na nossa Newsletter semanal!


Não perca nossas dicas exclusivas de Tech e Data!



Receba semanalmente:

  • Tutoriais práticos e diretos sobre Engenharia de Software e Dados

  • Insights de tecnologia e notícias da semana




 
 
 
bottom of page