Parquet v2

Disponível no Databricks Runtime 18.1 e versões posteriores, o Parquet v2 melhora o desempenho das consultas e reduz o armazenamento de tabelas do Delta Lake e do Apache Iceberg usando codificações avançadas, cabeçalhos de página de dados v2 e carimbos de data/hora INT64.

Como o Parquet v2 funciona

O Parquet v2 apresenta melhorias no formato de arquivo de dados que reduzem o armazenamento e melhoram o desempenho de leitura:

  • Codificações avançadas: colunas de inteiros e de strings usam novas codificações com compactação e decodificação mais eficientes do que as codificações usadas no Parquet v1.
  • Cabeçalhos de página de dados V2: estatísticas e índices no nível da página melhoram o pushdown de predicados e a eliminação de dados, reduzindo a quantidade de dados lidos no momento da consulta.
  • Carimbos de data/hora INT64: INT64 os carimbos de data/hora substituem o carimbo de data/hora INT96 herdado, melhorando as estatísticas de coluna e a codificação e compactação de carimbos de data/hora.

Habilitar Parquet v2

O Azure Databricks atualiza automaticamente tabelas gerenciadas compatíveis do Unity Catalog para Parquet v2. Consulte atualizações automáticas.

Para habilitar o Parquet v2 manualmente, defina a propriedade da tabela parquet.format.version como 2.12.0, usando o prefixo apropriado para seu tipo de tabela. Antes de habilitar manualmente, examine as limitações.

Para habilitar o Parquet v2 em uma tabela existente:

Lago Delta

ALTER TABLE <table_name> SET TBLPROPERTIES ('delta.parquet.format.version' = '2.12.0');

Iceberg

ALTER TABLE <table_name> SET TBLPROPERTIES ('iceberg.parquet.format.version' = '2.12.0');

Para habilitar o Parquet v2 em uma nova tabela:

Lago Delta

CREATE TABLE <table_name> (...)
TBLPROPERTIES ('delta.parquet.format.version' = '2.12.0');

Iceberg

CREATE TABLE <table_name> (...)
USING iceberg
TBLPROPERTIES ('iceberg.parquet.format.version' = '2.12.0');

Depois de definir a propriedade, todas as gravações subsequentes usam codificações v2. Os arquivos Parquet v1 e v2 podem coexistir na mesma tabela. Os arquivos de dados existentes não são reescritos automaticamente. Para tabelas do Delta Lake, use REORG TABLE no Databricks Runtime 18.2 e posteriores para regravar os arquivos existentes em v2:

REORG TABLE <table_name> APPLY (SET PARQUET (FORMAT_VERSION = '2.12.0'));

Consulte a referência das propriedades da tabela para ver a referência completa das propriedades da tabela.

Reverter para Parquet v1

No Databricks Runtime 18.2 e superior, para reverter uma tabela individual para codificação v1, execute REORG TABLE com a opção SET PARQUET :

REORG TABLE <table_name> APPLY (SET PARQUET (FORMAT_VERSION = '1.0.0'));

Esse comando reescreve todos os arquivos de dados usando codificações v1 e redefine a propriedade da delta.parquet.format.version tabela para 1.0.0.

Consulte REORG TABLE para ver a sintaxe completa REORG TABLE.

Limitações

Parquet v2 tem as seguintes limitações:

  • No caso de mecanismos externos, alguns leitores do Apache Iceberg podem não ser compatíveis com o Parquet v2 para tabelas do Iceberg. Você deve verificar se os leitores do Iceberg são compatíveis antes de habilitar o Parquet v2 em tabelas Iceberg.
  • Para o OpenSharing, antes de habilitar o Parquet v2, verifique se os clientes leitores para destinatários do OpenSharing dão suporte a codificações Parquet v2.
  • Views materializadas e tabelas de streaming não são atualizadas automaticamente para o Parquet v2. Você pode habilitar manualmente o Parquet v2 nesses tipos de tabela no Databricks Runtime 18.1 e versões posteriores.