O que é Delta Live Tables?
Delta Live Tables é uma estrutura declarativa para a construção de pipelines de processamento de dados confiáveis, sustentáveis e testáveis. Você define as transformações a serem executadas em seus dados e o Delta Live Tables gerencia a orquestração de tarefas, o gerenciamento de clusters, o monitoramento, a qualidade dos dados e o tratamento de erros.
Nota
Delta Live Tables requer o plano Premium. Entre em contato com sua equipe de conta Databricks para obter mais informações.
Em vez de definir seus pipelines de dados usando uma série de tarefas separadas do Apache Spark, você define tabelas de streaming e exibições materializadas que o sistema deve criar e manter atualizado. O Delta Live Tables gerencia como seus dados são transformados com base nas consultas definidas para cada etapa de processamento. Você também pode impor a qualidade dos dados com as expectativas do Delta Live Tables, que permitem definir a qualidade de dados esperada e especificar como lidar com registros que falham nessas expectativas.
Para saber mais sobre os benefícios de criar e executar seus pipelines de ETL com Delta Live Tables, consulte a página do produto Delta Live Tables.
O que são conjuntos de dados Delta Live Tables?
Os conjuntos de dados Delta Live Tables são as tabelas de streaming, visualizações materializadas e visualizações mantidas como resultados de consultas declarativas. A tabela a seguir descreve como cada conjunto de dados é processado:
Tipo de conjunto de dados | Como os registros são processados por meio de consultas definidas? |
---|---|
Tabela de transmissão em fluxo | Cada registo é processado exatamente uma vez. Isso pressupõe uma fonte somente de acréscimo. |
Vistas materializadas | Os registros são processados conforme necessário para retornar resultados precisos para o estado atual dos dados. As visualizações materializadas devem ser usadas para tarefas de processamento de dados, como transformações, agregações ou consultas lentas de pré-computação e cálculos usados com frequência. |
Visualizações | Os registros são processados sempre que a exibição é consultada. Use exibições para transformações intermediárias e verificações de qualidade de dados que não devem ser publicadas em conjuntos de dados públicos. |
As seções a seguir fornecem descrições mais detalhadas de cada tipo de conjunto de dados. Para saber mais sobre como selecionar tipos de conjuntos de dados para implementar seus requisitos de processamento de dados, consulte Quando usar modos de exibição, exibições materializadas e tabelas de streaming.
Tabela de transmissão em fluxo
Uma tabela de streaming é uma tabela Delta com suporte extra para streaming ou processamento incremental de dados. As tabelas de streaming permitem processar um conjunto de dados crescente, manipulando cada linha apenas uma vez. Como a maioria dos conjuntos de dados cresce continuamente ao longo do tempo, as tabelas de streaming são boas para a maioria das cargas de trabalho de ingestão. As tabelas de streaming são ideais para pipelines que exigem atualização de dados e baixa latência. As tabelas de streaming também podem ser úteis para transformações em grande escala, já que os resultados podem ser calculados incrementalmente à medida que novos dados chegam, mantendo os resultados atualizados sem a necessidade de recalcular totalmente todos os dados de origem a cada atualização. As tabelas de streaming são projetadas para fontes de dados que são somente acréscimo.
Nota
Embora, por padrão, as tabelas de streaming exijam fontes de dados somente acréscimo, quando uma fonte de streaming é outra tabela de streaming que requer atualizações ou exclusões, você pode substituir esse comportamento pelo sinalizador skipChangeCommits.
Vista materializada
Uma visão materializada é uma visão onde os resultados foram pré-calculados. As visualizações materializadas são atualizadas de acordo com o cronograma de atualização do pipeline no qual estão contidas. As visualizações materializadas são poderosas porque podem lidar com quaisquer alterações na entrada. Sempre que o pipeline é atualizado, os resultados da consulta são recalculados para refletir alterações nos conjuntos de dados upstream que possam ter ocorrido devido à conformidade, correções, agregações ou CDC geral. Delta Live Tables implementa visualizações materializadas como tabelas Delta, mas abstrai complexidades associadas à aplicação eficiente de atualizações, permitindo que os usuários se concentrem em escrever consultas.
Visualizações
Todas as vistas no Azure Databricks calculam os resultados dos conjuntos de dados de origem à medida que são consultados, aproveitando as otimizações de cache quando disponíveis. O Delta Live Tables não publica exibições no catálogo, portanto, as exibições podem ser referenciadas somente dentro do pipeline no qual elas são definidas. As visualizações são úteis como consultas intermediárias que não devem ser expostas a usuários finais ou sistemas. O Databricks recomenda o uso de modos de exibição para impor restrições de qualidade de dados ou transformar e enriquecer conjuntos de dados que geram várias consultas downstream.
Declare seus primeiros conjuntos de dados no Delta Live Tables
Delta Live Tables introduz nova sintaxe para Python e SQL. Para começar a usar a sintaxe Delta Live Tables, consulte os exemplos de Python e SQL em Tutorial: Execute seu primeiro pipeline Delta Live Tables.
Nota
O Delta Live Tables separa as definições do conjunto de dados do processamento de atualizações, e os blocos de anotações Delta Live Tables não se destinam à execução interativa. Consulte O que é um pipeline Delta Live Tables?.
O que é um pipeline Delta Live Tables?
Um pipeline é a principal unidade usada para configurar e executar fluxos de trabalho de processamento de dados com o Delta Live Tables.
Um pipeline contém exibições materializadas e tabelas de streaming declaradas em arquivos de origem Python ou SQL. Delta Live Tables infere as dependências entre essas tabelas, garantindo que as atualizações ocorram na ordem correta. Para cada conjunto de dados, o Delta Live Tables compara o estado atual com o estado desejado e continua a criar ou atualizar conjuntos de dados usando métodos de processamento eficientes.
As configurações dos pipelines Delta Live Tables se enquadram em duas grandes categorias:
- Configurações que definem uma coleção de blocos de anotações ou arquivos (conhecidos como código-fonte) que usam a sintaxe Delta Live Tables para declarar conjuntos de dados.
- Configurações que controlam a infraestrutura do pipeline, o gerenciamento de dependências, como as atualizações são processadas e como as tabelas são salvas no espaço de trabalho.
A maioria das configurações é opcional, mas algumas exigem atenção cuidadosa, especialmente ao configurar pipelines de produção. Estas incluem o seguinte:
- Para disponibilizar dados fora do pipeline, você deve declarar um esquema de destino para publicar no metastore do Hive ou um catálogo de destino e esquema de destino para publicar no Unity Catalog.
- As permissões de acesso a dados são configuradas através do cluster usado para execução. Verifique se o cluster tem as permissões apropriadas configuradas para fontes de dados e o local de armazenamento de destino, se especificado.
Para obter detalhes sobre como usar Python e SQL para escrever código-fonte para pipelines, consulte Referência da linguagem SQL Delta Live Tables e Referência da linguagem Python Delta Live Tables.
Para obter mais informações sobre definições e configurações de pipeline, consulte Configurar um pipeline Delta Live Tables.
Implante seu primeiro pipeline e acione atualizações
Antes de processar dados com Delta Live Tables, você deve configurar um pipeline. Depois que um pipeline é configurado, você pode disparar uma atualização para calcular os resultados de cada conjunto de dados em seu pipeline. Para começar a usar os pipelines do Delta Live Tables, consulte Tutorial: Execute seu primeiro pipeline do Delta Live Tables.
O que é uma atualização de pipeline?
Os pipelines implantam a infraestrutura e recalculam o estado dos dados quando você inicia uma atualização. Uma atualização faz o seguinte:
- Inicia um cluster com a configuração correta.
- Descobre todas as tabelas e exibições definidas e verifica se há erros de análise, como nomes de colunas inválidos, dependências ausentes e erros de sintaxe.
- Cria ou atualiza tabelas e exibições com os dados mais recentes disponíveis.
Os pipelines podem ser executados continuamente ou em um cronograma, dependendo dos requisitos de custo e latência do seu caso de uso. Consulte Executar uma atualização em um pipeline Delta Live Tables.
Ingerir dados com Delta Live Tables
O Delta Live Tables dá suporte a todas as fontes de dados disponíveis no Azure Databricks.
O Databricks recomenda o uso de tabelas de streaming para a maioria dos casos de uso de ingestão. Para arquivos que chegam no armazenamento de objetos na nuvem, a Databricks recomenda o Auto Loader. Você pode ingerir dados diretamente com o Delta Live Tables da maioria dos barramentos de mensagens.
Para obter mais informações sobre como configurar o acesso ao armazenamento em nuvem, consulte Configuração de armazenamento em nuvem.
Para formatos não suportados pelo Auto Loader, você pode usar Python ou SQL para consultar qualquer formato suportado pelo Apache Spark. Consulte Carregar dados com Delta Live Tables.
Monitorar e impor a qualidade dos dados
Você pode usar expectativas para especificar controles de qualidade de dados no conteúdo de um conjunto de dados. Ao contrário de uma CHECK
restrição em um banco de dados tradicional, que impede a adição de registros que falham na restrição, as expectativas fornecem flexibilidade ao processar dados que não atendem aos requisitos de qualidade de dados. Essa flexibilidade permite que você processe e armazene dados que você espera que sejam confusos e dados que devem atender a rigorosos requisitos de qualidade. Consulte Gerenciar a qualidade dos dados com o Delta Live Tables.
Como o Delta Live Tables e o Delta Lake estão relacionados?
Delta Live Tables estende a funcionalidade do Delta Lake. Como as tabelas criadas e gerenciadas pela Delta Live Tables são tabelas Delta, elas têm as mesmas garantias e recursos fornecidos pela Delta Lake. Veja O que é Delta Lake?.
Delta Live Tables adiciona várias propriedades de tabela, além das muitas propriedades de tabela que podem ser definidas no Delta Lake. Consulte Referência de propriedades do Delta Live Tables e Referência de propriedades da tabela Delta.
Como as tabelas são criadas e gerenciadas pelo Delta Live Tables
O Azure Databricks gerencia automaticamente tabelas criadas com Delta Live Tables, determinando como as atualizações precisam ser processadas para calcular corretamente o estado atual de uma tabela e executando várias tarefas de manutenção e otimização.
Para a maioria das operações, você deve permitir que o Delta Live Tables processe todas as atualizações, inserções e exclusões em uma tabela de destino. Para obter detalhes e limitações, consulte Reter exclusões ou atualizações manuais.
Tarefas de manutenção executadas pela Delta Live Tables
Delta Live Tables executa tarefas de manutenção dentro de 24 horas após uma tabela ser atualizada. A manutenção pode melhorar o desempenho da consulta e reduzir os custos removendo versões antigas das tabelas. Por padrão, o sistema executa uma operação completa de OTIMIZAR seguida de VACUUM. Você pode desabilitar OTIMIZE para uma tabela definindo pipelines.autoOptimize.managed = false
as propriedades da tabela para a tabela. As tarefas de manutenção são executadas somente se uma atualização de pipeline tiver sido executada nas 24 horas anteriores ao agendamento das tarefas de manutenção.
Limitações
Aplicam-se as seguintes limitações:
- Todas as tabelas criadas e atualizadas pelo Delta Live Tables são tabelas Delta.
- As tabelas Delta Live Tables só podem ser definidas uma vez, o que significa que elas só podem ser o destino de uma única operação em todos os pipelines Delta Live Tables.
- As colunas de identidade não são suportadas com tabelas que são o destino e
APPLY CHANGES INTO
podem ser recalculadas durante as atualizações para exibições materializadas. Por esse motivo, o Databricks recomenda o uso de colunas de identidade no Delta Live Tables apenas com tabelas de streaming. Consulte Usar colunas de identidade no Delta Lake. - Um espaço de trabalho do Azure Databricks é limitado a 100 atualizações de pipeline simultâneas.
Para obter uma lista de requisitos e limitações específicos para usar Delta Live Tables com Unity Catalog, consulte Usar o catálogo Unity com seus pipelines Delta Live Tables
Recursos adicionais
- Delta Live Tables tem suporte total na API REST do Databricks. Consulte API DLT.
- Para configurações de pipeline e tabela, consulte Referência de propriedades do Delta Live Tables.
- Referência da linguagem SQL Delta Live Tables.
- Referência da linguagem Python Delta Live Tables.