Вы можете пройти этот путь самостоятельно, автоматизировать его с помощью скрипта или передать ИИ-агенту. Для версии в консоли переключитесь в режим интерфейса Cloud.На этой странице описаны развертывание ClickHouse Managed Postgres, загрузка данных, их репликация в ClickHouse и выполнение запросов к ним — всё из командной строки с помощью ClickHouse CLI (Установите ClickHouse CLI:Вам также понадобятся Либо задайте переменные окружения Создайте сервис и сохраните полученный ответ; пароль отображается только один раз:В ответе указаны идентификатор сервиса, имя хоста и готовая к использованию строка подключения:Получите всё, что понадобится далее в этом руководстве:Если пароль потерян, сгенерируйте новый с помощью Подготовка занимает несколько минут. Проверяйте состояние, пока оно не станет Создайте две таблицы и вставьте 1 миллион событий через Вставка 1 млн строк выполняется примерно за 7 секунд на Создайте сервис в том же регионе и сохраните ответ; пароль отображается только в ответе на создание:Подождите, пока он не заработает; для ClickPipe требуется работающий пункт назначения:Чтобы использовать существующий сервис, задайте Создайте Postgres CDC ClickPipe в сервисе ClickHouse, указав имя хоста Managed Postgres. Пайп скопирует существующие строки, а затем будет поддерживать синхронизацию ClickHouse с текущими изменениями:Примечания:Дождитесь, пока пайп не перейдёт в состояние
Пайп проходит состояния Выполняйте SQL-запросы к сервису ClickHouse напрямую из CLI. При первом вызове автоматически создаются конечная точка Query API и ключ API, ограниченный этим сервисом:Новые данные, записываемые в Postgres, реплицируются непрерывно. Вставьте строку и выполняйте опрос, пока количество строк не достигнет 1 000 001 (обычно это занимает меньше минуты):Расширение Heredoc намеренно оставлен без кавычек, чтобы оболочка подставила Сначала удалите ClickPipe, затем сервис Postgres. При удалении сервиса все его данные удаляются без возможности восстановления:Нельзя удалить работающий сервис ClickHouse напрямую. Остановите его, дождитесь состояния
clickhousectl) и psql. Команды выполняются в неинтерактивном режиме; clickhousectl выводит JSON при использовании --json.Требования
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:Загрузите пример данных
psql:c6gd.large (самом маленьком типоразмере) благодаря NVMe-хранилищу. Проверьте это запросом; количество строк от запуска к запуску различается, потому что данные генерируются с помощью random():Часть 2: Репликация данных в ClickHouse
Создайте сервис ClickHouse
CH_ID, взяв его из вывода clickhousectl cloud service list, а в CH_PASSWORD укажите пароль пользователя default, который потребуется на этапе pg_clickhouse.Реплицируйте таблицы в ClickHouse
- Реплицируемые таблицы попадают в базу данных
defaultсервиса ClickHouse и получают имена в соответствии с целями--table-mapping - Публикация и слот репликации создаются автоматически; публикация при этом ограничивается сопоставленными таблицами. Передайте
--publication-name, чтобы использовать публикацию, которой вы управляете самостоятельно - Используйте прямое имя хоста Postgres; репликация через PgBouncer не поддерживается
Дождитесь, пока пайп не перейдёт в состояние Running
Provisioning, Setup и (для больших таблиц) Snapshot, прежде чем перейти в Running; для первого пайпа в сервисе это занимает около 4 минут. Failed и InternalError — конечные состояния:Выполните запрос к реплицированным данным в ClickHouse
Запросы к ClickHouse из Postgres
pg_clickhouse позволяет Postgres выступать в качестве единого слоя для запросов как к транзакционным, так и к аналитическим данным. Получите HTTPS-имя хоста ClickHouse, затем настройте расширение через psql:$CH_HOST и $CH_PASSWORD до того, как SQL попадёт в Postgres. Реплицированные таблицы теперь видны как внешние таблицы в схеме organization; запросы к ним выполняются в ClickHouse.По результатам измерений на c6gd.large с этим набором данных аналитические запросы через внешние таблицы выполняются в 6–9 раз быстрее (например, GROUP BY с 5 агрегациями: 176 мс через ClickHouse против 1 133 мс локально; JOIN с агрегациями: 298 мс против 2 764 мс).Очистка
stopped, затем удалите: