вставка удалась, но информация об этом не дошла до вставляющего процесса...
2) В этом случае всё ещё можно полагаться на идемпотентность? (Точнее, именно в этом случае и нужно, для того она и есть?)
3) А если при повторной попытке в таком случае запись пойдет в другую реплику?
насколько я в курсе, повторно блок не вставится https://clickhouse.yandex/docs/en/operations/table_engines/replication/ https://clickhouse.yandex/docs/en/operations/settings/settings/#settings-max_insert_block_size https://clickhouse.yandex/docs/en/operations/settings/settings/#settings-insert_quorum
нужно делать все очень аккуратно. >1) Стало быть, частичная вставка блока невозможна НО возможна частичная вставка инсерта. Инсерт может разбиться на несколько блоков, это зависит от ключа партиционирования, т.е. инсерт должен покрывать только одну партицию. Плюс зависит от max_insert_block_size. атомарность insert ... select зависит от max_block_size и от того откуда select (от движка таблицы). У MV нет атомарности, вставка может пройти в таблицу и не пройти в MV. >2) В этом случае всё ещё можно полагаться на идемпотентность? только для replicated таблиц, для последних 100 инсертов и только если блок абсолютно идентичен, теже строки в том же порядке. >3) А если при повторной попытке в таком случае запись пойдет в другую реплику? если для insert используются distributed то нужен ключ шардирования, чтобы блок попал в тот же самый шард что и предыдущая попытка
Обсуждают сегодня