Перейти к основному содержанию
Это руководство содержит пошаговые инструкции по миграции вашей базы данных PostgreSQL в ClickHouse Managed Postgres с помощью утилит pg_dump и pg_restore.

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

  • Доступ к исходной базе данных PostgreSQL.
  • На локальном компьютере должны быть установлены pg_dump и pg_restore. Обычно они входят в состав PostgreSQL. Если нет, их можно скачать с официального сайта PostgreSQL.

Настройка

Чтобы выполнить эти шаги, возьмём в качестве исходной базы пример базы данных RDS Postgres. Например, такую: Вот с чем мы будем работать:
  • Две таблицы — events и users. В events миллион строк, а в users — тысяча.
  • У events есть индекс.
  • Представление поверх таблицы events.
  • Пара последовательностей

Создайте dump исходной базы данных

Теперь воспользуемся pg_dump, чтобы создать dump-файл перечисленных выше объектов. Это простая команда:
pg_dump \
  -d 'postgresql://<user>:<password>@<host>:<port>/<database>' \
  --format directory \
  -f rds-dump
Здесь:
  • Замените <user>, <password>, <host>, <port> и <database> на учетные данные исходной базы данных. Большинство провайдеров Postgres предоставляют строку подключения, которую можно использовать напрямую.
  • --format directory указывает, что дамп нужно сохранить в формате каталога, который подходит для pg_restore.
  • -f rds-dump указывает выходной каталог для файлов дампа. Обратите внимание: этот каталог будет создан автоматически и не должен существовать заранее.
  • Вы также можете распараллелить создание дампа, добавив флаг --jobs, а затем указав количество параллельных задач, которые нужно запустить. Подробнее см. в документации pg_dump.
Вы можете один раз запустить этот процесс, чтобы оценить, сколько времени он занимает и какого размера получится файл дампа.
Вот как выглядит выполнение этой команды:

Восстановите дамп в ClickHouse Managed Postgres

Теперь, когда у нас есть файл дампа, мы можем восстановить его в экземпляре ClickHouse Managed Postgres с помощью pg_restore.

Создайте экземпляр Managed Postgres

Сначала убедитесь, что у вас настроен экземпляр Managed Postgres, желательно в том же регионе, что и исходный источник. Вы можете воспользоваться кратким руководством здесь. Вот что мы развернем в рамках этого руководства:

Восстановите дамп

Теперь, вернувшись к локальной машине, мы можем использовать команду pg_restore, чтобы восстановить данные из дампа в наш экземпляр Managed Postgres:
pg_restore \
  -d 'postgresql://<user>:<password>@<pg_clickhouse_host>:5432/<database>' \
  --verbose \
  rds-dump
Вы можете получить строку подключения для своего экземпляра Managed Postgres в консоли ClickHouse Cloud; очень простое объяснение приведено здесь. Здесь тоже есть пара флагов, на которые стоит обратить внимание:
  • --verbose выводит подробную информацию в процессе восстановления.
  • Здесь также можно использовать флаг --jobs, чтобы распараллелить восстановление. Подробнее см. в документации pg_restore.
В нашем случае это выглядит так:

Проверьте миграцию

После завершения восстановления вы можете подключиться к своему экземпляру Managed Postgres и убедиться, что все данные и объекты были успешно перенесены. Для подключения и выполнения запросов можно использовать любой клиент PostgreSQL. Вот как выглядит наш Managed Postgres после миграции: Как видно, все таблицы, индексы, представления и последовательности на месте, а количество данных совпадает.

Что следует учитывать

  • Убедитесь, что версии PostgreSQL исходной и целевой баз данных совместимы. Использование версии pg_dump старше, чем на исходном сервере, может привести к отсутствию некоторых возможностей или проблемам при восстановлении. В идеале используйте ту же основную версию pg_dump, что и для исходной базы данных, или более новую.
  • Создание дампа и восстановление больших баз данных может занять значительное время. Заранее спланируйте этот процесс, чтобы свести простой к минимуму, и при возможности используйте параллельное создание дампа и восстановление (—jobs).
  • Обратите внимание, что pg_dump / pg_restore не переносят все объекты, связанные с базой данных, и не сохраняют всё состояние среды выполнения. К ним относятся роли и членство в ролях, слоты репликации, конфигурация на уровне сервера (например, postgresql.conf, pg_hba.conf), табличные пространства и статистика времени выполнения.

Следующие шаги

Поздравляем! Вы успешно перенесли базу данных PostgreSQL в ClickHouse Managed Postgres с помощью pg_dump и pg_restore. Теперь вы можете изучить возможности Managed Postgres и его интеграцию с ClickHouse. Для начала ознакомьтесь с этим 10-минутным кратким руководством:
Последнее изменение 10 июня 2026 г.