O que é o Delta Live Tables?
As Tabelas Dinâmicas Delta são uma estrutura declarativa para a criação de pipelines de processamento de dados confiáveis, testáveis e de fácil manutenção. Você define as transformações a serem executadas nos dados e as Tabelas Dinâmicas Delta gerenciam a orquestração de tarefas, o gerenciamento de clusters, o monitoramento, a qualidade dos dados e o tratamento de erro.
Observação
O Delta Live Tables exige o plano Premium. Contate a equipe da sua conta do Databricks para obter mais informações.
Em vez de definir seus pipelines de dados com uma série de tarefas separadas do Apache Spark, é possível definir tabelas de streaming e exibições materializadas que o sistema deve criar e manter atualizado. As Tabelas Dinâmicas Delta gerenciam como os dados são transformados com base nas consultas que você define para cada etapa de processamento. Também é possível impor a qualidade dos dados com as expectativas das Tabelas Dinâmicas Delta, 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 as Tabelas Dinâmicas Delta, consulte a página do produto das Tabelas Dinâmicas Deltas.
O que são conjuntos de dados das Tabelas Dinâmicas Delta?
Conjuntos de dados das Tabelas Dinâmicas Delta são as tabelas de streaming, exibições materializadas e exibiçõ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 streaming | Cada registro é processado exatamente uma vez. Isso pressupõe uma fonte somente acréscimo. |
Exibição materializada | Os registros são processados conforme necessário para retornar resultados precisos para o estado de dados atual. As exibições materializadas devem ser usadas para tarefas de processamento de dados, como transformações, agregações ou consultas lentas de pré-computação e computações usadas com frequência. |
Exibir | Os registros são processados sempre que a exibição é consultada. Use as exibições para as transformações intermediárias e as 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 conjunto de dados a fim de implementar seus requisitos de processamento de dados, consulte Quando usar exibições, exibições materializadas e tabelas de streaming.
Tabela de streaming
Uma tabela de streaming é uma tabela Delta com suporte extra para streaming ou processamento de dados incremental. As tabelas de streaming permitem processar um conjunto de dados em crescimento, tratando 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 de escala maciça, pois os resultados podem ser calculados incrementalmente à medida que novos dados chegam, mantendo os resultados atualizados sem a necessidade de recompor 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.
Observação
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, é possível substituir esse comportamento pelo sinalizador skipChangeCommits.
Exibição materializada
Uma exibição materializada é uma exibição em que os resultados foram pré-compilados. As exibições materializadas são atualizadas de acordo com o agendamento de atualização do pipeline no qual estão contidas. As exibições materializadas são poderosas porque podem lidar com alterações na entrada. Sempre que o pipeline é atualizado, os resultados da consulta são recalculados para refletir alterações em conjuntos de dados upstream que podem ter ocorrido devido à conformidade, correções, agregações ou CDC geral. As Tabelas Dinâmicas Delta implementam exibições materializadas como tabelas Delta, mas abstrai as complexidades associadas à aplicação eficiente de atualizações, permitindo que os usuários se concentrem na gravação de consultas.
Exibições
Todas as exibições no Azure Databricks calculam os resultados de conjuntos de dados de origem à medida que são consultados, aproveitando as otimizações de cache quando disponíveis. As Tabelas Dinâmicas Delta não publicam exibições no catálogo, portanto, as exibições só podem ser referenciadas dentro do pipeline no qual são definidas. As exibiçõ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 exibições para impor restrições de qualidade de dados ou transformar e enriquecer conjuntos de dados que conduzem várias consultas downstream.
Declarar seus primeiros conjuntos de dados nas Tabelas Dinâmicas Delta
As Tabelas Dinâmicas Delta apresentam uma nova sintaxe para Python e SQL. Para saber mais sobre a sintaxe do pipeline, confira Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.
Observação
As Tabelas Dinâmicas Delta separam as definições do conjunto de dados do processamento de atualização e os notebooks das Tabelas Dinâmicas Delta não se destinam à execução interativa. Consulte O que é um pipeline das Tabelas Dinâmicas Delta?.
O que é um pipeline das Tabelas Dinâmicas Delta?
Um pipeline é a unidade principal usada para configurar e executar fluxos de trabalho de processamento de dados com as Tabelas Dinâmicas Delta.
Um pipeline contém exibições materializadas e tabelas de streaming declaradas em arquivos de origem Python ou SQL. As Tabelas Dinâmicas Delta inferem as dependências entre essas tabelas, garantindo que as atualizações ocorram na ordem correta. Para cada conjunto de dados, as Tabelas Dinâmicas Delta comparam o estado atual com o estado desejado e continua a criar ou atualizar conjuntos de dados com métodos de processamento eficientes.
As configurações dos pipelines das Tabelas Dinâmicas Delta se enquadram em duas categorias amplas:
- Configurações que definem uma coleção de notebooks 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 de pipeline, o gerenciamento de dependências, como as atualizações são processadas e como as tabelas são salvas no workspace.
A maioria das configurações é opcional, mas algumas exigem atenção cuidadosa, especialmente ao configurar pipelines de produção. Entre elas estão as seguintes:
- Para disponibilizar dados fora do pipeline, declare um esquema de destino para publicar no metastore do Hive ou em um catálogo de destino e um esquema de destino para publicar no Catálogo do Unity.
- As permissões de acesso a dados são configuradas por meio 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 o Python e o SQL para escrever código-fonte para pipelines, consulte Referência da linguagem SQL das Tabelas Dinâmicas Delta e Referência da linguagem Python das Tabelas Dinâmicas Delta.
Para obter mais informações sobre configurações e configurações de pipeline, consulte Configurar um pipeline de tabelas dinâmicas delta.
Implantar seu primeiro pipeline e disparar atualizações
Antes de processar dados com as Tabelas Dinâmicas Delta, configure um pipeline. Depois que um pipeline é configurado, dispare uma atualização para calcular os resultados de cada conjunto de dados em seu pipeline. Para começar a usar pipelines das Tabelas Dinâmicas Delta, confira o Tutorial: executar seu primeiro pipeline das Tabelas Dinâmicas Delta.
O que é uma atualização de pipeline?
Os pipelines implantam a infraestrutura e recompõem o estado dos dados ao iniciar uma atualização. Uma atualização executa 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 coluna 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 agendamento, dependendo dos requisitos de custo e latência do caso de uso. Confira Executar uma atualização em um pipeline das Tabelas Dinâmicas Delta.
Ingerir dados com Tabelas Dinâmicas Delta
As Tabelas Dinâmicas Delta são compatíveis com 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 ao armazenamento de objetos de nuvem, o Databricks recomenda o Carregador Automático. É possível ingerir dados diretamente com as Tabelas Dinâmicas Delta da maioria dos barramentos de mensagens.
Para obter mais informações sobre como configurar o acesso ao armazenamento em nuvem, consulte Configuração do armazenamento em nuvem.
Para formatos sem suporte do Carregador Automático, use o Python ou o SQL para consultar qualquer formato compatível com o Apache Spark. Consulte Carregar dados com o Delta Live Tables.
Monitorar e impor a qualidade dos dados
Para definir controles de qualidade de dados no conteúdo de um conjunto de dados, use as expectativas. Ao contrário de uma restrição CHECK
em um banco de dados tradicional que impede a adição de quaisquer registros que falhem na restrição, as expectativas fornecem flexibilidade ao processar dados que falham nos requisitos de qualidade de dados. Essa flexibilidade permite processar e armazenar dados que você espera que sejam confusos e dados que devem atender a requisitos estritos de qualidade. Confira Gerenciar a qualidade dos dados com o Delta Live Tables.
Como as Tabelas Dinâmicas Delta e o Delta Lake estão relacionados?
As Tabelas Dinâmicas Delta estendem a funcionalidade do Delta Lake. Como as tabelas criadas e gerenciadas pelas Tabelas Dinâmicas Delta são tabelas Delta, elas têm as mesmas garantias e recursos fornecidos pelo Delta Lake. Veja O que é o Delta Lake?.
As Tabelas Dinâmicas Delta adicionam várias propriedades de tabela, além das muitas propriedades de tabela que podem ser definidas no Delta Lake. Consulte Referência de propriedades das Tabelas Dinâmicas Delta e Referência de propriedades das Tabelas Delta.
Como as tabelas são criadas e gerenciadas pelas Tabelas Dinâmicas Delta
O Azure Databricks gerencia automaticamente as tabelas criadas com as Tabelas Dinâmicas Delta, determinando como as atualizações precisam ser processadas para calcular corretamente o estado atual de uma tabela e executar várias tarefas de manutenção e otimização.
Para a maioria das operações, é necessário permitir que as Tabelas Dinâmicas Delta processem 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 pelas Tabelas Dinâmicas Delta
As Tabelas Dinâmicas Delta executam tarefas de manutenção dentro de 24 horas após a atualização de uma tabela. A manutenção pode melhorar o desempenho da consulta e reduzir o custo removendo versões antigas de tabelas. Por padrão, o sistema executa uma operação OPTIMIZE completa seguida pelo VACUUM. É possível desabilitar OPTIMIZE para uma tabela definindo pipelines.autoOptimize.managed = false
nas propriedades da tabela. As tarefas de manutenção serão executadas somente se uma atualização de pipeline tiver sido executada nas 24 horas antes de as tarefas de manutenção serem agendadas.
Limitações
As seguintes limitações se aplicam:
- Todas as tabelas criadas e atualizadas pelas Tabelas Dinâmicas Delta são Tabelas Delta.
- As consultas de viagem no tempo do Delta Lake têm suporte apenas com tabelas de streaming e não têm suporte com exibições materializadas. Confira Trabalhar com o histórico de tabelas do Delta Lake.
- As tabelas das Tabelas Dinâmicas Delta 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 das Tabelas Dinâmicas Delta.
- Não há suporte para colunas de identidade com tabelas que são o destino de
APPLY CHANGES INTO
e podem ser recomputadas durante atualizações para exibições materializadas. Por esse motivo, o Databricks recomenda o uso de colunas de identidade no Delta Live Tables somente com tabelas de streaming. Consulte Usar colunas de identidade no Delta Lake. - Um workspace do Azure Databricks é limitado a 100 atualizações simultâneas de pipeline.
Para obter uma lista de requisitos e limitações específicos do uso do Delta Live Tables com o Unity Catalog, consulte Usar o Unity Catalog com seus pipelines do Delta Live Tables
Recursos adicionais
- As Tabelas Dinâmicas Delta são totalmente compatíveis com a API REST do Databricks. Consulte API DLT.
- Para configurações de pipeline e tabela, consulte Referência de propriedades das Tabelas Dinâmicas Delta.
- Referência da linguagem SQL das Tabelas Dinâmicas Delta.
- Referência da linguagem Python de Tabelas Dinâmicas Delta.