для чтения? После мержа? Или какой-то ещё процесс есть?
сразу как только клиенту сказали OK данные доступны для SELECT они лежат в новообразованных parts, одна по каждой partitions которая затронута при вставке (обычно вставляют в одну partition так что и part один) background merge запускаеся фоном и на "доступность" для SELECT не влияет
Добрый день. А гарантия доступности для select запросов 100% сразу после вставки или есть вероятность, что данные все-таки станут доступны только после background merge в каких-то редких специфичных кейсах?
Если не успели отреплицироваться
вставляете в replicatedmergetree или distributed?
вставка в distributed сначала по ключу шардирования создаются временные файлы для каждого шарда потом в фоне "вставляются" (SYSTEM START/STOP DISTRIBUTED SEND смотрите в доке) если SELECT из distributed таблицы на том же хосте что и INSERT то эти данные точно должны быть доступны если SELECT из distributed таблицы на другом хосте от INSERT вроде тоже должно быть, но надо проверять если SELECT из *MergeTree то да, гарантии нет
https://clickhouse.tech/docs/ru/operations/settings/settings/#insert_distributed_sync
Обсуждают сегодня