Поделиться через


Разработка конвейеров DLT с помощью пакетов ресурсов Databricks

Пакеты активов Databricks, также известные как пакеты, позволяют программно проверять, развертывать и запускать ресурсы Azure Databricks, такие как DLT-конвейеры. См. раздел "Что такое пакеты ресурсов Databricks?".

В этой статье описывается, как создать пакет для программного управления конвейером. См. Что такое DLT?. Пакет создается с использованием шаблона пакета ресурсов Databricks по умолчанию для Python, который содержит записную книжку вместе с определением конвейера и задания для её выполнения. Затем вы проверяете, развертываете и запускаете развернутый конвейер в рабочей области Azure Databricks.

Совет

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

Требования

(Необязательно) Установка модуля Python для поддержки разработки локальных конвейеров

Databricks предоставляет модуль Python для поддержки локальной разработки кода конвейера DLT, предоставляя проверку синтаксиса, автозавершение и проверку типов данных при написании кода в интегрированной среде разработки.

Модуль Python для локальной разработки доступен в PyPi. Сведения об установке модуля см. в разделе заглушки Python дляDLT.

Создание пакета с помощью шаблона проекта

Создайте пакет с помощью шаблона пакета azure Databricks по умолчанию для Python. Этот шаблон состоит из записной книжки, которая определяет конвейер DLT, который фильтрует данные из исходного набора данных. Дополнительные сведения о шаблонах пакетов см. в разделе "Шаблоны проектов пакета ресурсов Databricks".

Если вы хотите создать пакет с нуля, см . статью "Создание пакета вручную".

Шаг 1. Настройка проверки подлинности

На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать проверку подлинности OAuth от пользователя к машине (U2M) и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT для проверки подлинности.

Примечание.

Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать аутентификацию OAuth «машина-машина» (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".

  1. Используйте CLI Databricks для локального запуска управления токенами OAuth, выполнив следующую команду для каждого целевого рабочего пространства.

    Во следующей команде замените <workspace-url> на URL-адрес вашей рабочей области Azure Databricks, например https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите, Enter чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.

    Чтобы получить список существующих профилей в отдельном терминале или командной строке, используйте интерфейс командной строки Databricks для выполнения команды databricks auth profiles. Чтобы просмотреть существующие параметры конкретного профиля, выполните команду databricks auth env --profile <profile-name>.

  3. В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.

  4. Чтобы просмотреть текущее значение маркера OAuth профиля и метку времени окончания срока действия маркера, выполните одну из следующих команд:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Если у вас есть несколько профилей с одинаковым значением --host, может потребоваться указать параметры --host и -p вместе, чтобы помочь Databricks CLI найти правильные данные о соответствии маркера OAuth.

Шаг 2. Создание пакета

Инициализация пакета с помощью шаблона проекта пакета Python по умолчанию.

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

  2. Используйте CLI Databricks, чтобы выполнить команду bundle init.

    databricks bundle init
    
  3. Для Template to use оставьте значение по умолчанию default-python, нажав кнопку Enter.

  4. Оставьте значение по умолчанию параметра my_project, либо введите другое значение, а затем нажмите Enter. Это определяет имя корневого каталога для этого пакета. Этот корневой каталог создается в текущем рабочем каталоге.

  5. Для Include a stub (sample) notebookвыберите no и нажмите клавишу Enter. При этом интерфейс командной строки Databricks не добавляет пример записной книжки на данный момент, так как пример записной книжки, связанной с этим параметром, не имеет в нем кода DLT.

  6. Для Include a stub (sample) DLT pipeline оставьте значение yes по умолчанию, нажав Enter. Это указывает интерфейсу командной строки Databricks добавить пример записной книжки с кодом DLT.

  7. Для Include a stub (sample) Python packageвыберите no и нажмите клавишу Enter. Это команда для интерфейса командной строки Databricks, чтобы не добавлять образцы файлов пакета Python wheel или связанные инструкции по сборке в ваш пакет.

Шаг 3. Изучение пакета

Чтобы просмотреть файлы, созданные шаблоном, переключитесь в корневой каталог созданного пакета. К файлам, интересующим особый интерес, относятся следующие:

  • databricks.yml: этот файл указывает программное имя пакета, содержит ссылку на определение конвейера и задает параметры целевой рабочей области.
  • resources/<project-name>_job.yml и resources/<project-name>_pipeline.yml: эти файлы определяют задание, содержащее задачу обновления конвейера, и параметры конвейера.
  • src/dlt_pipeline.ipynb: этот файл представляет собой записную книжку, которая при запуске выполняет конвейер.

Для настройки конвейеров сопоставления в объявлении конвейера соответствуют полезной нагрузке запроса операции создания конвейера, как определено в POST /api/2.0/pipelines в справочнике REST API, выраженной в формате YAML.

Шаг 4. Проверка файла конфигурации пакета проекта

На этом шаге проверяется, действительна ли конфигурация пакета.

  1. В корневом каталоге используйте интерфейс командной строки Databricks для выполнения bundle validate команды следующим образом:

    databricks bundle validate
    
  2. Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.

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

Шаг 5. Развертывание локального проекта в удаленной рабочей области

На этом шаге вы развернете локальную записную книжку в удаленной рабочей области Azure Databricks и создадите конвейер DLT в рабочей области.

  1. В корневом каталоге пакета используйте CLI Databricks, чтобы выполнить команду bundle deploy следующим образом:

    databricks bundle deploy -t dev
    
  2. Проверьте, развернута ли локальная записная книжка: на боковой панели рабочей области Azure Databricks щелкните "Рабочая область".

  3. Щелкните папку Users ><your-username>> .bundle ><project-name>>dev > files > src. Записная книжка должна находиться в этой папке.

  4. Проверьте, был ли создан конвейер: на боковой панели рабочей области Azure Databricks нажмите DLT.

  5. На вкладке DLT щелкните [dev <your-username>] <project-name>_pipeline.

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

Шаг 6. Запуск развернутого проекта

На этом шаге вы активируете запуск конвейера DLT в рабочей области из командной строки.

  1. В корневом каталоге используйте интерфейс командной строки Databricks для выполнения bundle run команды, как показано ниже, заменив <project-name> имя проекта на шаге 2.

    databricks bundle run -t dev <project-name>_pipeline
    
  2. Скопируйте значение, которое отображается в терминале и вставьте это значение Update URL в веб-браузер, чтобы открыть рабочую область Azure Databricks.

  3. В рабочей области Azure Databricks после успешного завершения конвейера щелкните представление taxi_raw и материализованное представление filtered_taxis, чтобы просмотреть сведения.

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

Шаг 7. Очистка

На этом шаге вы удалите развернутую тетрадь и конвейер из рабочей области.

  1. В корневом каталоге используйте интерфейс командной строки Databricks для выполнения bundle destroy команды следующим образом:

    databricks bundle destroy -t dev
    
  2. Подтвердите запрос на удаление конвейера: при появлении запроса на окончательное уничтожение ресурсов, введите y и нажмите клавишу Enter.

  3. Подтвердите запрос на удаление записной книжки: при появлении запроса на окончательное уничтожение ранее развернутой папки и всех его файлов, введите y и нажмите клавишу Enter.

  4. Если вы также хотите удалить пакет с компьютера разработки, теперь можно удалить локальный каталог из шага 2.

Добавление существующего определения конвейера в пакет

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

Получение существующего определения конвейера с помощью пользовательского интерфейса

Чтобы получить представление YAML существующего определения конвейера из пользовательского интерфейса рабочей области Azure Databricks:

  1. На боковой панели рабочей области Azure Databricks щелкните "Рабочие процессы".

  2. На вкладке DLT щелкните ссылку на имя вашего конвейера.

  3. Рядом с кнопкой "Разработка " нажмите кнопку "Кебаб", а затем нажмите кнопку "Просмотреть параметры YAML".

  4. Скопируйте YAML определения конвейера в локальный буфер обмена, открыв диалоговое окно "Параметры конвейера" и нажав на значок копирования.

  5. Добавьте YAML, который вы скопировали, в файл вашего пакета databricks.yml, или создайте файл конфигурации для вашего конвейера в папке resources проекта пакета и ссылайтесь на него из файла databricks.yml. См ресурсы.

  6. Скачайте и добавьте все файлы и записные книжки Python, на которые ссылается источник проекта пакета. Обычно артефакты пакета находятся в каталоге src в пакете.

    Совет

    Вы можете экспортировать существующую записную книжку из рабочей области Azure Databricks в .ipynb формат, нажав кнопку "Файл > Экспорт > IPython Notebook" в пользовательском интерфейсе записной книжки Azure Databricks.

    После добавления записных книжек, файлов Python и других артефактов в пакет убедитесь, что определение конвейера правильно ссылается на них. Например, для записной книжки с именем hello.ipynb , которая находится в src/ каталоге пакета:

    resources:
      pipelines:
        hello-pipeline:
          name: hello-pipeline
          libraries:
            - notebook:
                path: ../src/hello.ipynb
    

Создание существующего определения конвейера с помощью интерфейса командной строки Databricks

Чтобы программно создать конфигурацию пакета для существующего конвейера:

  1. Получите идентификатор существующего конвейера из боковой панели Сведения о конвейере в пользовательском интерфейсе или используйте команду databricks pipelines list-pipelines Databricks CLI.

  2. bundle generate pipeline Выполните команду CLI Databricks, задав идентификатор конвейера:

    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    Эта команда создает файл конфигурации пакета для конвейера в папке пакета resources и скачивает все указанные артефакты в папку src .

    Совет

    Если вы сначала используете bundle deployment bind для привязки ресурса в пакете к ресурсу в рабочей области, ресурс в рабочей области обновляется на основе конфигурации, определенной в пакете, с которым он связан, после следующего bundle deploy. Дополнительные сведения см. в bundle deployment bind, раздел "Привязка ресурсов пакета".