Почему 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