# Миграция между типами размещения dbt platform

[Назад к гайдам](https://docs.getdbt.tech/guides.md)

[Menu ]()



Требуется изменение договора

Для миграции между типами размещения необходимо изменить договор.

Перед началом процесса обязательно свяжитесь со своим менеджером по работе с клиентами, чтобы подтвердить возможность миграции, согласовать сроки и инициировать необходимые изменения договора. *Не приступайте* к миграции, пока изменение договора не будет подтверждено.

## Обзор

В этом руководстве описана самостоятельная миграция между [типами размещения dbt platform](https://docs.getdbt.tech/docs/platform/about-platform/tenancy.md) — например, переход с мультитенантного на однотенантное размещение.

Оно предназначено для аккаунтов, сложность миграции которых команда dbt Labs оценила как низкую. Ваш контакт в dbt Labs предоставит вам временное окно для миграции — не начинайте, пока не получите его.

С помощью следующей таблицы убедитесь, что это руководство подходит для вашего аккаунта. Если хотя бы один показатель вашего аккаунта достигает порога высокой сложности, рекомендуем провести миграцию под руководством команды Professional Services.

| Показатель                                            | Низкая сложность (самостоятельная миграция)                                                                                                                                             | Высокая сложность (миграция под руководством Professional Services)                                                                                                                                                                    |
| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Активные задания (запускавшиеся за последние 30 дней) | Менее 10                                                                                                                                                                                | 10 и более                                                                                                                                                                                                                             |
| Проекты                                               | Менее 3                                                                                                                                                                                 | 3 и более                                                                                                                                                                                                                              |
| Среды                                                 | Менее 5                                                                                                                                                                                 | 5 и более                                                                                                                                                                                                                              |
| **Дальнейшие действия**                               | Если все показатели соответствуют низкой сложности, следуйте этому руководству или обратитесь за помощью к [команде Professional Services по миграции](https://www.getdbt.com/services) | Если один или несколько показателей соответствуют высокой сложности, свяжитесь со своим менеджером по работе с клиентами, чтобы определить объём работ по [миграции с участием Professional Services](https://www.getdbt.com/services) |

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

* Задания CI или задания, запускаемые через вебхуки
* SSO или подготовка учётных записей через SCIM
* Конечные точки PrivateLink
* Несколько типов подключений к хранилищам данных

### Связанная документация

* [Типы размещения](https://docs.getdbt.tech/docs/platform/about-platform/tenancy.md)
* [Доступ, регионы и IP-адреса](https://docs.getdbt.tech/docs/platform/about-platform/access-regions-ip-addresses.md)

## Что не переносится автоматически

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

**Учётные данные и секреты** — их необходимо воссоздать вручную:

* SSH-ключи и учётные данные для репозиториев
* Токены сервисных аккаунтов
* Переменные среды, содержащие секреты
* Подключения к хранилищам данных и учётные данные на уровне сред
* Профили dbt platform

**Данные проектов** — не переносятся:

* История запусков заданий, артефакты и журналы

**Управление пользователями** — требует ручной проверки:

* Пользователи должны уже существовать в целевом аккаунте
* После миграции необходимо вручную проверить разрешения
* SSO, пары ключей и учётные данные для аутентификации в хранилищах данных необходимо настроить заново

**Неподдерживаемые ресурсы:**

* Конечные точки PrivateLink требуют помощи команды инфраструктуры dbt Labs — [создайте обращение в службу поддержки](https://www.getdbt.com/support)

## Предварительные требования

Перед началом миграции убедитесь в следующем:

* Изменение договора инициировано и подтверждено вашим менеджером по работе с клиентами
* Вы получили временное окно для миграции от команды поддержки dbt Labs
* У вас есть права администратора в исходном и целевом аккаунтах dbt platform
* Целевой аккаунт подготовлен в новой среде
* У вас есть сервисный токен с разрешениями Account Admin в исходном аккаунте

## Этапы миграции

Для этой миграции используются два инструмента с открытым исходным кодом:

* [Инструмент миграции dbt platform](https://github.com/dpguthrie/dbt-cloud-migration-tool) — экспортирует конфигурацию исходного аккаунта и применяет её к целевому аккаунту через Terraform
* [dbtcloud-terraforming](https://github.com/dbt-labs/dbtcloud-terraforming) — генерирует конфигурацию Terraform HCL на основе существующего аккаунта dbt platform

к сведению

Учётные данные, секреты и некоторые другие элементы не переносятся автоматически — запланируйте их воссоздание вручную. Полный список приведён в разделе [Что не переносится автоматически](#what-doesnt-migrate-automatically).

### Mac/Linux

### Шаг 1. Установите необходимые компоненты

Вам понадобятся Python, Terraform и `dbtcloud-terraforming`. Установите их любым удобным способом — здесь в качестве примера используется Homebrew.

Создайте и активируйте виртуальное окружение Python:

```shell
python3 -m venv tf_acct_migrator_env
source tf_acct_migrator_env/bin/activate
```

Установите Terraform:

```shell
brew tap hashicorp/tap && brew install hashicorp/tap/terraform
```

Установите `dbtcloud-terraforming`:

```shell
brew install dbt-labs/dbt-cli/dbtcloud-terraforming
```

### Шаг 2. Настройте инструмент миграции

Клонируйте репозиторий инструмента миграции и перейдите в него:

```shell
git clone https://github.com/dpguthrie/dbt-cloud-migration-tool
cd dbt-cloud-migration-tool
```

Задайте переменные среды для исходного аккаунта dbt platform:

```shell
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` с ресурсами исходного аккаунта:

```shell
sh migrate.sh
```

Скопируйте пример файла переменных и добавьте сведения о целевом аккаунте:

```shell
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your target account details
```

Примените конфигурацию к целевому аккаунту:

```shell
terraform init
terraform plan
terraform apply
```

Terraform выведет сведения о созданных ресурсах, а также предупреждения и ошибки, если они возникнут. Возможно, потребуется запустить `migrate.sh` несколько раз, чтобы охватить все необходимые типы ресурсов.

### Windows

### Шаг 1. Установите необходимые компоненты

Вам понадобятся Python, Terraform и `dbtcloud-terraforming`. Установите их любым удобным способом — здесь в качестве примера используется Chocolatey.

Установите Python и Terraform:

```shell
choco install python terraform -y
```

После установки перезапустите терминал и проверьте установленные версии:

```shell
python --version
terraform --version
```

Установите `dbtcloud-terraforming`, добавив его в каталог установки Terraform. Если вы использовали Chocolatey, обычно это каталог `C:\ProgramData\chocolatey\bin`.

### Шаг 2. Настройте инструмент миграции

Следующие действия необходимо выполнять в среде bash (например, Git Bash). Клонируйте репозиторий инструмента миграции и перейдите в него:

```shell
git clone https://github.com/dpguthrie/dbt-cloud-migration-tool.git
cd dbt-cloud-migration-tool
```

### Шаг 3. Настройте и запустите миграцию

Задайте переменные среды для исходного аккаунта dbt platform (они сбрасываются при закрытии терминала):

```shell
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"
```

Запустите скрипт миграции:

```shell
sh migrate.sh
```

Скопируйте пример файла переменных и добавьте сведения о целевом аккаунте:

```shell
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your target account details
```

Примените конфигурацию к целевому аккаунту:

```shell
terraform init
terraform plan
terraform apply
```

Terraform выведет сведения о созданных ресурсах, а также предупреждения и ошибки, если они возникнут. Возможно, потребуется запустить `migrate.sh` несколько раз, чтобы охватить все необходимые типы ресурсов.

## Контрольный список после миграции

* [ ] Проверьте все подключения, разрешения и секреты в целевом аккаунте
* [ ] Запустите тестовые задания, чтобы проверить работоспособность всего процесса
* [ ] Убедитесь, что список разрешённых IP-адресов и сетевые настройки обновлены для нового тенанта
* [ ] Обновите внутренние закладки, конфигурации SSO и интеграции с API, указав URL нового аккаунта
