Миграция между типами размещения dbt platform
Для миграции между типами размещения необходимо изменить договор.
Перед началом процесса обязательно свяжитесь со своим менеджером по работе с клиентами, чтобы подтвердить возможность миграции, согласовать сроки и инициировать необходимые изменения договора. Не приступайте к миграции, пока изменение договора не будет подтверждено.
Обзор
В этом руководстве описана самостоятельная миграция между типами размещения dbt platform — например, переход с мультитенантного на однотенантное размещение.
Оно предназначено для аккаунтов, сложность миграции которых команда dbt Labs оценила как низкую. Ваш контакт в dbt Labs предоставит вам временное окно для миграции — не начинайте, пока не получите его.
С помощью следующей таблицы убедитесь, что это руководство подходит для вашего аккаунта. Если хотя бы один показатель вашего аккаунта достигает порога высокой сложности, рекомендуем провести миграцию под руководством команды Professional Services.
| Показатель | Низкая сложность (самостоятельная миграция) | Высокая сложность (миграция под руководством Professional Services) |
|---|---|---|
| Активные задания (запускавшиеся за последние 30 дней) | Менее 10 | 10 и более |
| Проекты | Менее 3 | 3 и более |
| Среды | Менее 5 | 5 и более |
| Дальнейшие действия | Если все показатели соответствуют низкой сложности, следуйте этому руководству или обратитесь за помощью к команде Professional Services по миграции | Если один или несколько показателей соответствуют высокой сложности, свяжитесь со своим менеджером по работе с клиентами, чтобы определить объём работ по миграции с участием Professional Services |
Следующие факторы требуют дополнительной координации независимо от размера аккаунта — сообщите о них своему менеджеру по работе с клиентами, если они применимы:
- Задания CI или задания, запускаемые через вебхуки
- SSO или подготовка учётных записей через SCIM
- Конечные точки PrivateLink
- Несколько типов подключений к хранилищам данных
Связанная документация
Что не переносится автоматически
Инструмент миграции автоматизирует перенос большей части конфигурации, но некоторые элементы необходимо настроить вручную после применения конфигурации Terraform.
Учётные данные и секреты — их необходимо воссоздать вручную:
- SSH-ключи и учётные данные для репозиториев
- Токены сервисных аккаунтов
- Переменные среды, содержащие секреты
- Подключения к хранилищам данных и учётные данные на уровне сред
- Профили dbt platform
Данные проектов — не переносятся:
- История запусков заданий, артефакты и журналы
Управление пользователями — требует ручной проверки:
- Пользователи должны уже существовать в целевом аккаунте
- После миграции необходимо вручную проверить разрешения
- SSO, пары ключей и учётные данные для аутентификации в хранилищах данных необходимо настроить заново
Неподдерживаемые ресурсы:
- Конечные точки PrivateLink требуют помощи команды инфраструктуры dbt Labs — создайте обращение в службу поддержки
Предварительные требования
Перед началом миграции убедитесь в следующем:
- Изменение договора инициировано и подтверждено вашим менеджером по работе с клиентами
- Вы получили временное окно для миграции от команды поддержки dbt Labs
- У вас есть права администратора в исходном и целевом аккаунтах dbt platform
- Целевой аккаунт подготовлен в новой среде
- У вас есть сервисный токен с разрешениями Account Admin в исходном аккаунте
Этапы миграции
Для этой миграции используются два инструмента с открытым исходным кодом:
- Инструмент миграции dbt platform — экспортирует конфигурацию исходного аккаунта и применяет её к целевому аккаунту через Terraform
- dbtcloud-terraforming — генерирует конфигурацию Terraform HCL на основе существующего аккаунта dbt platform
Учётные данные, секреты и некоторые другие элементы не переносятся автоматически — запланируйте их воссоздание вручную. Полный список приведён в разделе Что не переносится автоматически.
- Mac/Linux
- Windows
Шаг 1. Установите необходимые компоненты
Вам понадобятся Python, Terraform и dbtcloud-terraforming. Установите их любым удобным способом — здесь в качестве примера используется Homebrew.
Создайте и активируйте виртуальное окружение Python:
python3 -m venv tf_acct_migrator_env
source tf_acct_migrator_env/bin/activate
Установите Terraform:
brew tap hashicorp/tap && brew install hashicorp/tap/terraform
Установите dbtcloud-terraforming:
brew install dbt-labs/dbt-cli/dbtcloud-terraforming
Шаг 2. Настройте инструмент миграции
Клонируйте репозиторий инструмента миграции и перейдите в него:
git clone https://github.com/dpguthrie/dbt-cloud-migration-tool
cd dbt-cloud-migration-tool
Задайте переменные среды для исходного аккаунта dbt platform:
export DBT_CLOUD_HOST_URL="https://YOUR_SOURCE_REGION.getdbt.com/api"
export DBT_CLOUD_TOKEN="your_source_service_token"
export DBT_CLOUD_ACCOUNT_ID="your_source_account_id"
Шаг 3. Сгенерируйте и примените конфигурацию Terraform
Запустите инструмент миграции, чтобы сгенерировать файл resources.tf с ресурсами исходного аккаунта:
sh migrate.sh
Скопируйте пример файла переменных и добавьте сведения о целевом аккаунте:
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your target account details
Примените конфигурацию к целевому аккаунту:
terraform init
terraform plan
terraform apply
Terraform выведет сведения о созданных ресурсах, а также предупреждения и ошибки, если они возникнут. Возможно, потребуется запустить migrate.sh несколько раз, чтобы охватить все необходимые типы ресурсов.
Шаг 1. Установите необходимые компоненты
Вам понадобятся Python, Terraform и dbtcloud-terraforming. Установите их любым удобным способом — здесь в качестве примера используется Chocolatey.
Установите Python и Terraform:
choco install python terraform -y
После установки перезапустите терминал и проверьте установленные версии:
python --version
terraform --version
Установите dbtcloud-terraforming, добавив его в каталог установки Terraform. Если вы использовали Chocolatey, обычно это каталог C:\ProgramData\chocolatey\bin.
Шаг 2. Настройте инструмент миграции
Следующие действия необходимо выполнять в среде bash (например, Git Bash). Клонируйте репозиторий инструмента миграции и перейдите в него:
git clone https://github.com/dpguthrie/dbt-cloud-migration-tool.git
cd dbt-cloud-migration-tool
Шаг 3. Настройте и запустите миграцию
Задайте переменные среды для исходного аккаунта dbt platform (они сбрасываются при закрытии терминала):
export DBT_CLOUD_HOST_URL="https://YOUR_SOURCE_REGION.getdbt.com/api"
export DBT_CLOUD_TOKEN="your_source_service_token"
export DBT_CLOUD_ACCOUNT_ID="your_source_account_id"
Запустите скрипт миграции:
sh migrate.sh
Скопируйте пример файла переменных и добавьте сведения о целевом аккаунте:
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your target account details
Примените конфигурацию к целевому аккаунту:
terraform init
terraform plan
terraform apply
Terraform выведет сведения о созданных ресурсах, а также предупреждения и ошибки, если они возникнут. Возможно, потребуется запустить migrate.sh несколько раз, чтобы охватить все необходимые типы ресурсов.
Контрольный список после миграции
- Проверьте все подключения, разрешения и секреты в целевом аккаунте
- Запустите тестовые задания, чтобы проверить работоспособность всего процесса
- Убедитесь, что список разрешённых IP-адресов и сетевые настройки обновлены для нового тенанта
- Обновите внутренние закладки, конфигурации SSO и интеграции с API, указав URL нового аккаунта