mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Merge pull request #1247 from BayoNet/master
`force_index_by_date` and `force_primary_key` are documented
This commit is contained in:
commit
997ffe02f9
@ -43,6 +43,30 @@ fallback_to_stale_replicas_for_distributed_queries
|
||||
По умолчанию - 1 (включена).
|
||||
|
||||
|
||||
.. _settings-settings-force_index_by_date:
|
||||
|
||||
force_index_by_date
|
||||
-------------------
|
||||
|
||||
Запрещает выполнение запросов, если использовать индекс по дате невозможно.
|
||||
|
||||
Работает с таблицами семейства MergeTree.
|
||||
|
||||
При ``force_index_by_date=1`` ClickHouse проверяет, есть ли в запросе условие на ключ даты, которое может использоваться для отсечения диапазонов данных. Если подходящего условия нет - кидается исключение. При этом не проверяется, действительно ли условие уменьшает объём данных для чтения. Например, условие ``Date != '2000-01-01'`` подходит даже в том случае, когда соответствует всем данным в таблице (т.е. для выполнения запроса требуется full scan). Подробнее про диапазоны данных в таблицах MergeTree читайте в разделе :ref:`table_engines-mergetree`.
|
||||
|
||||
|
||||
.. _settings-settings-force_primary_key:
|
||||
|
||||
force_primary_key
|
||||
-----------------
|
||||
|
||||
Запрещает выполнение запросов, если использовать индекс по первичному ключу невозможно.
|
||||
|
||||
Работает с таблицами семейства MergeTree.
|
||||
|
||||
При ``force_primary_key=1`` ClickHouse проверяет, есть ли в запросе условие на первичный ключ, которое может использоваться для отсечения диапазонов данных. Если подходящего условия нет - кидается исключение. При этом не проверяется, действительно ли условие уменьшает объём данных для чтения. Подробнее про диапазоны данных в таблицах MergeTree читайте в разделе :ref:`table_engines-mergetree`.
|
||||
|
||||
|
||||
input_format_allow_errors_num
|
||||
-----------------------------
|
||||
Устанавливает максимальное количество допустимых ошибок при чтении из текстовых форматов (CSV, TSV и т.п.).
|
||||
@ -327,4 +351,4 @@ strict_insert_defaults
|
||||
Если при выполнении запроса :ref:`queries-insert` данные для столбца не заданы, то ClickHouse присваивает полям значения по умолчанию. Значения по умолчанию определяются свойством ``DEFAULT`` для каждого столбца в настройках таблицы. Если для столбца не определен ``DEFAULT``, то когда:
|
||||
|
||||
* ``strict_insert_defaults=0`` - полям столбца присваиваются нули и пустые строки.
|
||||
* ``strict_insert_defaults=1`` - ClickHouse генерирует исключение и обязывает пользователя передать данные в столбец.
|
||||
* ``strict_insert_defaults=1`` - ClickHouse генерирует исключение и обязывает пользователя передать данные в столбец.
|
||||
|
@ -627,7 +627,7 @@ ClickHouse отсекает все пробелы и один перенос с
|
||||
SELECT
|
||||
~~~~~~
|
||||
|
||||
Его величество, запрос SELECT.
|
||||
Выборка данных.
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
@ -645,6 +645,7 @@ SELECT
|
||||
[UNION ALL ...]
|
||||
[INTO OUTFILE filename]
|
||||
[FORMAT format]
|
||||
[LIMIT n BY columns]
|
||||
|
||||
Все секции, кроме списка выражений сразу после SELECT, являются необязательными.
|
||||
Ниже секции будут описаны в порядке, почти соответствующем конвейеру выполнения запроса.
|
||||
@ -1172,7 +1173,7 @@ GROUP BY во внешней памяти
|
||||
Модификатор LIMIT N BY
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
LIMIT N BY COLUMNS позволяет выбрать топ N строк для каждой группы COLUMNS. LIMIT N BY не связан с LIMIT и они могут использоваться в одном запросе. Ключ для LIMIT N BY может содержать произвольное число колонок или выражений.
|
||||
LIMIT N BY COLUMNS выбирает топ N строк для каждой группы COLUMNS. LIMIT N BY не связан с LIMIT и они могут использоваться в одном запросе. Ключ для LIMIT N BY может содержать произвольное число колонок или выражений.
|
||||
|
||||
Пример:
|
||||
|
||||
@ -1189,7 +1190,9 @@ LIMIT N BY COLUMNS позволяет выбрать топ N строк для
|
||||
LIMIT 5 BY domain, device_type
|
||||
LIMIT 100
|
||||
|
||||
выберет топ 5 рефереров для каждой пары domain - device type. Ограничить общее число строк результата 100.
|
||||
Запрос выберет топ 5 рефереров для каждой пары ``domain, device_type``, но не более 100 строк (``LIMIT n BY + LIMIT``).
|
||||
|
||||
|
||||
|
||||
Секция HAVING
|
||||
"""""""""""""
|
||||
|
@ -57,8 +57,12 @@ MergeTree
|
||||
|
||||
SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%'
|
||||
|
||||
Чтобы проверить сможет ли ClickHouse использовать индекс при выполнении запроса, используйте настройки :ref:`settings-settings-force_index_by_date` и :ref:`settings-settings-force_primary_key`.
|
||||
|
||||
Индекс по дате обеспечивает чтение только кусков, содержащих даты из нужного диапазона. При этом, кусок данных может содержать данные за многие даты (до целого месяца), а в пределах одного куска, данные лежат упорядоченными по первичному ключу, который может не содержать дату в качестве первого столбца. В связи с этим, при использовании запроса с указанием условия только на дату, но не на префикс первичного ключа, будет читаться данных больше, чем за одну дату.
|
||||
|
||||
|
||||
|
||||
Для конкуррентного доступа к таблице, используется мульти-версионность. То есть, при одновременном чтении и обновлении таблицы, данные будут читаться из набора кусочков, актуального на момент запроса. Длинных блокировок нет. Вставки никак не мешают чтениям.
|
||||
|
||||
Чтения из таблицы автоматически распараллеливаются.
|
||||
|
Loading…
Reference in New Issue
Block a user