- Более высокая пропускная способность при вставке данных
- Более высокая производительность фоновых слияний
- Более высокая производительность мутаций
- Более быстрые операции scale-up и scale-down
- Более легковесная строгая согласованность для запросов SELECT
Интроспекция
system.replication_queue и system.replicated_fetches, поскольку здесь не происходит репликация данных и метаданных. Однако в SharedMergeTree есть соответствующие альтернативы этим двум таблицам.
system.virtual_parts
Эта таблица служит альтернативой system.replication_queue для SharedMergeTree. В ней хранится информация о последнем наборе текущих частей, а также о будущих частях, находящихся в обработке, например при слиянии, мутациях и удалении партиций.
system.shared_merge_tree_fetches
Эта таблица служит альтернативой system.replicated_fetches для SharedMergeTree. Она содержит информацию о текущих загрузках в память первичных ключей и контрольных сумм.
SharedMergeTree включен по умолчанию.
Для сервисов, поддерживающих движок таблицы SharedMergeTree, вручную ничего включать не нужно. Вы можете создавать таблицы так же, как и раньше, а система автоматически будет использовать движок таблицы на базе SharedMergeTree, соответствующий движку, указанному в вашем запросе CREATE TABLE.
my_table с движком таблицы SharedMergeTree.
В ClickHouse Cloud не нужно указывать ENGINE=MergeTree, так как используется default_table_engine=MergeTree. Следующий запрос идентичен приведённому выше.
CREATE TABLE, с помощью SHOW CREATE TABLE:
Настройки
insert_quorum— все вставки в SharedMergeTree являются кворумными (записываются в общее хранилище), поэтому эта настройка не нужна при использовании движка таблицы SharedMergeTree.insert_quorum_parallel— все вставки в SharedMergeTree являются кворумными (записываются в общее хранилище), поэтому эта настройка не нужна при использовании движка таблицы SharedMergeTree.select_sequential_consistency— не требует кворумных вставок, но создает дополнительную нагрузку наclickhouse-keeperпри запросахSELECT
Согласованность
insert_quorum или insert_quorum_parallel. Вставки выполняются с кворумом: метаданные сохраняются в ClickHouse-Keeper и реплицируются как минимум на кворум узлов ClickHouse-Keeper. Каждая реплика в вашем кластере будет асинхронно получать новую информацию из ClickHouse-Keeper.
В большинстве случаев использовать select_sequential_consistency или SYSTEM SYNC REPLICA LIGHTWEIGHT не следует. Асинхронная репликация покрывает большинство сценариев и отличается очень низкой задержкой. В редких случаях, когда вам критически важно исключить чтение устаревших данных, следуйте этим рекомендациям в порядке предпочтения:
-
Если вы выполняете запросы в рамках одного и того же сеанса или на одном и том же узле и для чтения, и для записи,
select_sequential_consistencyне нужен, поскольку ваша реплика уже будет иметь самые свежие метаданные. -
Если вы записываете в одну реплику, а читаете из другой, можно использовать
SYSTEM SYNC REPLICA LIGHTWEIGHT, чтобы принудительно заставить реплику получить метаданные из ClickHouse-Keeper. -
Используйте
select_sequential_consistencyкак настройку в составе запроса.