Conceitos de pipeline declarativoLakeFlow
Aprenda o que é o pipeline declarativo LakeFlow , os principais conceitos (como pipeline, tabelas de transmissão e visualização materializada) que o definem, os relacionamentos entre esses conceitos e os benefícios de usá-lo no seu fluxo de trabalho de processamento de dados.
O que é o pipeline declarativo LakeFlow ?
LakeFlow Declarative pipeline é uma estrutura declarativa para desenvolver e executar lotes e pipelines de transmissão de dados em SQL e Python. A execução do pipeline declarativo LakeFlow no Databricks Runtime (DBR) com desempenho otimizado e a API flows
do pipeline declarativo LakeFlow usam a mesma API DataFrame que Apache Spark e a transmissão estruturada. Casos de uso comuns para o pipeline declarativo LakeFlow incluem coleta incremental de dados de fontes como armazenamento cloud (incluindo 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 com e sem estado, e processamento de transmissão real entre armazenamentos transacionais como barramentos de mensagens e bancos de dados.
Para mais detalhes sobre processamento de dados declarativos, consulte Processamento de dados procedural vs. declarativo no Databricks.
Quais são os benefícios do pipeline declarativo LakeFlow ?
A natureza declarativa do LakeFlow pipeline declarativo fornece os seguintes benefícios em comparação ao desenvolvimento de pipelines de dados com as Apache Spark e Spark APIs e sua execução com o Databricks Runtime usando orquestração manual via LakeFlow Jobs.
- Orquestração automática : O pipeline declarativo LakeFlow orquestra o processamento dos passos (chamados "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 declarativo LakeFlow tenta novamente falhas transitórias de forma automática e eficiente. O processo de nova tentativa começa com a unidade mais granular e econômica: a tarefa Spark. Se a nova tentativa no nível da tarefa falhar, o pipeline declarativo LakeFlow continuará tentando o fluxo novamente e, finalmente, todo o pipeline , se necessário.
- Processamento declarativo : o pipeline declarativo LakeFlow fornece funções declarativas que podem reduzir centenas ou até milhares de linhas de código Spark manual e transmissão estruturada para apenas algumas linhas. A APIAUTO CDC do pipeline declarativo LakeFlow simplifica o processamento de eventos de captura de dados de alterações (CDC) com suporte para SCD Tipo 1 e SCD Tipo 2. Ela elimina a necessidade de código manual para lidar com eventos fora de ordem e não exige compreensão de semântica de transmissão ou conceitos como marcas d'água.
- Processamento incremental : o pipeline declarativo LakeFlow fornece um mecanismo de processamento incremental para visualização materializada. Para usá-lo, você escreve sua lógica de transformações com muita semântica, e o mecanismo processará apenas novos dados e alterações na fonte de dados sempre que possível. O processamento incremental 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 do pipeline declarativo LakeFlow .
Fluxos
Um fluxo é o conceito fundamental de processamento de dados no pipeline declarativo LakeFlow , que oferece suporte à semântica de transmissão e lotes. Um fluxo lê dados de uma origem, aplica lógica de processamento definida pelo usuário e grava o resultado em um destino. O pipeline declarativo LakeFlow compartilha o mesmo tipo de fluxo de transmissão ( Append , Update , Complete ) que Spark transmissão estructurada. (Atualmente, apenas o fluxo Append é exposto.) Para mais detalhes, veja modos de saída em transmissão estructurada.
O pipeline declarativo LakeFlow também fornece tipos de fluxo adicionais:
- AUTO CDC é um fluxo de transmissão exclusivo no pipeline declarativo LakeFlow que lida com eventos CDC fora de ordem e oferece suporte ao SCD Tipo 1 e SCD Tipo 2.
- A visualização materializada é um fluxo de lotes exclusivo no pipeline declarativo LakeFlow que processa apenas novos dados e alterações nas tabelas de origem sempre que possível.
Para mais detalhes, consulte:
tabelas de transmissão
Uma tabela de transmissão é uma forma de tabela de gerenciamento Unity Catalog que também é um alvo de transmissão para o pipeline declarativo LakeFlow . Uma tabela de transmissão pode ter um ou mais fluxos de transmissão ( Append , AUTO CDC ) gravados nela. AUTO CDC é um fluxo de transmissão exclusivo disponível apenas para tabelas de transmissão. Você pode definir fluxos de transmissão explicitamente e separadamente de sua tabela de transmissão de destino. Você também pode definir fluxos de transmissão implicitamente como parte de uma definição de tabela de transmissão.
Para mais detalhes, consulte:
Visão materializada
Uma viewmaterializada também é uma forma de tabela de gerenciamento Unity Catalog e é um alvo de lotes. Uma view materializada pode ter um ou mais fluxos de view materializada gravados nela. A visualização materializada difere das tabelas de transmissão porque você sempre define os fluxos implicitamente como parte da definição da view materializada.
Para mais detalhes, consulte:
Pias
Um coletor é um destino de transmissão para o pipeline declarativo LakeFlow e atualmente oferece suporte a tabelas Delta , tópicos Apache Kafka e tópicos Azure EventHubs. Um coletor pode ter um ou mais fluxos de transmissão ( Append ) gravados nele.
Para mais detalhes, consulte:
gasoduto
Um pipeline é a unidade de desenvolvimento e execução no pipeline declarativo LakeFlow . Um pipeline pode conter um ou mais fluxos, tabelas de transmissão, visualizações materializadas e coletores. Você usa o pipeline declarativo LakeFlow definindo fluxos, tabelas de transmissão, visualizações materializadas e coletores no código-fonte do pipeline e, em seguida, executando o pipeline. Enquanto seu pipeline é executado, ele analisa as dependências dos seus fluxos definidos, tabelas de transmissão, visualizações materializadas e coletores, e orquestra sua ordem de execução e paralelização automaticamente.
Para mais detalhes, consulte:
Pipeline declarativoDatabricks SQL para LakeFlow
O pipeline declarativo LakeFlow fornece tabelas de transmissão e visualização materializada como dois recursos ETL fundamentais no Databricks SQL. Você pode usar SQL padrão para criar e refresh tabelas de transmissão e visualizações materializadas no Databricks SQL. tabelas de transmissão e visualização materializada na execução Databricks SQL na mesma infraestrutura Databricks e têm a mesma semântica de processamento que no pipeline declarativo LakeFlow . Quando você usa tabelas de transmissão e visualização materializada no Databricks SQL, os fluxos são definidos implicitamente como parte das tabelas de transmissão e da definição de visualização materializada.
Para mais detalhes, consulte: