How we built fast UPDATEs for the ClickHouse column store – Part 1: Purpose-built engines
Колоночные хранилища данных не предназначены для обновлений на уровне строк. ClickHouse не стал исключением: он разработан для обеспечения высокой скорости при масштабировании, оптимизирован для быстрых вставок и аналитики, а не для изменения отдельных строк. Однако, реальный опыт использования иногда требует обновления отдельных строк.
Пользователи ClickHouse часто его используют для хранения быстро меняющихся данных: данные Интернета вещей (показания датчиков) , электронной коммерции (заказы и инвентарь) , финансов (статус платежей) , игр (статистика игроков) и CRM/HR (профили пользователей или сотрудников) — данные, которые необходимо корректировать, обновлять или удалять. Вместо того, чтобы принудительно выполнять медленные операции обновления (UPDATE) в системе, рассчитанной на большие объемы данных, в Clickhouse пошли другим путем: они рассматривают обновления как вставки.
Это не обходной путь, а осознанное решение. Такие движки, как ReplacingMergeTree , CoalescingMergeTree и CollapsingMergeTree , позволяют ClickHouse обрабатывать обновления и удаления, записывая новые строки вместо изменения существующих. Они используют высокую производительность ClickHouse при вставке и фоновый процесс слияния, избегая снижения производительности, характерного для обновлений на месте.
Читать дальше в блоге Clickhouse
Post #897
2.83K

- 👍 4
- ❤ 1
- 🔥 1
- 🤡 1