Comparteix via


Procesamiento de datos declarativos frente a procedimientos en Azure Databricks

En este artículo se tratan las diferencias entre la programación declarativa y los procedimientos y su uso en Databricks.

La programación declarativa y de procedimientos son dos paradigmas de programación fundamentales en la informática. Cada uno representa un enfoque diferente para estructurar y ejecutar instrucciones.

  • Con la programación de procedimientos, especifique cómo se deben realizar las tareas mediante la definición de secuencias explícitas de operaciones.
  • La programación declarativa se centra en lo que se debe lograr, dejando el sistema subyacente para determinar la mejor manera de ejecutar la tarea.

Al diseñar canalizaciones de datos, los ingenieros deben elegir entre modelos de procesamiento de datos declarativos y de procedimientos. Esta decisión afecta a la complejidad, el mantenimiento y la eficacia del flujo de trabajo. En esta página se explican las principales diferencias, ventajas y desafíos de estos modelos y cuándo usar cada enfoque.

¿Qué es el procesamiento de datos procedimental?

El procesamiento de datos de procedimientos sigue un enfoque estructurado en el que se definen pasos explícitos para manipular datos. Este modelo está estrechamente alineado con la programación imperativa, haciendo hincapié en una secuencia de comandos que determina cómo se deben procesar los datos.

Características del procesamiento de procedimientos

A continuación se muestran las características del procesamiento de procedimientos:

  • Ejecución paso a paso: el desarrollador define explícitamente el orden de las operaciones.
  • Uso de estructuras de control: bucles, condicionales y funciones administran el flujo de ejecución.
  • Control detallado de recursos: habilita optimizaciones específicas y ajuste manual del rendimiento.
  • Conceptos relacionados: La programación de procedimientos es una subclase de programación imperativa.

Casos de uso comunes para el procesamiento de procedimientos

Los siguientes son casos de uso cotidianos para el procesamiento de procedimientos:

  • Canalizaciones ETL personalizadas que requieren lógica de procedimientos.
  • Optimizaciones de rendimiento de bajo nivel en flujos de trabajo por lotes y streaming.
  • Sistemas heredados o scripts imperativos existentes.

Procesamiento de procedimientos con trabajos de Apache Spark y Lakeflow

Apache Spark sigue principalmente un modelo de procedimientos para el procesamiento de datos. Utilice los trabajos de Lakeflow para agregar lógica de ejecución explícita que defina transformaciones y acciones paso a paso en los datos distribuidos.

¿Qué es el procesamiento de datos declarativos?

El procesamiento declarativo de datos abstrae el modo y se centra en definir el resultado deseado. En lugar de especificar instrucciones paso a paso, los desarrolladores definen la lógica de transformación y el sistema determina el plan de ejecución más eficaz.

Características del procesamiento declarativo

A continuación se muestran las características del procesamiento declarativo:

  • Abstracción de detalles de ejecución: los usuarios describen el resultado deseado, no los pasos para lograrlo.
  • Optimización automática: el sistema aplica el planeamiento de consultas y el ajuste de la ejecución.
  • Complejidad reducida: elimina la necesidad de estructuras de control explícitas, lo que mejora la capacidad de mantenimiento.
  • Conceptos relacionados: La programación declarativa incluye paradigmas de programación funcional y específicos del dominio.

Casos de uso comunes para el procesamiento declarativo

A continuación se muestran casos de uso comunes para el procesamiento declarativo:

  • Transformaciones basadas en SQL en flujos de trabajo por lotes y streaming.
  • Marcos de procesamiento de datos de alto nivel, como canalizaciones.
  • Cargas de trabajo de datos distribuidas escalables que requieren optimizaciones automatizadas.

Procesamiento declarativo con tuberías

Lakeflow Spark Declarative Pipelines es un marco declarativo diseñado para simplificar la creación de canalizaciones de procesamiento de flujos confiables y fáciles de mantener. Al especificar qué datos se van a ingerir y cómo transformarlos, las canalizaciones automatizan los aspectos clave de la administración del procesamiento, incluida la orquestación, la administración de procesos, la supervisión, el cumplimiento de la calidad de los datos y el control de errores.

Diferencias clave: procesamiento procedimental frente a procesamiento declarativo

Aspecto Procesamiento de procedimientos Procesamiento declarativo
Supervisión Control total sobre la ejecución Ejecución controlada por el sistema
Complejidad Puede ser complejo y verboso Generalmente más sencillo y más conciso
Optimización Requiere el ajuste manual El sistema gestiona la optimización
Flexibilidad Alto, pero requiere experiencia Inferior, pero más fácil de usar
Casos de uso Canalizaciones personalizadas, optimización del rendimiento Consultas SQL, canalizaciones administradas

Cuándo elegir procesamiento procedimental o declarativo

En la tabla siguiente se describen algunos de los puntos clave de decisión para el procesamiento de procedimientos y declarativos:

Procesamiento de procedimientos Procesamiento declarativo
Se requiere un control específico sobre la lógica de ejecución. El desarrollo simplificado y el mantenimiento son prioridades.
Las transformaciones implican reglas de negocio complejas que son difíciles de expresar mediante declaración. Las transformaciones basadas en SQL o los flujos de trabajo administrados eliminan la necesidad de control de procedimientos.
Las optimizaciones de rendimiento requieren el ajuste manual. Los marcos de procesamiento de datos, como las canalizaciones, proporcionan optimizaciones integradas.