Compartilhar via


Processamento de dados declarativos versus processual no Azure Databricks

Este artigo aborda as diferenças entre programação processual e declarativa e seu uso no Databricks.

A programação processual e declarativa são dois paradigmas fundamentais de programação na ciência da computação. Cada um representa uma abordagem diferente para estruturar e executar instruções.

  • Com a programação de procedimento, você especifica como as tarefas devem ser realizadas definindo sequências explícitas de operações.
  • A programação declarativa concentra-se no que precisa ser alcançado, deixando o sistema subjacente para determinar a melhor maneira de executar a tarefa.

Ao projetar pipelines de dados, os engenheiros devem escolher entre modelos de processamento de dados processuais e declarativos. Essa decisão afeta a complexidade, a manutenção e a eficiência do fluxo de trabalho. Esta página explica as principais diferenças, vantagens e desafios desses modelos e quando usar cada abordagem.

O que é o processamento de dados processuais?

O processamento de dados processuais segue uma abordagem estruturada em que etapas explícitas são definidas para manipular dados. Esse modelo está intimamente alinhado com a programação imperativa, enfatizando uma sequência de comandos que determina como os dados devem ser processados.

Características do processamento processual

Veja a seguir as características do processamento processual:

  • Execução passo a passo: o desenvolvedor define explicitamente a ordem das operações.
  • Uso de estruturas de controle: Laços, condicionais e funções gerenciam o fluxo de execução.
  • Controle detalhado de recursos: habilita otimizações refinadas e ajuste manual de desempenho.
  • Conceitos relacionados: a programação processual é uma sub-classe de programação imperativa.

Casos de uso comuns para processamento de procedimento

Veja a seguir casos de uso diários para processamento de procedimentos:

  • Pipelines ETL personalizados que exigem lógica de procedimento.
  • Otimizações de desempenho de baixo nível em fluxos de trabalho em lote e streaming.
  • Sistemas herdados ou scripts imperativos existentes.

Processamento procedural com Trabalhos do Apache Spark e Lakeflow

O Apache Spark segue principalmente um modelo de procedimento para processamento de dados. Utilize Tarefas do Lakeflow para adicionar lógica de execução explícita, definindo transformações e ações passo a passo em dados distribuídos.

O que é o processamento de dados declarativos?

O processamento declarativo de dados abstrai como e se concentra na definição do resultado desejado. Em vez de especificar instruções passo a passo, os desenvolvedores definem a lógica de transformação e o sistema determina o plano de execução mais eficiente.

Características do processamento declarativo

Veja a seguir as características do processamento declarativo:

  • Abstração dos detalhes de execução: os usuários descrevem o resultado desejado, não as etapas para alcançá-lo.
  • Otimização automática: o sistema aplica o planejamento de consulta e o ajuste de execução.
  • Complexidade reduzida: remove a necessidade de estruturas de controle explícitas, melhorando a manutenção.
  • Conceitos relacionados: a programação declarativa inclui paradigmas de programação funcionais e específicos do domínio.

Casos de uso comuns para processamento declarativo

Veja a seguir casos de uso comuns para processamento declarativo:

  • Transformações baseadas em SQL em fluxos de trabalho em lote e streaming.
  • Estruturas de processamento de dados de alto nível, como pipelines.
  • Cargas de trabalho de dados distribuídas escalonáveis que exigem otimizações automatizadas.

Processamento declarativo com pipelines

O Lakeflow Spark Declarative Pipelines é uma estrutura declarativa projetada para simplificar a criação de pipelines de processamento de streams confiáveis e manteníveis. Ao especificar quais dados ingerir e como transformá-los, os pipelines automatizam os principais aspectos do gerenciamento de processamento, incluindo orquestração, gerenciamento de computação, monitoramento, imposição de qualidade de dados e tratamento de erros.

Principais diferenças: processual versus processamento declarativo

Aspecto Processamento de procedimento Processamento declarativo
Controle Controle total sobre a execução Execução tratada pelo sistema
Complexidade Pode ser complexo e detalhado Geralmente mais simples e mais conciso
Optimização Requer ajuste manual O sistema manipula a otimização
Flexibilidade Alto, mas requer experiência Menor, mas mais fácil de usar
Casos de uso Pipelines personalizados, ajuste de desempenho Consultas SQL, pipelines gerenciados

Quando escolher o processamento processual ou declarativo

A tabela a seguir descreve alguns dos principais pontos de decisão para processamento processual e declarativo:

Processamento de procedimento Processamento declarativo
O controle refinado sobre a lógica de execução é necessário. Desenvolvimento e manutenção simplificados são prioridades.
As transformações envolvem regras de negócios complexas que são difíceis de expressar declarativamente. Transformações baseadas em SQL ou fluxos de trabalho gerenciados eliminam a necessidade de controle processual.
As otimizações de desempenho exigem ajuste manual. Estruturas de processamento de dados, como pipelines, fornecem otimizações internas.