Процедурная и декларативная обработка данных в Azure Databricks

Процедурное и декларативное программирование — это две основные парадигмы программирования в компьютерной науке. Каждый представляет собой другой подход к структурированию и выполнению инструкций.

  • С помощью процедурного программирования вы указываете, как должны выполняться задачи, определяя явные последовательности операций.
  • Декларативное программирование фокусируется на том, что необходимо достичь, оставляя базовую систему, чтобы определить лучший способ выполнения задачи.

При проектировании конвейеров данных инженеры должны выбирать между процедурными и декларативными моделями обработки данных. Это решение влияет на сложность рабочего процесса, удобство обслуживания и эффективность.

Что такое процедурная обработка данных?

Обработка процедурных данных выполняет структурированный подход, в котором явные шаги определяются для управления данными. Эта модель тесно согласуется с императивным программированием, подчеркивая последовательность команд, которая определяет способ обработки данных.

Характеристики процедурной обработки

Ниже приведены характеристики процедурной обработки:

  • Пошаговое выполнение. Разработчик явно определяет порядок операций.
  • Использование структур управления: циклы, условные условия и функции управления потоком выполнения.
  • Детальное управление ресурсами: обеспечивает тонкие оптимизации и ручную настройку производительности.
  • Связанные понятия: процедурное программирование является подклассом императивного программирования.

Распространенные варианты использования процедурной обработки

Ниже приведены повседневные варианты использования для процедурной обработки:

  • Пользовательские конвейеры данных ETL, требующие процедурной логики.
  • Оптимизация низкоуровневой производительности в рабочих процессах пакетной и потоковой передачи.
  • Устаревшие системы или существующие императивные скрипты.

Процедурная обработка с помощью заданий Apache Spark и Lakeflow

Apache Spark в основном следует процедурной модели обработки данных. Используйте задания Lakeflow, чтобы добавить явную логику выполнения, чтобы определить пошаговые преобразования и действия в распределенных данных.

Что такое декларативная обработка данных?

Декларативная обработка данных абстрагирует способ и фокусируется на определении требуемого результата. Вместо указания пошаговые инструкции разработчики определяют логику преобразования, а система определяет наиболее эффективный план выполнения.

Характеристики декларативной обработки

Ниже приведены характеристики декларативной обработки:

  • Абстракция сведений о выполнении: пользователи описывают нужный результат, а не шаги по его достижению.
  • Автоматическая оптимизация: система применяет планирование запросов и настройку выполнения.
  • Сокращенная сложность. Удаляет необходимость явных структур управления, повышая удобство обслуживания.
  • Связанные понятия: декларативное программирование включает в себя парадигмы программирования для конкретного домена и функционального программирования.

Распространенные варианты использования декларативной обработки

Ниже приведены распространенные варианты использования для декларативной обработки:

  • Преобразования на основе SQL в рабочих процессах пакетной и потоковой передачи.
  • Высокоуровневые платформы обработки данных, такие как конвейеры.
  • Масштабируемые распределенные рабочие нагрузки данных, требующие автоматической оптимизации.

Декларативная обработка с помощью конвейеров

Конвейеры Lakeflow основаны на декларативных конвейерах Apache Spark™ (SDP), декларативной платформе, предназначенной для упрощения создания надежных и поддерживаемых конвейеров потоковой обработки. Задав данные для приема и преобразования, конвейеры автоматизируют ключевые аспекты управления обработкой, включая оркестрацию, управление вычислениями, мониторинг, применение качества данных и обработку ошибок.

Основные различия: процедурная и декларативная обработка

Аспект Процедурная обработка Декларативная обработка
Контроль Полный контроль над выполнением Выполнение, обработанное системой
Сложность Может быть сложным и подробным Как правило, проще и кратче
Оптимизация Требуется настройка вручную Система управляет оптимизацией
Гибкость Высокий, но требует опыта Ниже, но проще использовать
Варианты использования Кастомные конвейеры, оптимизация производительности SQL-запросы, управляемые конвейеры

Выбор процедурной или декларативной обработки

В следующей таблице описаны некоторые ключевые моменты принятия решений для процедурной и декларативной обработки:

Процедурная обработка Декларативная обработка
Требуется точное управление логикой выполнения. Упрощенная разработка и обслуживание являются приоритетами.
Преобразования включают сложные бизнес-правила, которые трудно выразить декларативно. Преобразования на основе SQL или управляемые рабочие процессы устраняют необходимость в процедурном управлении.
Оптимизация производительности требует настройки вручную. Платформы обработки данных, такие как конвейеры, обеспечивают встроенную оптимизацию.