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

Переписывание запросов 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 лаконичен благодаря условным выражениям, массивным функциям и возможности повторного использования псевдонимов в предложениях HAVING и SELECT.

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