Перенос дампов ClickHouse
Перенос схемы ClickHouse (таблицы, словари, view) со «старого» сиджа на новый через команды
./yii transfer/*.
1. Экспорт схемы (на «старом» сидже)
./yii transfer/export-clickhouse-schemeСоздаёт дамп ClickHouse в файл:
console/runtime/clickhouse.sql
Метод не менялся.
Запустите команду на одном из «старых» сиджей, затем скачайте созданный файл на новый сидж по тому же пути (console/runtime/clickhouse.sql).
2. Импорт схемы (на новом сидже)
./yii transfer/import-clickhouse-schemeМетод переработан: раньше он просто выполнял дамп, теперь работает в 3 этапа:
- Таблицы. Создаёт все таблицы. В каждый запрос добавляется
IF NOT EXISTS, чтобы не падать с ошибкой, если таблица уже существует. - Словари. Создаёт словари, подменяя
sourceна актуальный конфиг Postgres. Также добавляетсяIF NOT EXISTS. - View. Создаются в последнюю очередь — после таблиц и словарей. Раньше view выдавали ошибку, если создавались до таблицы, на которую ссылаются; теперь порядок корректный.
Postgres на другом сервере
Если Postgres и ClickHouse находятся на разных серверах, в конфиге Postgres должен быть указан реальный IP, а не
localhost. Иначе словари будут ссылаться не туда.
3. Пересоздание словарей (при необходимости)
./yii transfer/recreate-clickhouse-dictsНовый метод. Используйте его, если:
- словари создавались из дампа до этого обновления; или
- в конфиге не был указан IP сервера с Postgres.
После обновления конфига эта команда пересоздаёт словари корректно.
Источник: @Yuriy — процесс переноса дампов ClickHouse.