Задача dbt для заданий
Используйте задачу dbt для настройки и запуска проектов dbt в Azure Databricks.
Внимание
При выполнении задач dbt Databricks внедряет DBT_ACCESS_TOKEN
субъект, настроенный в поле запуска от имени .
Настройка задачи dbt
dbt
Добавьте задачу на вкладке "Задачи" в пользовательском интерфейсе заданий, выполнив следующие действия:
В раскрывающемся меню типа
выберите . В раскрывающемся меню источника
можно выбрать рабочей области использовать проект dbt, расположенный в папке рабочей области Azure Databricks илипоставщика Git для проекта, расположенного в удаленном репозитории Git.Если вы выберете рабочую область, используйте навигатор файлов, чтобы выбрать каталог проекта.
Если выбрать поставщика Git, щелкните кнопку Изменить, чтобы ввести сведения Git для репозитория проекта. См. статью "Использование Git" с заданиями.
Если проект не находится в корневом каталоге репозитория, используйте поле каталога Project, чтобы указать путь к нему.
Команды dbt по умолчанию выполняются в текстовых полях команд dbt deps, dbt seed и dbt run. Предоставленные команды выполняются в последовательном порядке. Добавьте, удалите или измените эти поля при необходимости для рабочего процесса. См. раздел "Что такое команды dbt?".
В SQL-хранилище выберите SQL-складдля запуска SQL-кода, созданного dbt. Раскрывающееся меню хранилища SQL отображает только бессерверные и профессиональные хранилища SQL.
Укажите каталог склада. Если не задано, используется значение по умолчанию рабочей области.
Укажите схему складского . По умолчанию используется схема
default
.Выберите вычисление dbt CLI для запуска dbt Core. Databricks рекомендует использовать бессерверные вычисления для заданий или классических заданий, настроенных с помощью кластера с одним узлом.
dbt-databricks
Укажите версию для задачи.Если вы используете вычислительные мощности
Serverless
, используйте поле среды и библиотек , чтобы выбрать, изменить или добавить новую среду. См. статью "Установка зависимостей записной книжки".Для всех остальных конфигураций вычислений поле зависимых библиотек заполняется
dbt-databricks>=1.0.0,<2.0.0
по умолчанию. Удалите этот параметр и добавьте библиотеку PyPi , чтобы закрепить версию.Примечание.
Databricks рекомендует закрепить задачи dbt в определенной версии пакета dbt-databricks, чтобы для разработки и рабочих запусков использовалась одна и та же версия. Databricks рекомендует версию 1.6.0 или больше пакета dbt-databricks.
Нажмите Создать задачу.
Что такое команды 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}}"}'