блока невозможна
НО возможна частичная вставка инсерта.
Инсерт может разбиться на несколько блоков, это зависит от ключа партиционирования, т.е. инсерт должен покрывать только одну партицию. Плюс зависит от max_insert_block_size.
атомарность insert ... select зависит от max_block_size и от того откуда select (от движка таблицы).
У MV нет атомарности, вставка может пройти в таблицу и не пройти в MV.
>2) В этом случае всё ещё можно полагаться на идемпотентность?
только для replicated таблиц, для последних 100 инсертов и только если блок абсолютно идентичен, теже строки в том же порядке.
>3) А если при повторной попытке в таком случае запись пойдет в другую реплику?
если для insert используются distributed то нужен ключ шардирования, чтобы блок попал в тот же самый шард что и предыдущая попытка
Вооот, ещё детали... Спасибо! Вообще выглядит так, что можно уже делать страничку вроде best practices and pitfalls of writing into clickhouse )
Обсуждают сегодня