Перейти к основному содержимому

Гибридная настройка Enterprise +

Настройте Hybrid‑проекты, чтобы загружать артефакты dbt Core в dbt и получить лучшую совместную работу и прозрачность.

Доступно в public preview

Hybrid‑проекты доступны в режиме публичного превью для Enterprise‑аккаунтов dbt.

Настройка гибридных проектов

В Hybrid‑проекте вы используете dbt Core локально и можете загружать артефакты этого проекта dbt Core в dbt для централизованной видимости, кросс‑проектных ссылок и более удобного сотрудничества.

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

Следуйте этим шагам, чтобы настроить Hybrid‑проект в dbt и загрузить артефакты dbt Core в dbt:

Убедитесь, что в dbt на странице Account settings включён переключатель hybrid‑проектов.

Сделайте модели dbt Core публичными (необязательно)

Этот шаг является необязательным и нужен только в том случае, если вы хотите делиться своими моделями dbt Core с другими проектами dbt с помощью функции cross-project referencing.

Перед подключением проекта dbt Core к проекту dbt убедитесь, что модели, которыми вы хотите делиться, имеют access: public в конфигурации модели. Эта настройка делает такие модели видимыми для других проектов dbt и упрощает совместную работу, например при использовании cross-project referencing.

  1. Самый простой способ задать это — через файл dbt_project.yml, однако вы также можете указать настройку в следующих местах:

    • dbt_project.yml (на уровне проекта)
    • properties.yml (для отдельных моделей)
    • .sql‑файл модели с использованием блока config

    Ниже приведён пример dbt_project.yml, в котором каталог marts объявлен публичным, чтобы его могли использовать downstream‑инструменты:

    dbt_project.yml
    models:
    define_public_models: # This is my project name, remember it must be specified
    marts:
    +access: public
  2. После задания access: public повторно запустите выполнение dbt в интерфейсе командной строки dbt Core (CLI), например dbt run, чтобы применить изменения.

  3. Подробнее о настройке читайте в разделах access modifier и access config.

Создайте гибридный проект

Создайте hybrid‑проект в dbt, чтобы иметь возможность загружать артефакты dbt Core в dbt.

Администратор аккаунта dbt должен выполнить следующие шаги и передать информацию об артефактах пользователю dbt Core:

  1. Чтобы создать новый проект в dbt, перейдите на страницу Account home.
  2. Нажмите +New project.
  3. Заполните поле Project name. Назовите проект так, чтобы было понятно, что это проект dbt Core.
  4. Включите переключатель Advanced settings, затем отметьте чекбокс Hybrid development и нажмите Continue.
    • В списке проектов hybrid‑проект будет помечен индикатором Hybrid, чтобы его было легко отличить.
Hybrid project new projectHybrid project new project
  1. После создания проекта создайте соответствующую production‑среду и нажмите Save. Обратите внимание, что поле Connection можно оставить пустым.
  2. (Опционально) Чтобы обновить существующий dbt‑проект до hybrid‑проекта, перейдите в Account settings, выберите Project, нажмите Edit и отметьте чекбокс Hybrid development.
Hybrid‑проект для существующего проектаHybrid‑проект для существующего проекта

Сгенерируйте service token и значения для загрузки артефактов

Администратор dbt должен выполнить эти шаги, чтобы сгенерировать service token (с правами Job Runner и Job Viewer) и скопировать значения, необходимые для настройки проекта dbt Core для загрузки артефактов в dbt.

Администратор dbt должен передать эти значения пользователю dbt Core.

  1. Перейдите в среду hybrid‑проекта, созданную на предыдущем шаге: Deploy > Environments, затем выберите нужную среду.
  2. Нажмите кнопку Artifact upload и скопируйте следующие значения, которые пользователю dbt Core понадобятся для настройки dbt_project.yml:
    • Tenant URL
    • Account ID
    • Environment ID
    • Create a service token
      • dbt создаёт service token с правами Job Runner и Job Viewer.
      • Если вы не видите кнопку Create service token, скорее всего, у вас нет необходимых прав. Обратитесь к администратору dbt, чтобы получить доступ или чтобы он создал token за вас.
Сгенерируйте service token для hybrid‑проектаСгенерируйте service token для hybrid‑проекта
  1. Обязательно скопируйте и сохраните эти значения — они понадобятся для настройки проекта dbt Core на следующем шаге. После создания service token получить его повторно невозможно.

Настройте dbt Core‑проект и загрузку артефактов

Получив значения с предыдущего шага, вы можете подготовить проект dbt Core к загрузке артефактов, выполнив следующие действия:

  1. Проверьте версию dbt, выполнив dbt --version. Вы должны увидеть примерно следующее:

       Core:
    - installed: 1.10.0-b1
    - latest: 1.9.3 - Ahead of latest version!
  2. Если у вас не установлена последняя версия (1.10 или выше), обновите dbt Core, выполнив python -m pip install --upgrade dbt-core.

  3. Задайте следующие переменные окружения в проекте dbt Core, выполнив команды в CLI. Замените your_account_id, your_environment_id и your_token реальными значениями с предыдущего шага.

    export DBT_CLOUD_ACCOUNT_ID=your_account_id
    export DBT_CLOUD_ENVIRONMENT_ID=your_environment_id
    export DBT_CLOUD_TOKEN=your_token
    export DBT_UPLOAD_TO_ARTIFACTS_INGEST_API=True
    • Задавайте переменные окружения тем способом, который используется в вашем проекте.
    • Чтобы удалить переменную окружения, выполните unset environment_variable_name, заменив environment_variable_name на имя переменной.
  4. В локальном проекте dbt Core добавьте в файл dbt_project.yml элемент, скопированный на предыдущем шаге:

    • tenant_hostname
    name: "jaffle_shop"
    version: "3.0.0"
    require-dbt-version: ">=1.5.0"
    ....rest of dbt_project.yml configuration...

    dbt-cloud:
    tenant_hostname: cloud.getdbt.com # Replace with your Tenant URL
  5. После того как переменные окружения заданы с помощью export в той же сессии CLI dbt Core, выполните dbt run:

     dbt run

    Чтобы переопределить заданные переменные окружения, выполните dbt run с префиксом переменных окружения. Например, чтобы использовать другой Account ID и Environment ID:

     DBT_CLOUD_ACCOUNT_ID=1 DBT_CLOUD_ENVIRONMENT_ID=123 dbt run
  6. После завершения выполнения вы должны увидеть сообщение Artifacts uploaded successfully to artifact ingestion API: command run completed successfully, а также запуск в dbt в вашей production‑среде.

Просмотрите артефакты в dbt platform

После загрузки артефактов dbt Core в dbt platform и выполнения dbt run вы можете просмотреть запуск job с артефактами:

  1. Перейдите в Deploy
  2. Нажмите Jobs, затем откройте вкладку Runs
  3. Вы должны увидеть запуск со статусом Success и индикатором </> Artifact ingestion
  4. Откройте этот запуск, чтобы просмотреть логи и убедиться, что загрузка артефактов прошла успешно. Если есть ошибки, изучите debug‑логи для их устранения.
Запуск job в hybrid‑проекте с импортом артефактовЗапуск job в hybrid‑проекте с импортом артефактов

Преимущества использования hybrid‑проектов

Теперь, когда вы интегрировали артефакты dbt Core с проектом dbt, вы можете:

  • Совместно работать с пользователями dbt, позволяя им визуализировать и использовать cross-project references для dbt‑моделей, которые находятся в Core‑проектах.
  • (Скоро) Новые пользователи, заинтересованные в Canvas, смогут строить решения на основе dbt‑моделей, уже созданных центральной командой данных в dbt Core, вместо того чтобы начинать с нуля.
  • Пользователи dbt Core смогут перейти в Catalog и просматривать свои модели и ассеты. Для доступа к Catalog требуется read‑only seat.

Нашли ошибку?

0
Loading