Skip to main content
Вы можете пройти этот путь самостоятельно, автоматизировать его с помощью скрипта или передать ИИ-агенту. Для версии в консоли переключитесь в режим интерфейса Cloud.На этой странице описаны развертывание ClickHouse Managed Postgres, загрузка данных, их репликация в ClickHouse и выполнение запросов к ним — всё из командной строки с помощью ClickHouse CLI (clickhousectl) и psql. Команды выполняются в неинтерактивном режиме; clickhousectl выводит JSON при использовании --json.

Требования

Установите ClickHouse CLI:
Вам также понадобятся psql (клиентские инструменты PostgreSQL; на macOS — brew install libpq) и jq.Для операций записи (создание, удаление) требуется аутентификация по ключу API; вход через OAuth доступен только для чтения:
Либо задайте переменные окружения CLICKHOUSE_CLOUD_API_KEY и CLICKHOUSE_CLOUD_API_SECRET. Проверьте командой clickhousectl cloud auth status; в выводе должна быть запись с областью действия read/write.

Часть 1: Создайте Postgres и загрузите данные

Создайте сервис Postgres

Создайте сервис и сохраните полученный ответ; пароль отображается только один раз:
В ответе указаны идентификатор сервиса, имя хоста и готовая к использованию строка подключения:
Получите всё, что понадобится далее в этом руководстве:
Если пароль потерян, сгенерируйте новый с помощью clickhousectl cloud postgres reset-password $PG_ID --generate.

Дождитесь, пока сервис будет создан

Подготовка занимает несколько минут. Проверяйте состояние, пока оно не станет running:

Загрузите пример данных

Создайте две таблицы и вставьте 1 миллион событий через psql:
Вставка 1 млн строк выполняется примерно за 7 секунд на c6gd.large (самом маленьком типоразмере) благодаря NVMe-хранилищу. Проверьте это запросом; количество строк от запуска к запуску различается, потому что данные генерируются с помощью random():

Часть 2: Репликация данных в ClickHouse

Создайте сервис ClickHouse

Создайте сервис в том же регионе и сохраните ответ; пароль отображается только в ответе на создание:
Подождите, пока он не заработает; для ClickPipe требуется работающий пункт назначения:
Чтобы использовать существующий сервис, задайте CH_ID, взяв его из вывода clickhousectl cloud service list, а в CH_PASSWORD укажите пароль пользователя default, который потребуется на этапе pg_clickhouse.

Реплицируйте таблицы в ClickHouse

Создайте Postgres CDC ClickPipe в сервисе ClickHouse, указав имя хоста Managed Postgres. Пайп скопирует существующие строки, а затем будет поддерживать синхронизацию ClickHouse с текущими изменениями:
Примечания:
  • Реплицируемые таблицы попадают в базу данных default сервиса ClickHouse и получают имена в соответствии с целями --table-mapping
  • Публикация и слот репликации создаются автоматически; публикация при этом ограничивается сопоставленными таблицами. Передайте --publication-name, чтобы использовать публикацию, которой вы управляете самостоятельно
  • Используйте прямое имя хоста Postgres; репликация через PgBouncer не поддерживается

Дождитесь, пока пайп не перейдёт в состояние Running

Пайп проходит состояния Provisioning, Setup и (для больших таблиц) Snapshot, прежде чем перейти в Running; для первого пайпа в сервисе это занимает около 4 минут. Failed и InternalError — конечные состояния:

Выполните запрос к реплицированным данным в ClickHouse

Выполняйте SQL-запросы к сервису ClickHouse напрямую из CLI. При первом вызове автоматически создаются конечная точка Query API и ключ API, ограниченный этим сервисом:
Новые данные, записываемые в Postgres, реплицируются непрерывно. Вставьте строку и выполняйте опрос, пока количество строк не достигнет 1 000 001 (обычно это занимает меньше минуты):

Запросы к ClickHouse из Postgres

Расширение pg_clickhouse позволяет Postgres выступать в качестве единого слоя для запросов как к транзакционным, так и к аналитическим данным. Получите HTTPS-имя хоста ClickHouse, затем настройте расширение через psql:
Heredoc намеренно оставлен без кавычек, чтобы оболочка подставила $CH_HOST и $CH_PASSWORD до того, как SQL попадёт в Postgres. Реплицированные таблицы теперь видны как внешние таблицы в схеме organization; запросы к ним выполняются в ClickHouse.По результатам измерений на c6gd.large с этим набором данных аналитические запросы через внешние таблицы выполняются в 6–9 раз быстрее (например, GROUP BY с 5 агрегациями: 176 мс через ClickHouse против 1 133 мс локально; JOIN с агрегациями: 298 мс против 2 764 мс).

Очистка

Сначала удалите ClickPipe, затем сервис Postgres. При удалении сервиса все его данные удаляются без возможности восстановления:
Нельзя удалить работающий сервис ClickHouse напрямую. Остановите его, дождитесь состояния stopped, затем удалите:
Последнее изменение 24 июля 2026 г.