Partilhar via


Processamento de dados processuais versus declarativos 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 de programação fundamentais na ciência da computação. Cada um representa uma abordagem diferente para estruturar e executar instruções.

  • Com a programação de procedimentos, 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 manutenibilidade 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 tratamento de dados processuais?

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

Características do tratamento processual

São características do processamento processual:

  • Execução passo a passo: O desenvolvedor define explicitamente a ordem das operações.
  • Uso de estruturas de controle: Loops, condicionais e funções gerenciam o fluxo de execução.
  • Controle detalhado de recursos: Permite otimizações refinadas e ajuste manual de desempenho.
  • Conceitos relacionados: A programação processual é uma subclasse da programação imperativa.

Casos de uso comuns para processamento processual

A seguir estão os casos de uso diário para processamento processual:

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

Processamento de procedimentos com Apache Spark e Lakeflow Jobs

O Apache Spark segue principalmente um modelo processual para processamento de dados. Use Lakeflow Jobs para adicionar lógica de execução explícita para definir transformações e ações passo a passo em dados distribuídos.

O que é o tratamento declarativo de dados?

O processamento declarativo de dados abstrai o 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

São características do processamento declarativo as seguintes:

  • Abstração dos detalhes da 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 consultas e ajuste de execução.
  • Complexidade reduzida: elimina a necessidade de estruturas de controle explícitas, melhorando a capacidade de 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

A seguir estão os 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 escaláveis e distribuídas que exigem otimizações automatizadas.

Processamento declarativo com pipelines

Lakeflow Spark Declarative Pipelines é uma estrutura declarativa projetada para simplificar a criação de pipelines de processamento de fluxo confiáveis e sustentáveis. Ao especificar quais dados ingerir e como transformá-los, os pipelines automatizam os principais aspetos 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

Aspeto Tratamento processual Processamento declarativo
Controlo Controlo total sobre a execução Execução tratada pelo sistema
Complexidade Pode ser complexo e detalhado Geralmente mais simples e conciso
Otimização Requer ajuste manual O sistema lida com a otimização
Flexibilidade Alto, mas requer experiência Mais baixo, mas mais fácil de usar
Casos de uso Pipelines personalizados, ajuste de desempenho Consultas SQL, pipelines gerenciados

Quando escolher o tratamento processual ou declarativo

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

Tratamento processual Processamento declarativo
É necessário um controle refinado sobre a lógica de execução. 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 de procedimentos.
As otimizações de desempenho requerem ajuste manual. Estruturas de processamento de dados, como pipelines, fornecem otimizações integradas.