O que é E/S preditiva?

Predictive I/O é uma coleção de otimizações de Databricks que melhoram o desempenho para interações de dados. Os recursos preditivos de E/S são agrupados nas seguintes categorias:

  • As leituras aceleradas reduzem o tempo necessário para digitalizar e ler os dados.

  • As atualizações aceleradas reduzem a quantidade de dados que precisam ser reescritos durante as atualizações, exclusões e merge.

A E/S preditiva é exclusiva do mecanismo Photon no Databricks.

Use E/S preditiva para acelerar as leituras

A E/S preditiva é usada para acelerar a varredura de dados e o desempenho de filtragem para todas as operações em tipos compute compatíveis.

Importante

As leituras de E/S preditivas são compatíveis com os tipos serverless e pro do SQL warehouse e com o Photon-accelerated clusters que executa o Databricks Runtime 11.3 LTS e acima.

A E/S preditiva melhora o desempenho da varredura aplicando técnicas de aprendizagem profunda para fazer o seguinte:

  • Determine o padrão de acesso mais eficiente para ler os dados e digitalizar apenas os dados realmente necessários.

  • Elimine a decodificação de colunas e linhas que não são necessárias para gerar resultados query .

  • Calcule as probabilidades dos critérios de pesquisa na query seletiva correspondente a uma linha. Como execução query , usamos essas probabilidades para antecipar onde ocorreria a próxima linha correspondente e apenas lemos esses dados do armazenamento cloud .

Use E/S preditiva para acelerar as atualizações

A E/S preditiva para atualizações é usada automaticamente para todas as tabelas que têm vetores de exclusão habilitados usando os seguintes tipos compute habilitados para Photon:

  • serverless SQL warehouse.

  • SQL warehouse.

  • clusters executando Databricks Runtime 14.0 e acima.

Observação

O suporte à E/S preditiva para atualizações está presente no Databricks Runtime 12.2 LTS e no acima, mas o Databricks recomenda o uso do 14.0 e do acima para obter o melhor desempenho.

Consulte O que são vetores de exclusão?.

Importante

Uma configuração do administrador do workspace controla se os vetores de exclusão são ativados automaticamente para novas tabelas do Delta. Consulte Auto-enable deletion vectors (Vetores de exclusão de ativação automática).

Você habilita o suporte para vetores de exclusão em uma tabela Delta Lake definindo uma propriedade de tabela Delta Lake. Você habilita vetores de exclusão durante a criação da tabela ou altera uma tabela existente, como nos exemplos a seguir:

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Aviso

Ao ativar vetores de exclusão, a versão do protocolo da tabela é atualizada. Após a atualização, a tabela não poderá ser lida por clientes Delta Lake que não suportam vetores de exclusão. Consulte Como o Databricks gerencia a compatibilidade de recursos do Delta Lake?.

Para obter uma lista de clientes que suportam vetores de exclusão, consulte Compatibilidade com clientes Delta.

No Databricks Runtime 14.1 e acima, você pode descartar o recurso de tabela de vetores de exclusão para permitir a compatibilidade com outros clientes Delta. Consulte Eliminar recurso da tabela Delta.

A E/S preditiva aproveita os vetores de exclusão para acelerar as atualizações, reduzindo a frequência de regravações completas de arquivos durante a modificação de dados nas tabelas Delta. A E/S preditiva otimiza as operações DELETE, MERGE e UPDATE .

Em vez de reescrever todos os registros em um arquivo de dados quando qualquer registro é atualizado ou excluído, a E/S preditiva usa vetores de exclusão para indicar que os registros foram removidos dos arquivos de dados de destino. Arquivos de dados suplementares são usados para indicar atualizações.

As leituras subsequentes na tabela resolvem o estado atual da tabela aplicando as alterações anotadas à versão mais recente da tabela.

Importante

As atualizações de E/S preditivas compartilham todas as limitações com os vetores de exclusão. No Databricks Runtime 12.2 LTS e superior, existem as seguintes limitações:

  • O compartilhamento delta não é suportado em tabelas com vetores de exclusão habilitados.

  • O senhor não pode gerar um arquivo de manifesto para uma tabela com vetores de exclusão presentes. Execute REORG TABLE ... APPLY (PURGE) e certifique-se de que nenhuma operação de gravação concorrente esteja em execução para gerar um manifesto.

  • O senhor não pode gerar arquivos de manifesto de forma incremental para uma tabela com vetores de exclusão ativados.