Partilhar via


O que é DLT?

Observação

DLT requer o plano Premium . Entre em contato com sua equipe de conta Databricks para obter mais informações.

DLT é uma estrutura declarativa projetada para simplificar a criação de pipelines de extração, transformação e carga (ETL) confiáveis e fáceis de manter. Você especifica quais dados ingerir e como transformá-los, e a DLT automatiza os principais aspetos do gerenciamento de seu pipeline de dados, incluindo orquestração, gerenciamento de computação, monitoramento, imposição de qualidade de dados e tratamento de erros.

A DLT é construída no Apache Spark, mas em vez de definir seus pipelines de dados usando uma série de tarefas separadas do Apache Spark, você define tabelas de streaming e visualizações materializadas que o sistema deve criar e as consultas necessárias para preencher e atualizar essas tabelas de streaming e exibições materializadas.

Para saber mais sobre os benefícios de criar e executar seus pipelines de ETL com DLT, consulte a página do produto DLT.

benefícios da DLT em comparação com o Apache Spark

O Apache Spark é um mecanismo de análise unificado de código aberto versátil, incluindo ETL. A DLT baseia-se no Spark para lidar com tarefas de processamento de ETL específicas e comuns. A DLT pode acelerar significativamente seu caminho para a produção quando seus requisitos incluem essas tarefas de processamento, incluindo:

  • Ingerir dados de fontes típicas.
  • Transformação incremental de dados.
  • Realização de captura de dados de alteração (CDC).

No entanto, as DLT não são adequadas para implementar alguns tipos de lógica processual. Por exemplo, requisitos de processamento, como gravar em uma tabela externa ou incluir uma condicional que opera em tabelas de banco de dados ou armazenamento de arquivos externos, não podem ser executados dentro do código que define um conjunto de dados DLT. Para implementar o processamento não suportado pela DLT, o Databricks recomenda usar o Apache Spark ou incluir o pipeline em um trabalho do Databricks que executa o processamento em uma tarefa de trabalho separada. Consulte tarefa de pipeline de DLT para trabalhos.

A tabela a seguir compara DLT com Apache Spark:

Capacidade Tecnologia de Registo Distribuído (DLT) Apache Spark
Transformações de dados Você pode transformar dados usando SQL ou Python. Você pode transformar dados usando SQL, Python, Scala ou R.
Processamento incremental de dados Muitas transformações de dados são processadas automaticamente de forma incremental. Você deve determinar quais dados são novos para que possa processá-los incrementalmente.
Orquestração As transformações são orquestradas automaticamente na ordem correta. Você deve certificar-se de que as diferentes transformações sejam executadas na ordem correta.
Paralelismo Todas as transformações são executadas com o nível correto de paralelismo. Você deve usar threads ou um orquestrador externo para executar transformações não relacionadas em paralelo.
Tratamento de erros As falhas são repetidas automaticamente. Você deve decidir como lidar com erros e tentativas.
Monitorização As métricas e eventos são registrados automaticamente. Você deve escrever código para coletar métricas sobre execução ou qualidade de dados.

Conceitos-chave das DLT

A ilustração a seguir mostra os componentes importantes de um pipeline DLT, seguido por uma explicação de cada um.

conceitos-chave DLT.

Tabela de streaming

Uma tabela de streaming é uma tabela Delta que tem um ou mais fluxos escrevendo nela. As tabelas de streaming são comumente usadas para ingestão porque processam dados de entrada exatamente uma vez e podem processar grandes volumes de dados somente de acréscimo. As tabelas de streaming também são úteis para a transformação de baixa latência de fluxos de dados de alto volume.

Visão materializada

Uma vista materializada é uma vista que contém registos pré-calculados com base na consulta que define a vista materializada. Os registos na visualização materializada são automaticamente mantidos atualizados pela DLT, baseados no cronograma de atualização ou nos gatilhos do pipeline. Cada vez que uma vista materializada é atualizada, é garantido que terá os mesmos resultados que executar a consulta definidora sobre os dados mais recentes disponíveis. No entanto, este processo é frequentemente realizado sem recalcular o resultado completo desde o início, usando atualização incremental. Visões materializadas são comumente usadas para transformações.

Visualizações

Todas as exibições no Azure Databricks computam resultados de conjuntos de dados de origem à medida que são consultados, aproveitando otimizações de cache quando disponíveis. A DLT não publica visualizações no catálogo, portanto, as exibições podem ser referenciadas somente no pipeline em que 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.

Gasoduto

Um pipeline é uma coleção de tabelas de streaming e vistas materializadas que são atualizadas juntas. Essas tabelas de streaming e exibições materializadas são declaradas em arquivos de origem Python ou SQL. Um pipeline também inclui uma configuração que define a computação usada para atualizar as tabelas de streaming e as exibições materializadas quando o pipeline é executado. Semelhante a como um modelo Terraform define a infraestrutura em sua conta de nuvem, um pipeline DLT define os conjuntos de dados e transformações para seu processamento de dados.

Como é que os conjuntos de dados DLT processam dados?

A tabela a seguir descreve como visões materializadas, tabelas de streaming e visões processam dados:

Tipo de conjunto de dados Como os registros são processados por meio de consultas definidas?
Tabela de streaming Cada registo é processado exatamente uma vez. Isso pressupõe uma fonte que apenas permite acréscimos.
Visão materializada 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.
Vista 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.

Declare seus primeiros conjuntos de dados em DLT

DLT introduz nova sintaxe para Python e SQL. Para aprender os conceitos básicos da sintaxe de pipeline, consulte Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.

Observação

A DLT separa as definições de conjunto de dados do processamento de atualizações e os blocos de notas DLT não se destinam à execução interativa.

Como configurar pipelines DLT?

As configurações para pipelines DLT se enquadram em duas grandes categorias:

  1. Configurações que definem uma coleção de blocos de anotações ou arquivos (conhecidos como código-fonte) que usam sintaxe DLT para declarar conjuntos de dados.
  2. 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. Estes incluem o seguinte:

  • Para disponibilizar dados fora do pipeline, deve declarar um esquema de destino para publicar no metastore do Hive ou um catálogo de destino e um 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 as fontes de dados e para 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 de referência da linguagem DLT SQL e de referência da linguagem DLT Python .

Para obter mais informações sobre definições e configurações de pipeline, consulte Configurar um pipeline DLT.

Implante seu primeiro pipeline e acione atualizações

Antes de processar dados com DLT, 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 pipelines DLT, consulte Tutorial: Execute o seu primeiro pipeline DLT.

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 segundo um cronograma, dependendo dos requisitos de custo e latência do caso de uso. Consulte Executar uma atualização em um pipeline de DLT.

Ingerir dados com DLT

A DLT 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 integrar dados diretamente com o sistema DLT 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 DLT.

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 restrição de CHECK 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 falham nos 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 as expectativas do pipeline.

DLT amplia a funcionalidade do Delta Lake. Como as tabelas criadas e gerenciadas pela DLT são tabelas Delta, elas têm as mesmas garantias e recursos fornecidos pela Delta Lake. Veja O que é Delta Lake?.

A DLT adiciona várias propriedades de tabela, além das muitas propriedades de tabela que podem ser definidas no Delta Lake. Consulte a referência de propriedades DLT e e a referência de propriedades da tabela Delta e.

Como as tabelas são criadas e gerenciadas pela DLT

O Azure Databricks gerencia automaticamente as tabelas criadas com DLT, 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 a DLT processe todas as atualizações, inserções e exclusões em uma tabela de destino. Para obter detalhes e limitações, consulte Manter exclusões ou atualizações manuais.

Tarefas de manutenção executadas pela DLT

A DLT executa tarefas de manutenção no prazo de 24 horas após a atualização de uma tabela. 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 de OPTIMIZE completa seguida por VACUUM. Você pode desabilitar OPTIMIZE para uma tabela definindo pipelines.autoOptimize.managed = false nas 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.

Delta Live Tables agora é DLT

O produto anteriormente conhecido como Delta Live Tables agora é DLT.

Limitações

Para obter uma lista de limitações, consulte Limitações de DLT.

Para obter uma lista de requisitos e limitações específicos para usar DLT com o Unity Catalog, consulte Usar o Unity Catalog com os seus pipelines de DLT

Recursos adicionais