Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Процедурное и декларативное программирование — это две основные парадигмы программирования в компьютерной науке. Каждый представляет собой другой подход к структурированию и выполнению инструкций.
- С помощью процедурного программирования вы указываете, как должны выполняться задачи, определяя явные последовательности операций.
- Декларативное программирование фокусируется на том, что необходимо достичь, оставляя базовую систему, чтобы определить лучший способ выполнения задачи.
При проектировании конвейеров данных инженеры должны выбирать между процедурными и декларативными моделями обработки данных. Это решение влияет на сложность рабочего процесса, удобство обслуживания и эффективность.
Что такое процедурная обработка данных?
Обработка процедурных данных выполняет структурированный подход, в котором явные шаги определяются для управления данными. Эта модель тесно согласуется с императивным программированием, подчеркивая последовательность команд, которая определяет способ обработки данных.
Характеристики процедурной обработки
Ниже приведены характеристики процедурной обработки:
- Пошаговое выполнение. Разработчик явно определяет порядок операций.
- Использование структур управления: циклы, условные условия и функции управления потоком выполнения.
- Детальное управление ресурсами: обеспечивает тонкие оптимизации и ручную настройку производительности.
- Связанные понятия: процедурное программирование является подклассом императивного программирования.
Распространенные варианты использования процедурной обработки
Ниже приведены повседневные варианты использования для процедурной обработки:
- Пользовательские конвейеры данных ETL, требующие процедурной логики.
- Оптимизация низкоуровневой производительности в рабочих процессах пакетной и потоковой передачи.
- Устаревшие системы или существующие императивные скрипты.
Процедурная обработка с помощью заданий Apache Spark и Lakeflow
Apache Spark в основном следует процедурной модели обработки данных. Используйте задания Lakeflow, чтобы добавить явную логику выполнения, чтобы определить пошаговые преобразования и действия в распределенных данных.
Что такое декларативная обработка данных?
Декларативная обработка данных абстрагирует способ и фокусируется на определении требуемого результата. Вместо указания пошаговые инструкции разработчики определяют логику преобразования, а система определяет наиболее эффективный план выполнения.
Характеристики декларативной обработки
Ниже приведены характеристики декларативной обработки:
- Абстракция сведений о выполнении: пользователи описывают нужный результат, а не шаги по его достижению.
- Автоматическая оптимизация: система применяет планирование запросов и настройку выполнения.
- Сокращенная сложность. Удаляет необходимость явных структур управления, повышая удобство обслуживания.
- Связанные понятия: декларативное программирование включает в себя парадигмы программирования для конкретного домена и функционального программирования.
Распространенные варианты использования декларативной обработки
Ниже приведены распространенные варианты использования для декларативной обработки:
- Преобразования на основе SQL в рабочих процессах пакетной и потоковой передачи.
- Высокоуровневые платформы обработки данных, такие как конвейеры.
- Масштабируемые распределенные рабочие нагрузки данных, требующие автоматической оптимизации.
Декларативная обработка с помощью конвейеров
Конвейеры Lakeflow основаны на декларативных конвейерах Apache Spark™ (SDP), декларативной платформе, предназначенной для упрощения создания надежных и поддерживаемых конвейеров потоковой обработки. Задав данные для приема и преобразования, конвейеры автоматизируют ключевые аспекты управления обработкой, включая оркестрацию, управление вычислениями, мониторинг, применение качества данных и обработку ошибок.
Основные различия: процедурная и декларативная обработка
| Аспект | Процедурная обработка | Декларативная обработка |
|---|---|---|
| Контроль | Полный контроль над выполнением | Выполнение, обработанное системой |
| Сложность | Может быть сложным и подробным | Как правило, проще и кратче |
| Оптимизация | Требуется настройка вручную | Система управляет оптимизацией |
| Гибкость | Высокий, но требует опыта | Ниже, но проще использовать |
| Варианты использования | Кастомные конвейеры, оптимизация производительности | SQL-запросы, управляемые конвейеры |
Выбор процедурной или декларативной обработки
В следующей таблице описаны некоторые ключевые моменты принятия решений для процедурной и декларативной обработки:
| Процедурная обработка | Декларативная обработка |
|---|---|
| Требуется точное управление логикой выполнения. | Упрощенная разработка и обслуживание являются приоритетами. |
| Преобразования включают сложные бизнес-правила, которые трудно выразить декларативно. | Преобразования на основе SQL или управляемые рабочие процессы устраняют необходимость в процедурном управлении. |
| Оптимизация производительности требует настройки вручную. | Платформы обработки данных, такие как конвейеры, обеспечивают встроенную оптимизацию. |