Pular para o conteúdo principal

O que é DLT?

DLT é uma estrutura declarativa para desenvolver e executar lotes e pipeline de transmissão de dados em SQL e Python. DLT execução no Databricks Runtime otimizado para desempenho (DBR), e os fluxos DLT API usam o mesmo DataFrame API como Apache Spark e transmissão estruturada. Casos de uso comuns para DLT incluem ingestão incremental de dados de fontes como armazenamento em nuvem (como Amazon S3, Azure ADLS Gen2 e Google Cloud Storage) e barramentos de mensagens (como Apache Kafka, Amazon Kinesis, Google Pub/Sub, Azure EventHub e Apache Pulsar), lotes incrementais e transformações de transmissão com operadores sem estado e com estado e processamento de transmissão em tempo real entre armazenamentos transacionais como barramentos de mensagens e bancos de dados.

Quais são os benefícios da DLT?

A natureza declarativa do DLT oferece os seguintes benefícios quando comparado ao pipeline de dados criado com o Apache Spark ou Spark transmissão estruturada usando Databricks Jobs:

  • Orquestração automática : Um DLT pipeline orquestra as etapas de processamento (chamadas de fluxos "" ) automaticamente para garantir a ordem correta de execução e o nível máximo de paralelismo para um desempenho ideal. Além disso, o pipeline DLT repete automaticamente e com eficiência as falhas transitórias. O processo de repetição começa com a unidade mais granular e econômica: a tarefa Spark. Se a nova tentativa no nível da tarefa falhar, a DLT continuará a tentar novamente o fluxo e, por fim, todo o pipeline, se necessário.
  • Processamento declarativo : o site DLT oferece funções declarativas que podem reduzir centenas ou até milhares de linhas de código manual de Spark e transmissão estruturada para apenas algumas linhas. Por exemplo, o Apply Changes API simplifica o processamento de eventos de captura de dados de alterações (CDC) (CDC) com suporte para SCD Tipo 1 e SCD Tipo 2. Isso elimina a necessidade de código manual para lidar com eventos fora de ordem e não requer um entendimento da semântica de transmissão ou de conceitos como marcas d'água. Outro exemplo é o Enzyme, Databricks' mecanismo de processamento incremental para fluxos materializados view. Para usá-lo, o senhor escreve sua lógica de transformações com lotes semânticos, e o Enzyme só processará novos dados e alterações na fonte de dados sempre que possível. O uso do Enzyme reduz o reprocessamento ineficiente quando novos dados ou alterações ocorrem nas fontes e elimina a necessidade de código manual para lidar com o processamento incremental.

Conceitos-chave

O diagrama abaixo ilustra os conceitos mais importantes da DLT.

Um diagrama que mostra como os principais conceitos de DLT se relacionam entre si em um nível muito alto

Um fluxo é o conceito fundamental de processamento de dados em DLT, que suporta tanto a transmissão quanto a semântica de lotes. Um fluxo lê dados de uma fonte, aplica a lógica de processamento definida pelo usuário e grava o resultado em um destino. DLT compartilha alguns dos mesmos tipos de fluxo que a Spark transmissão estructurada: especificamente, os fluxos de transmissão Append , Update e Complete . Para obter mais detalhes, consulte modos de saída na transmissão estruturada.

A DLT também oferece tipos de fluxo adicionais:

  • Apply Change é um fluxo de transmissão exclusivo em DLT que lida com eventos fora de ordem em CDC e é compatível com SCD Tipo 1 e SCD Tipo 2.
  • A visualização materializada é um fluxo de lotes exclusivo em DLT que processa apenas novos dados e alterações nas fontes, sempre que possível.

Uma tabela de transmissão é uma forma de Unity Catalog gerenciar tabela, e é um alvo de transmissão para DLT. Uma tabela de transmissão pode ter um ou mais fluxos de transmissão (Append , Update , Complete , Apply Changes ) gravados nela. Apply Changes (Aplicar alterações ) é um fluxo de transmissão exclusivo que só está disponível para tabelas de transmissão. O senhor pode definir os fluxos de transmissão de forma explícita e separada da tabela de transmissão de destino. O senhor também pode definir fluxos de transmissão implicitamente como parte de uma definição de tabela de transmissão.

Um viewmaterializado também é uma forma de Unity Catalog gerenciar tabela e é um alvo de lotes. Um view materializado pode ter um ou mais fluxos view materializados gravados nele. A visualização materializada difere das tabelas de transmissão porque o senhor sempre define os fluxos implicitamente como parte da definição da view materializada.

Um sink é um destino de transmissão para DLT e atualmente suporta tabelas Delta, tópicos Apache Kafka e tópicos Azure EventHubs. Um sink pode ter um ou mais fluxos de transmissão (Append , Update , Complete ) gravados nele.

Um pipeline é a unidade de desenvolvimento e execução em DLT. O site pipeline pode conter um ou mais fluxos, tabelas de transmissão, visualização materializada e sinks. O senhor usa o DLT definindo fluxos, tabelas de transmissão, visualizações materializadas e sinks em seu código-fonte pipeline e, em seguida, executando o pipeline. Durante a execução do pipeline, ele analisa as dependências dos fluxos definidos, das tabelas de transmissão, da visualização materializada e dos sinks, e orquestra a ordem de execução e a paralelização automaticamente.

DLT para Databricks SQL

DLT Fornece tabelas de transmissão e visualização materializada como dois recursos fundamentais do ETL em Databricks SQL. O senhor pode usar o padrão SQL para criar e refresh transmitir tabelas e visualizações materializadas em Databricks SQL. As tabelas de transmissão e a visualização materializada em Databricks SQL execução na mesma infraestrutura Databricks e têm a mesma semântica de processamento que têm em um DLT pipeline. Quando o senhor usa tabelas de transmissão e visualizações materializadas em Databricks SQL, os fluxos são definidos implicitamente como parte da definição das tabelas de transmissão e visualizações materializadas.

Mais informações