Миграция и резервное копирование
Два подхода к переносу данных
-
Резервное копирование и восстановление (полное)
Создание полной копии метаданных всей системы. Используется для Disaster Recovery (восстановления после сбоя) или для клонирования среды (например, dev → test).
-
Экспорт и импорт (частичный)
Это перенос отдельных объектов (воркбуков с их содержимым). Используется для переноса готовых отчетов между средами (например, test → prod) или для миграции из облака.
Резервное копирование и восстановление БД PostgreSQL
Вся конфигурация DataLens (пользователи, дашборды, права) хранится в служебной базе PostgreSQL. Бэкап этой БД — это и есть бэкап всей системы. Скрипт init.sh предоставляет для этого удобные команды:
-
Создать бэкап
./init.sh --dump-postgres > datalens_backup.sqlЭта команда создаст SQL-дамп базы данных и выведет его в
stdout, который перенаправляется в файл. Регулярное выполнение этой команды — основа стратегии бэкапов. -
Восстановить из бэкапа
./init.sh --restore-postgres datalens_backup.sqlЭта команда развернет данные из указанного SQL-файла в базу данных.
Важно
Данные в БД будут перезаписаны.
Важность CONTROL_API_CRYPTO_KEY
При восстановлении из бэкапа на новой инсталляции DataLens есть критический нюанс. Пароли и токены в подключениях зашифрованы ключом CONTROL_API_CRYPTO_KEY. Если на новой системе этот ключ будет другим, DataLens не сможет расшифровать старые секреты, и все подключения перестанут работать.
Совет
При миграции через бэкап и восстановление важно перенести не только дамп БД, но и значение CONTROL_API_CRYPTO_KEY из секрета Kubernetes старой системы в новую.
Экспорт и импорт воркбуков
Этот механизм предназначен для переноса конкретного контента. Он требует, чтобы на обеих инсталляциях была включена фича export.
Процесс:
-
На исходной системе
Пользователь с правами на воркбук выбирает опцию Экспортировать. DataLens формирует ZIP-архив со всеми объектами внутри воркбука.
-
На целевой системе
Пользователь с ролью администратора или редактора выбирает Импортировать и загружает полученный архив.
После импорта может потребоваться привязать датасеты к новым подключениям, так как ID подключений на разных системах могут не совпадать.
Сценарий миграции: Yandex Cloud → On-premises
Это частая задача, когда компания переносит аналитику в свой контур. Поскольку прямого доступа к служебной БД облачного DataLens нет, используется метод экспорта и импорта.
План миграции:
-
Подготовка
Развернуть и настроить DataLens On-premises, включая авторизацию и сетевые доступы к источникам данных.
-
Создание подключений
В новом On-premises-окружении вручную создать все подключения к источникам данных, которые использовались в облаке.
-
Экспорт
В облачном DataLens последовательно экспортировать все необходимые воркбуки в JSON-файлы.
-
Импорт
В On-premises-окружении импортировать полученные JSON-файлы.
-
Перепривязка
После импорта открыть датасеты и убедиться, что они используют новые подключения.
Кейс
Вы переносите DataLens на новый сервер с помощью pg_dump/pg_restore. После восстановления все дашборды на месте, но чарты не работают и выдают ошибку Connection failed. Что вы забыли сделать?
-
Включить фичу
export -
Перенести
CONTROL_API_CRYPTO_KEYсо старого сервера на новый -
Выполнить команду
./init.sh --get-admin-password -
Создать заново все подключения вручную
-
Включить фичу
exportФича
exportнужна для переноса отдельных воркбуков, а не для восстановления из полного бэкапа. -
Перенести
CONTROL_API_CRYPTO_KEYсо старого сервера на новыйВерно! Без старого ключа DataLens не может расшифровать сохраненные реквизиты доступа к базам данных, что и приводит к ошибкам подключения.
-
Выполнить команду
./init.sh --get-admin-passwordЭта команда только показывает пароль администратора и не влияет на работу подключений.
*Создать заново все подключения вручную
Это был бы обходной путь, но причина проблемы в другом. Правильное решение — перенести ключ.
Практика: создание и восстановление бэкапа
Сымитируйте процесс Disaster Recovery на вашем стенде.
-
Создайте резервную копию текущего состояния.
./init.sh --dump-postgres > my_first_backup.sqlУ вас появится файл
my_first_backup.sql. -
Войдите в интерфейс DataLens и удалите какой-нибудь объект.
-
Убедитесь, что объект действительно удален.
-
Восстановите систему из бэкапа.
./init.sh --restore-postgres my_first_backup.sql -
После завершения команды обновите страницу в браузере. Удаленный объект должен снова появиться.
Итоги
Вы освоили критически важные навыки: резервное копирование, восстановление и миграцию. Теперь вы умеете разворачивать, настраивать DataLens On-premises и обеспечивать его стабильную работу в долгосрочной перспективе.
Вы готовы к реальным задачам администрирования этой мощной BI-платформы. Успехов в работе!