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

Как объединить проекты в dbt Cloud?

Объединение ваших dbt-проектов может быть огромной задачей, и универсального решения не существует. Однако, есть несколько общих подходов к объединению проектов в dbt Cloud, которые вы можете использовать в зависимости от объема работы, которую необходимо выполнить.

Если у вас есть несколько проектов, содержащих код, готовый к производству, редко бывают простые решения для их объединения. Предположим, у вас есть Main Project и Smaller Subset Project.

Файлы и папки

Git и локальная директория

Обратитесь к командам слияния git, чтобы помочь завершить план миграции. Использование этих команд поможет сохранить историю коммитов git, но может привести к дублированию папок, таких как models, tests и т.д. Скорее всего, вам все равно придется перемещать файлы вручную.

Другой вариант — использовать внешний редактор кода (например, VS Code) для перемещения файлов из Smaller Subset Project в Main Project. Это то, что рекомендуют внутренние эксперты dbt Labs, чтобы оставаться в курсе того, что переносится в основной проект, и также позволяет вам быть более осведомленным о входящих файлах, с возможностью внести небольшие изменения в иерархию папок, если это необходимо.

Ручная миграция с несколькими вкладками браузера

Если у вас есть только пара моделей или макросов, которые вы хотите объединить, скопируйте содержимое файлов из вашего git-провайдера в Smaller Subset Project. Затем, в dbt Cloud IDE, вставьте содержимое в новый файл в вашем Main Project.

В качестве альтернативы, вы можете скачать эти файлы из вашего git-провайдера (репозиторий Smaller Subset Project) и загрузить их обратно в другой репозиторий (Main Project). Это плохо масштабируется и может обойти контроль изменений, поэтому это может быть жизнеспособным решением только для организаций с небольшим количеством файлов.

Производственные задания

Если у вас есть несколько проектов с развертыванием окружений, выполняющих задания, это представляет собой еще одну задачу. Предполагая, что все модели из Smaller Subset Project могут быть объединены в Main Project, ваши команды в рамках ваших заданий приобретут новое значение. Вместо того чтобы одновременно рефакторить вашу глобальную стратегию заданий, вы можете добавить теги к моделям входящего проекта и использовать это в синтаксисе команд заданий с помощью синтаксиса выбора узлов.

Пример команды задания для Main Project: dbt build --exclude tag:smaller_subset_project

Команды для Smaller Subset Project: dbt build --select tag:smaller_subset_project

0