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

Как я могу консолидировать проекты в dbt?

Консолидация ваших проектов dbt может быть масштабной задачей, и универсального решения здесь не существует. Тем не менее, в dbt есть несколько распространённых подходов к консолидации проектов, которым вы можете следовать в зависимости от объёма работ, которые необходимо выполнить.

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

Файлы и папки

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

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

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

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

Если у вас есть всего несколько моделей или макросов, которые вы хотите объединить, скопируйте исходное содержимое файла из вашего git‑провайдера в Smaller Subset Project. Затем в Studio 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
Loading