Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете создать исходный код конвейера Python в предпочтительной интегрированной среде разработки (IDE), запустить его локально для тестирования, а затем проверить, развернуть и запустить обновления в рабочей области Azure Databricks без выхода из локальной среды.
Конвейеры Lakeflow — это супермножество декларативных конвейеров Apache Spark™. Код, использующий только API декларативных конвейеров Apache Spark, выполняется как локально, так и в Azure Databricks, но код, использующий функции, уникальные для конвейеров Lakeflow, таких как AUTO CDC и ожидания, выполняется только в Azure Databricks. Сведения о различиях в возможностях см. в справочнике по языку Python для конвейеров Lakeflow.
Для интерактивной разработки и тестирования в рабочей области Azure Databricks используйте редактор Lakeflow Pipelines. См. статью "Разработка и отладка конвейеров ETL" с помощью редактора конвейеров Lakeflow.
Написание кода конвейера с поддержкой интегрированной среды разработки
Напишите код конвейера с помощью модуля pyspark.pipelines, импортированного как dp:
from pyspark import pipelines as dp
Так как модуль является частью Apache Spark, интегрированная среда разработки предоставляет проверку синтаксиса, автозавершение и проверку типов при написании. Код Декларативных конвейеров Apache Spark обычно выполняется без изменения в Azure Databricks. Выполнение той же команды импорта в конвейере Lakeflow импортирует версию pipelines, используемую в Azure Databricks. Полное справочное руководство по Python для конвейеров Lakeflow см. в справочном руководстве по языку Python для конвейеров Lakeflow.
Логика отдельного преобразования для локального тестирования
Самый эффективный способ сделать код конвейера тестируемым локально — хранить логику преобразования в виде обычных функций PySpark, отдельно от декораторов dp. Функция, которая принимает DataFrame и возвращает DataFrame, не зависит от среды выполнения конвейеров Lakeflow, поэтому её можно модульно тестировать с помощью pytest на своей локальной машине, как и любой другой код Apache Spark. Оставляйте декоративные функции тонкими, чтобы они импортировали логику и называли её:
# transformations/clean.py — pure PySpark, unit-testable on its own
def clean_orders(df):
return df.filter("quantity > 0").withColumn("amount_usd", df.amount.cast("double"))
# pipeline file — a thin dp wrapper that imports and calls the logic
from pyspark import pipelines as dp
from transformations.clean import clean_orders
@dp.table(name="orders_silver")
def orders_silver():
return clean_orders(spark.readStream.table("orders_bronze"))
Вы можете упаковать общую логику в колесо для повторного использования в конвейерах. Для полного прохождения по написанию и запуску юнит-тестов см. раздел Модульное тестирование для конвейеров.
Запустите конвейеры локально для тестирования
Вы также можете локально запускать конвейеры для разработки и тестирования кода, прежде чем запускать его в Azure Databricks. Используйте интерфейс командной spark-pipelines строки для инициализации, проверки и запуска конвейера с помощью локального Apache Spark. См. руководство по программированию декларативных конвейеров Spark в документации по Apache Spark.
Полный конвейер использует три дополнительных уровня тестирования, и два из них можно выполнять локально:
-
Модульные тесты для вашей логики преобразования, запускаемые с помощью
pytestдля обычных функций PySpark, описанных выше. Для них не требуется время выполнения конвейера. См . модульное тестирование конвейеров. -
Проверка (пробный запуск) графа конвейера, исходного кода и ссылок на наборы данных с использованием
spark-pipelinesлокально илиdatabricks pipelines dry-runв рабочей области — без записи данных. - Ожидания, которые оценивают правила качества данных для каждой строки каждого запуска. Поскольку это функция выполнения конвейеров Lakeflow, они работают только на Azure Databricks, а не локально. См. Управление качеством данных, используя ожидания конвейера.
Вы не можете выполнять или тестировать функциональные возможности, относящиеся к конвейерам Lakeflow локально. Сюда входят ожидания и AUTO CDC функции.
Запуск конвейеров в Azure Databricks из локальной среды
Используйте группу databricks pipelines команд для проверки, развертывания и запуска обновлений конвейера в рабочей области непосредственно из терминала:
databricks pipelines init # scaffold a pipeline project
databricks pipelines dry-run # validate the pipeline graph without publishing data
databricks pipelines deploy # deploy the project to your workspace
databricks pipelines run # run an update
Обновления конвейера выполняются в рабочей области Azure Databricks, а не на локальном компьютере, используя вычислительные ресурсы, настроенные для конвейера. Эти команды взаимодействуют с командами bundle декларативных пакетов автоматизации, поэтому вы можете начать с простого проекта и применить конфигурацию пакета и методики CI/CD по мере роста. Сведения об установке и настройке интерфейса командной строки см. в статье "Установка или обновление интерфейса командной строки Databricks". Полный справочник по командам см. в разделе pipelinesгруппа команд. Пошаговое руководство по разработке конвейеров с помощью декларативных пакетов автоматизации.
Синхронизация потока кода из интегрированной среды разработки в рабочую область
В следующей таблице приведены варианты синхронизации исходного кода конвейера между локальной интегрированной среду разработки и рабочей областью Azure Databricks.
| Инструмент или шаблон | Сведения |
|---|---|
Databricks CLI (pipelines группа команд) |
Используйте команды databricks pipelines для развертывания и запуска проекта pipeline из локальной среды. Смотрите pipelines группу команд. |
| Декларативные пакеты автоматизации | Используйте декларативные пакеты автоматизации для развертывания ресурсов конвейера, начиная от одного файла исходного кода до конфигураций для нескольких конвейеров, заданий и файлов исходного кода. См. статью "Преобразование конвейера в проект пакета". |
| Расширение Databricks IDE | Azure Databricks обеспечивает интеграцию с Visual Studio Code, которая включает простую синхронизацию между локальными файлами интегрированной среды разработки и рабочей области. Это расширение также предоставляет средства для использования декларативных пакетов автоматизации для развертывания ресурсов конвейеров. См. расширение Databricks IDE. |
| Файлы рабочей области | Файлы рабочей области Databricks можно использовать для отправки исходного кода конвейера в рабочую область Databricks, а затем импортировать этот код в конвейер. См. раздел " Что такое файлы рабочей области?". |
| Папки Git | Папки Git позволяют синхронизировать код между локальной средой и Azure Databricks рабочей областью с помощью репозитория Git в качестве посредника. См. папки Git Azure Databricks. |