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


Задача dbt для заданий

Используйте задачу dbt для настройки и запуска проектов dbt в Azure Databricks.

Внимание

При выполнении задач dbt Databricks внедряет DBT_ACCESS_TOKEN субъект, настроенный в поле запуска от имени .

Настройка задачи dbt

dbt Добавьте задачу на вкладке "Задачи" в пользовательском интерфейсе заданий, выполнив следующие действия:

  1. В раскрывающемся меню типа выберите .

  2. В раскрывающемся меню источника можно выбрать рабочей области использовать проект dbt, расположенный в папке рабочей области Azure Databricks или поставщика Git для проекта, расположенного в удаленном репозитории Git.

    • Если вы выберете рабочую область, используйте навигатор файлов, чтобы выбрать каталог проекта.

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

      Если проект не находится в корневом каталоге репозитория, используйте поле каталога Project, чтобы указать путь к нему.

  3. Команды dbt по умолчанию выполняются в текстовых полях команд dbt deps, dbt seed и dbt run. Предоставленные команды выполняются в последовательном порядке. Добавьте, удалите или измените эти поля при необходимости для рабочего процесса. См. раздел "Что такое команды dbt?".

  4. В SQL-хранилище выберите SQL-складдля запуска SQL-кода, созданного dbt. Раскрывающееся меню хранилища SQL отображает только бессерверные и профессиональные хранилища SQL.

  5. Укажите каталог склада. Если не задано, используется значение по умолчанию рабочей области.

  6. Укажите схему складского . По умолчанию используется схема default.

  7. Выберите вычисление dbt CLI для запуска dbt Core. Databricks рекомендует использовать бессерверные вычисления для заданий или классических заданий, настроенных с помощью кластера с одним узлом.

  8. dbt-databricks Укажите версию для задачи.

    Если вы используете вычислительные мощности Serverless, используйте поле среды и библиотек , чтобы выбрать, изменить или добавить новую среду. См. статью "Установка зависимостей записной книжки".

    Для всех остальных конфигураций вычислений поле зависимых библиотек заполняется dbt-databricks>=1.0.0,<2.0.0 по умолчанию. Удалите этот параметр и добавьте библиотеку PyPi , чтобы закрепить версию.

    Примечание.

    Databricks рекомендует закрепить задачи dbt в определенной версии пакета dbt-databricks, чтобы для разработки и рабочих запусков использовалась одна и та же версия. Databricks рекомендует версию 1.6.0 или больше пакета dbt-databricks.

  9. Нажмите Создать задачу.

Что такое команды dbt?

Поле команд dbt позволяет указать команды для выполнения с помощью интерфейса командной строки dbt .. Полные сведения о dbt CLI см. в документации по dbt.

Проверьте документацию dbt для команд, поддерживаемых указанной версией dbt.

Передача параметров командам dbt

Синтаксис выбора узла dbt позволяет указать ресурсы для включения или исключения в определенном запуске. Такие команды, как и run прием флагов, включая build--select и --exclude. Полный описание см. в документации по синтаксису dbt.

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

Некоторые флаги принимают позиционные аргументы. Некоторые аргументы флагов являются строками. Примеры и объяснения см. в документации по dbt.

Передача переменных командам dbt

Используйте флаг --vars для передачи статических или динамических значений в команды dbt в полях .

Вы передаете в JSON --varsс разделителями с одним кавычками. Все ключи и значения в JSON должны быть разделены двойными кавычками, как показано в следующем примере:

dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'

Примеры параметризованных команд dbt

При работе с dbt можно ссылаться на значения задач, параметры задания и динамические параметры задания. Значения подставляются в виде обычного текста в поле команд dbt перед выполнением команды. Сведения о передаче значений между задачами или ссылки на метаданные заданий см. в разделе Параметризация заданий.

В этих примерах предполагается, что настроены следующие параметры задания:

Наименование параметра Значение параметра
volume_path /Volumes/path/to/data
table_name my_table
select_clause --select "tag:nightly"
dbt_refresh --full-refresh

В следующих примерах показаны допустимые способы ссылки на эти параметры:

dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}

Можно также ссылаться на динамические параметры и значения задач, как показано в следующих примерах:

dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'