Как объединить проекты в 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