Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. |