Partilhar via


Conceitos de Lakeflow Spark Declarative Pipelines

Saiba o que é o Lakeflow Spark Declarative Pipelines (SDP), os principais conceitos (como pipelines, tabelas de streaming e exibições materializadas) que o definem, as relações entre esses conceitos e os benefícios de usá-lo em seus fluxos de trabalho de processamento de dados.

Observação

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

O que é SDP?

Lakeflow Spark Declarative Pipelines é uma estrutura declarativa para desenvolver e executar pipelines de dados em lote e streaming em SQL e Python. O Lakeflow SDP se estende e é interoperável com o Apache Spark Declarative Pipelines, enquanto é executado no Databricks Runtime com desempenho otimizado, e a API Lakeflow Spark Declarative Pipelines flows usa a mesma API DataFrame que o Apache Spark e o Structured Streaming. Os casos de uso comuns do SDP incluem ingestão incremental de dados de fontes como armazenamento em nuvem (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), transformações incrementais em lote e streaming com operadores sem monitoração de estado e com monitoração de estado, e processamento de fluxo em tempo real entre armazenamentos transacionais, como barramentos de mensagens e bancos de dados.

Para obter mais detalhes sobre o processamento de dados declarativos, consulte Processamento de dados processuais versus declarativos no Databricks.

Quais são os benefícios do SDP?

A natureza declarativa do SDP fornece os seguintes benefícios em comparação com o desenvolvimento de processos de dados com as APIs Apache Spark e Spark Structured Streaming e executá-los com o Databricks Runtime usando orquestração manual via Lakeflow Jobs.

  • Orquestração automática: O SDP 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, os pipelines repetem falhas transitórias de forma automática e eficiente. O processo de repetição começa com a unidade mais granular e econômica: a tarefa Spark. Se a nova tentativa ao nível da tarefa falhar, o SDP procede com uma nova tentativa do fluxo e, finalmente, de todo o pipeline, se necessário.
  • Processamento declarativo: o SDP fornece funções declarativas que podem reduzir centenas ou até milhares de linhas de código manual do Spark e do Structured Streaming para apenas algumas linhas. A API SDP AUTO CDC simplifica o processamento de eventos CDC (Change Data Capture) com suporte para SCD Tipo 1 e SCD Tipo 2. Ele elimina a necessidade de código manual para lidar com eventos fora de ordem e não requer uma compreensão da semântica de streaming ou conceitos como marcas d'água.
  • Processamento incremental: o SDP fornece um mecanismo de processamento incremental para exibições materializadas. Para usá-lo, você escreve sua lógica de transformação com semântica em lote, e o mecanismo só processará novos dados e alterações nas fontes 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 de Lakeflow Spark Declarative Pipelines.

Um diagrama que mostra como os conceitos centrais do SDP se relacionam entre si a um nível muito elevado

Flows

Um fluxo é um conceito básico de processamento de dados no SDP que suporta a semântica de transmissão e a semântica de processamento em lote. Um fluxo lê dados de uma fonte, aplica a lógica de processamento definida pelo usuário e grava o resultado em um destino. O SDP compartilha o mesmo tipo de fluxo de streaming (Append, Update, Complete) que o Spark Structured Streaming. (Atualmente, apenas o fluxo Append está exposto.) Para obter mais detalhes, consulte Modos de saída em Streaming estruturado.

Lakeflow Spark Declarative Pipelines também fornece tipos de fluxo adicionais:

  • AUTO CDC é um fluxo de streaming exclusivo no Lakeflow SDP que lida com eventos CDC fora de ordem e suporta SCD Tipo 1 e SCD Tipo 2. Auto CDC não está disponível no Apache Spark Declarative Pipelines.
  • A visão materializada é um fluxo em lote no SDP que processa apenas novos dados e alterações nas tabelas de origem sempre que possível.

Para mais pormenores, consulte:

Tabelas de streaming

Uma tabela de streaming é uma forma de tabela gerenciada pelo Unity Catalog que também é um destino de streaming para o Lakeflow SDP. Uma tabela de streaming pode ter um ou mais fluxos de streaming (Append, AUTO CDC) gravados nela. AUTO CDC é um fluxo de streaming exclusivo que só está disponível para tabelas de streaming no Databricks. Você pode definir fluxos de streaming explicitamente e separadamente de sua tabela de streaming de destino. Você também pode definir fluxos de streaming implicitamente como parte de uma definição de tabela de streaming.

Para mais pormenores, consulte:

Visões materializadas

Uma exibição materializada também é uma forma de tabela gerenciada pelo Unity Catalog e é um destino em lote. Uma visão materializada pode ter um ou mais fluxos de visão materializados escritos nela. As visualizações materializadas diferem das tabelas de streaming na medida em que você sempre define os fluxos implicitamente como parte da definição de exibição materializada.

Para mais pormenores, consulte:

Sinks

Um sink é um alvo de streaming para um pipeline e suporta tabelas Delta, tópicos Apache Kafka, tópicos Azure EventHubs e fontes de dados personalizadas em Python. Um coletor pode ter um ou mais fluxos de streaming (Append) gravados nele.

Para mais pormenores, consulte:

Tubulações

Um pipeline é a unidade de desenvolvimento e execução em Lakeflow Spark Declarative Pipelines. Um pipeline pode conter um ou mais fluxos, tabelas de streaming, exibições materializadas e coletores. Você usa o SDP definindo fluxos de dados, tabelas de streaming, vistas materializadas e coletores no código-fonte do pipeline e, em seguida, executando o pipeline. Enquanto o pipeline é executado, ele analisa as dependências de seus fluxos definidos, tabelas de streaming, exibições materializadas e coletores, e orquestra sua ordem de execução e paralelização automaticamente.

Para mais pormenores, consulte:

Pipelines SQL do Databricks

Tabelas de streaming e exibições materializadas são dois recursos fundamentais no Databricks SQL. Você pode usar SQL padrão para criar e atualizar tabelas de streaming e exibições materializadas no Databricks SQL. Tabelas de streaming e exibições materializadas no Databricks SQL são executadas na mesma infraestrutura do Azure Databricks e têm a mesma semântica de processamento que no Lakeflow Spark Declarative Pipelines. Quando você usa tabelas de streaming e exibições materializadas no Databricks SQL, os fluxos são definidos implicitamente como parte das tabelas de streaming e da definição de exibições materializadas.

Para mais pormenores, consulte:

Mais informações