Перейти к основному содержимому
Перейти к основному содержимому

Переписывание запросов PostgreSQL в ClickHouse

Это Часть 4 руководства по миграции с PostgreSQL на ClickHouse. Этот материал можно считать вводным, с целью помочь пользователям развернуть начальную функциональную систему, которая соответствует лучшим практикам ClickHouse. Он избегает сложных тем и не приведет к полностью оптимизированной схеме; скорее, он предоставляет твердую основу для пользователей, чтобы построить производственную систему и основываться на ее обучении.

В следующем представлены примерные запросы, сравнивающие PostgreSQL с ClickHouse. Этот список призван продемонстрировать, как использовать возможности ClickHouse для значительного упрощения запросов. Эти запросы, в большинстве случаев, также будут выполняться быстрее в ClickHouse. Примеры здесь используют полный набор данных Stack Overflow (до апреля 2024 года) на эквивалентных ресурсах в PostgreSQL и ClickHouse (8 ядер, 32 ГБ памяти).

Подсчеты здесь будут немного отличаться, поскольку данные Postgres содержат только строки, которые соответствуют ссылочной целостности внешних ключей. ClickHouse не накладывает таких ограничений и, следовательно, имеет полный набор данных, например, включая анонимных пользователей.

Пользователи (с более чем 10 вопросами), которые получили наибольшее количество просмотров:

Какие tags получают наибольшее количество views:

Агрегационные функции

Возможность использовать агрегирующие функции ClickHouse дает пользователям преимущество. Ниже показано использование функции argMax для вычисления самого просматриваемого вопроса каждого года.

Это значительно проще (и быстрее), чем эквивалентный запрос Postgres:

Условные выражения и массивы

Условные и массивные функции значительно упрощают запросы. Следующий запрос вычисляет теги (с более чем 10000 вхождениями) с наибольшим процентом изменения с 2022 по 2023 год. Обратите внимание, насколько следующий запрос ClickHouse лаконичен благодаря условным выражениям, массивным функциям и возможностью повторного использования псевдонимов в HASING и SELECT.

Это завершает наше базовое руководство для пользователей, мигрирующих с Postgres на ClickHouse. Мы рекомендуем пользователям, переходящим с Postgres, прочитать руководство по моделированию данных в ClickHouse, чтобы узнать больше о расширенных возможностях ClickHouse.