O que é E/S preditiva?
A E/S Preditiva é uma coleção de otimizações do Azure Databricks que melhoram o desempenho das interações de dados. Os recursos de E/S preditiva são agrupados nas seguintes categorias:
- As leituras aceleradas reduzem o tempo necessário para digitalizar e ler dados.
- As atualizações aceleradas reduzem a quantidade de dados que precisam ser reescritos durante atualizações, exclusões e mesclagens.
A E/S preditiva é exclusiva do mecanismo Photon no Azure Databricks.
Use E/S preditivas para acelerar leituras
A E/S preditiva é usada para acelerar a verificação de dados e o desempenho de filtragem para todas as operações em tipos de computação suportados.
Importante
As leituras de E/S preditivas são suportadas pelos tipos sem servidor e pro de armazéns SQL e clusters acelerados por Fóton que executam o Databricks Runtime 11.3 LTS e superior.
A E/S preditiva melhora o desempenho da varredura aplicando técnicas de aprendizado profundo para fazer o seguinte:
- Determine o padrão de acesso mais eficiente para ler os dados e digitalizar apenas os dados que são realmente necessários.
- Elimine a decodificação de colunas e linhas que não são necessárias para gerar resultados de consulta.
- Calcule as probabilidades dos critérios de pesquisa em consultas seletivas correspondentes a uma linha. À medida que as consultas são executadas, usamos essas probabilidades para antecipar onde a próxima linha correspondente ocorreria e ler apenas esses dados do armazenamento em nuvem.
Use E/S preditiva para acelerar atualizações
As E/S preditivas para atualizações são usadas automaticamente para todas as tabelas que têm vetores de exclusão habilitados usando os seguintes tipos de computação habilitados para Photon:
- Armazéns SQL sem servidor.
- Armazéns SQL Pro.
- Clusters que executam o Databricks Runtime 14.0 e superior.
Nota
O suporte para E/S preditiva para atualizações está presente no Databricks Runtime 12.2 LTS e superior, mas o Databricks recomenda o uso de 14.0 e superior para obter o melhor desempenho.
Consulte O que são vetores de exclusão?.
Importante
Uma configuração de administrador de espaço de trabalho controla se os vetores de exclusão são habilitados automaticamente para novas tabelas Delta. Consulte Ativar vetores de exclusão automáticos.
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
Quando você habilita vetores de exclusão, a versão do protocolo de tabela é atualizada. Após a atualização, a tabela não será legível pelos clientes Delta Lake que não suportam vetores de exclusão. Consulte Como o Azure Databricks gere a compatibilidade de funcionalidades 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 superior, você pode descartar o recurso de tabela de vetores de exclusão para habilitar a compatibilidade com outros clientes Delta. Consulte Recursos da tabela Drop 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 em tabelas Delta. A E/S preditiva otimiza e UPDATE
MERGE
as DELETE
operações.
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 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.
- Não é possível 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 simultânea esteja em execução para gerar um manifesto. - Não é possível gerar incrementalmente arquivos de manifesto para uma tabela com vetores de exclusão habilitados.