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


Разработка конвейеров разностных динамических таблиц с помощью пакетов ресурсов Databricks

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

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

Совет

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

Требования

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

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

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

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

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

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

Шаг 1. Настройка аутентификации

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

Примечание.

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

  1. Используйте интерфейс командной строки 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 одинаковым значением, может потребоваться указать и -p параметры --host вместе, чтобы помочь Databricks CLI найти правильные соответствующие сведения о маркере OAuth.

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

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

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

  2. Используйте интерфейс командной bundle init строки Databricks для выполнения команды:

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

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

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

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

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

Шаг 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 и создадите конвейер Delta Live Tables в рабочей области.

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

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

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

  4. Проверьте, был ли создан конвейер: на боковой панели рабочей области Azure Databricks щелкните Delta Live Tables.

  5. На вкладке "Разностные динамические таблицы " щелкните [dev <your-username>] <project-name>_pipeline.

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

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

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

  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.

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

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

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

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

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

  2. На вкладке "Разностные динамические таблицы" щелкните ссылку "Имя конвейера".

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

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

  5. Добавьте YAML, скопированный в файл пакета, или создайте файл конфигурации для конвейера в resources папке проекта пакета databricks.yml и сослаться на него из файла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. Получите идентификатор существующего конвейера на боковой панели сведений о конвейере в пользовательском интерфейсе или используйте команду CLI databricks pipelines list-pipelines Databricks.

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

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

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

    Совет

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