Почему ClickHouse

Когда выбирают ClickHouse

OLTP/OLAP

Чтобы разобраться, для каких задач подходит ClickHouse, нужно понять какие вообще виды задач бывают. Выделяют два разных типа задач, связанных с БД:

OLTP

  • OLTP — Online Transaction Processing. Например:

    • удалить строку с определенным order_id

    • добавить новую покупку в таблицу с покупками

  • Это такие задачи, которые часто обрабатываются транзакционно (отсюда и название). Транзакция — это атомарная единица (пачка запросов), которую обрабатывает БД — либо обрабатывает полностью, либо не обрабатывает вообще.

  • Например, для обработки платежа важно, чтобы деньги у одного пользователя уменьшились, а у другого пользователя прибавились. И нужно чтобы произошло это одновременно и не могло возникнуть ситуации, когда у отправителя баланс уменьшился, а у получателя не увеличился. Для этого и используются транзакции.

  • Важно понимать, что OLTP-задачи требуют постоянной обработки строк для выполнения, поэтому базы данных, предназначенные для OLTP задач, хранят информацию построчно.

  • Пример такой СУБД это PostgreSQL. Выбирайте её, если для вашей системы необходимо частое чтение, запись, удаление строк — например, вы проектируете БД для интернет-магазина.

OLAP

  • OLAP — Online Analytical Processing: задача найти минимальное "что-то", максимальное, сгруппировать и прочие аналитические задачи. Особенность в том, что такие задачи требуют обработки полей целиком, т.е. работают с колонками.

  • Для OLAP-задач непривычно удаление или запись какой-то строки отдельно. Только большими блоками и относительно редко, например раз в день или в час.

  • Пример СУБД для выполнения таких задач — ClickHouse. Данные хранятся так, чтобы оптимально было вставлять данные редко и большими объёмами, а читать часто и тоже большими объёмами. Для этого ClickHouse использует колоночное хранение , чтобы иметь возможность быстро получить доступ ко всей колонке.

Именно поэтому для аналитики используется ClickHouse.

Last updated