Comments 12
Оказывается, ClickHouse сделан так, что он может пережить 100 вставок в секунду, а в каждой вставке при этом 10 000 строк.
Можно поинтересоваться что за строки — сколько столбцов, каков размер строки? И не совсем уловил характеристики "железа", на котором этот впечатляющий миллион достигается.
Вставка атомарная? Т.е. если вставляешь 10.000 строк не получится ли так, что пара тысяч строк вставились, а остальные — нет?
Можно поинтересоваться что за строки — сколько столбцов, каков размер строки? И не совсем уловил характеристики «железа», на котором этот впечатляющий миллион достигается.
Столбцов порядка 20, общий размер строки в пределах 1КБ
Железо, 4 ядра, 32ГБ RAM, 500ГБ HDD
Клик заточен для хранения и обработки большого числа мелких строк, поля с большим объемом тут хранить не рекомендуется.
Вставка атомарная? Т.е. если вставляешь 10.000 строк не получится ли так, что пара тысяч строк вставились, а остальные — нет?
В Клике вставка в общем случае неатомарная, и как раз может получиться такая ситуация, если нужна гарантия, то либо нужно в прикладе перепроверять и перевставлять,
либо искать другое решение.
Вставка атомарная.
Интересно. А можете прокомментировать вот это:
It could be atomic if
- only if it inserts into only one partition
- only if number of rows is less than max_insert_block_size (and others
- min_insert_block_size_rows,min_insert_block_size_bytes)
- only if a table does not have MV (there is no atomicity Table <-> MV)
Почти всё правильно написано.
Если при вставке затронуто несколько партиций, то вставка в каждую из них атомарна по отдельности, но не весь INSERT в целом.
max_insert_block_size по-умолчанию 1 млн. строк, если вставка меньше, то она разбивается на несколько. Настройку max_insert_block_size можно менять по своему усмотрению.
min_insert_block_size_rows, min_insert_block_size_bytes не влияют на атомарность, тут Denny Crane ошибся.
Если на таблицу навешаны материализованные представления, то вставка в таблицу, по прежнему, атомарна, как и вставки во все связанные таблицы, но все эти вставки вместе не являются атомарной операцией.
Изначально ClickHouse был NoSQL-СУБД...
Это неправда. ClickHouse с самого появления умел SQL.
https://en.wikipedia.org/wiki/ClickHouse
• SQL support. ClickHouse supports an extended SQL-like language that includes arrays and nested data structures, approximate and URI functions, and the availability to connect an external key-value store.
Когда мы начинали использовать ClickHouse, в нем не было даже нормальной поддержки операции объединения таблиц, можно было объединять только две таблицы или два подзапроса.
Вот это скорость! Как мы подружили наш UBA-модуль с ClickHouse и что из этого вышло