Update settings.md

insert_deduplicate , force_deduplicate_childrens RU description
This commit is contained in:
Denis Zhuravlev 2020-03-06 19:25:22 -04:00 committed by GitHub
parent be11d6ce76
commit 5db4222ff8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -842,6 +842,34 @@ ClickHouse генерирует исключение
- [insert_quorum](#settings-insert_quorum)
- [insert_quorum_timeout](#settings-insert_quorum_timeout)
## insert_deduplicate {#settings-insert_deduplicate}
Включает и выключает дедупликацию для запросов `INSERT` (для Replicated* таблиц).
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 1.
По умолчанию блоки, вставляемые в реплицируемые таблицы оператором `INSERT`, дедуплицируются (см. [Репликация данных](../table_engines/replication.md).
## force_deduplicate_childrens {#settings-force_deduplicate_childrens}
Включает и выключает проверку дедупликации для материализованных представлений, которые получают данные из Replicated* таблиц.
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 0.
По умолчанию проверка дедупликации у материализованных представлений не производится, а наследуюется от Replicated* (основной) таблицы, за которой "следит" материализованное представление.
Т.е. если `INSERT` в основную таблицу д.б. пропущен (сдедуплирован), то автоматически не будет вставки и в материализованные представления. Это имплементировано для того, чтобы работали материализованные представления, которые сильно группируют данные основных `INSERT`, до такой степени что блоки вставляемые в материализованные представления получаются одинаковыми для разных `INSERT` в основную таблицу.
Одновременно это "ломает" идемпотентность вставки в материализованные представления. Т.е. если `INSERT` был успешен в основную таблицу и неуспешен в таблицу материализованного представления (напр. из-за сетевого сбоя при коммуникации с Zookeeper), клиент получит ошибку и попытается повторить `INSERT`. Но вставки в материализованные представления произведено не будет, потому что дедупликация сработает на основной таблице. Настройка `force_deduplicate_childrens` позволяет это изменить. Т.е. при повторном `INSERT` будет произведена дедупликация на таблице материализованного представления, и повторный инсерт вставит данные в таблицу материализованного представления, которые не удалось вставить из-за сбоя первого `INSERT`.
## count_distinct_implementation {#settings-count_distinct_implementation}
Задаёт, какая из функций `uniq*` используется при выполнении конструкции [COUNT(DISTINCT ...)](../../query_language/agg_functions/reference.md#agg_function-count).