mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 09:32:01 +00:00
Multiple formatting and links fixes.
This commit is contained in:
parent
99b1cbb3c4
commit
7558684e33
@ -14,7 +14,7 @@
|
||||
|
||||
**1.** Most of the formatting will be done automatically by `clang-format`.
|
||||
|
||||
**2.** Offsets are 4 spaces. Configure your development environment so that a tab adds four spaces.
|
||||
**2.** Indents are 4 spaces. Configure your development environment so that a tab adds four spaces.
|
||||
|
||||
**3.** A left curly bracket must be separated on a new line. (And the right one, as well.)
|
||||
|
||||
|
@ -193,7 +193,7 @@ The dictionary is stored in a cache that has a fixed number of cells. These cell
|
||||
|
||||
When searching for a dictionary, the cache is searched first. For each block of data, all keys that are not found in the cache or are outdated are requested from the source using ` SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)`. The received data is then written to the cache.
|
||||
|
||||
For cache dictionaries, the expiration [lifetime](dicts-external_dicts_dict_lifetime.md#dicts-external_dicts_dict_lifetime) of data in the cache can be set. If more time than `lifetime` has passed since loading the data in a cell, the cell's value is not used, and it is re-requested the next time it needs to be used.
|
||||
For cache dictionaries, the expiration [lifetime](external_dicts_dict_lifetime.md#dicts-external_dicts_dict_lifetime) of data in the cache can be set. If more time than `lifetime` has passed since loading the data in a cell, the cell's value is not used, and it is re-requested the next time it needs to be used.
|
||||
|
||||
This is the least effective of all the ways to store dictionaries. The speed of the cache depends strongly on correct settings and the usage scenario. A cache type dictionary performs well only when the hit rates are high enough (recommended 99% and higher). You can view the average hit rate in the `system.dictionaries` table.
|
||||
|
||||
|
@ -4,8 +4,5 @@ Contains information about normal and aggregate functions.
|
||||
|
||||
Columns:
|
||||
|
||||
```text
|
||||
name String – Function name.
|
||||
is_aggregate UInt8 – Whether it is an aggregate function.
|
||||
```
|
||||
|
||||
- `name` (`String`) – Function name.
|
||||
- `is_aggregate` (`UInt8`) – Whether it is an aggregate function.
|
||||
|
@ -213,7 +213,7 @@ pages:
|
||||
- 'Dictionaries':
|
||||
- 'Introduction': 'dicts/index.md'
|
||||
- 'External dictionaries':
|
||||
- 'External dictionaries': 'dicts/external_dicts.md'
|
||||
- 'General desription': 'dicts/external_dicts.md'
|
||||
- 'Configuring an external dictionary': 'dicts/external_dicts_dict.md'
|
||||
- 'Storing dictionaries in memory': 'dicts/external_dicts_dict_layout.md'
|
||||
- 'Dictionary updates': 'dicts/external_dicts_dict_lifetime.md'
|
||||
|
@ -213,7 +213,7 @@ pages:
|
||||
- 'Словари':
|
||||
- 'Введение': 'dicts/index.md'
|
||||
- 'Внешние словари':
|
||||
- 'Внешние словари': 'dicts/external_dicts.md'
|
||||
- 'Общее описание': 'dicts/external_dicts.md'
|
||||
- 'Настройка внешнего словаря': 'dicts/external_dicts_dict.md'
|
||||
- 'Хранение словарей в памяти': 'dicts/external_dicts_dict_layout.md'
|
||||
- 'Обновление словарей': 'dicts/external_dicts_dict_lifetime.md'
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
ClickHouse:
|
||||
|
||||
> - Полностью или частично хранит словари в оперативной памяти.
|
||||
> - Периодически обновляет их и динамически подгружает отсутствующие значения. Т.е. словари можно подгружать динамически.
|
||||
- Полностью или частично хранит словари в оперативной памяти.
|
||||
- Периодически обновляет их и динамически подгружает отсутствующие значения. Т.е. словари можно подгружать динамически.
|
||||
|
||||
Конфигурация внешних словарей находится в одном или нескольких файлах. Путь к конфигурации указывается в параметре [dictionaries_config](../operations/server_settings/settings.md#server_settings-dictionaries_config).
|
||||
|
||||
@ -37,10 +37,14 @@ ClickHouse:
|
||||
|
||||
В одном файле можно [сконфигурировать](external_dicts_dict.md#dicts-external_dicts_dict) произвольное количество словарей. Формат файла сохраняется даже если словарь один (т.е. `<yandex><dictionary> <!--configuration--> </dictionary></yandex>`).
|
||||
|
||||
Смотрите также "[Функции для работы с внешними словарями](../functions/ext_dict_functions.md#ext_dict_functions)" .
|
||||
>Вы можете преобразовывать значения по небольшому словарю, описав его в запросе `SELECT` (см. функцию [transform](../functions/other_functions.md#other_functions-transform)). Эта функциональность не связана с внешними словарями.
|
||||
|
||||
<div class="admonition attention">
|
||||
|
||||
Вы можете преобразовывать значения по небольшому словарю, описав его в запросе `SELECT` (см. функцию [transform](../functions/other_functions.md#other_functions-transform)). Эта функциональность не связана с внешними словарями.
|
||||
Смотрите также:
|
||||
|
||||
</div>
|
||||
- [Настройка внешнего словаря](external_dicts_dict.md#dicts-external_dicts_dict)
|
||||
- [Хранение словарей в памяти](external_dicts_dict_layout.md#dicts-external_dicts_dict_layout)
|
||||
- [Обновление словарей](external_dicts_dict_lifetime#dicts-external_dicts_dict_lifetime)
|
||||
- [Источники внешних словарей](external_dicts_dict_sources.md#dicts-external_dicts_dict_sources)
|
||||
- [Ключ и поля словаря](external_dicts_dict_structure.md#dicts-external_dicts_dict_structure)
|
||||
- [Функции для работы с внешними словарями](../functions/ext_dict_functions.md#ext_dict_functions)
|
||||
|
@ -191,7 +191,7 @@
|
||||
|
||||
При поиске в словаре сначала просматривается кэш. На каждый блок данных, все не найденные в кэше или устаревшие ключи запрашиваются у источника с помощью `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)`. Затем, полученные данные записываются в кэш.
|
||||
|
||||
Для cache-словарей может быть задано время устаревания [lifetime](dicts-external_dicts_dict_lifetime.md#dicts-external_dicts_dict_lifetime) данных в кэше. Если от загрузки данных в ячейке прошло больше времени, чем `lifetime`, то значение не используется, и будет запрошено заново при следующей необходимости его использовать.
|
||||
Для cache-словарей может быть задано время устаревания [lifetime](external_dicts_dict_lifetime.md#dicts-external_dicts_dict_lifetime) данных в кэше. Если от загрузки данных в ячейке прошло больше времени, чем `lifetime`, то значение не используется, и будет запрошено заново при следующей необходимости его использовать.
|
||||
|
||||
Это наименее эффективный из всех способов размещения словарей. Скорость работы кэша очень сильно зависит от правильности настройки и сценария использования. Словарь типа cache показывает высокую производительность лишь при достаточно больших hit rate-ах (рекомендуется 99% и выше). Посмотреть средний hit rate можно в таблице `system.dictionaries`.
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
# Словари
|
||||
|
||||
`Словарь` - это отображение (ключ `->` атрибуты), которое можно использовать в запросе в виде функций.
|
||||
Это можно рассматривать как более удобный и максимально эффективный вариант JOIN-а с таблицами-справочниками (dimension tables).
|
||||
Словарь — это отображение (`ключ -> атрибуты`), которое удобно использовать для различного вида справочников.
|
||||
|
||||
Существуют встроенные и подключаемые (внешние) словари.
|
||||
ClickHouse поддерживает специальные функции для работы со словарями, которые можно использовать в запросах. Проще и эффективнее использовать словари с помощью функций, чем `JOIN` с таблицами-справочниками.
|
||||
|
||||
|
||||
ClickHouse поддерживает:
|
||||
|
||||
- [Встроенные словари](internal_dicts.md#internal_dicts) со специфическим [набором функций](../functions/ym_dict_functions.md#ym_dict_functions).
|
||||
- [Подключаемые (внешние) словари](external_dicts.md#dicts-external_dicts) с [набором функций](../functions/ext_dict_functions.md#ext_dict_functions).
|
||||
|
@ -1,3 +1,5 @@
|
||||
<a name="internal_dicts"></a>
|
||||
|
||||
# Встроенные словари
|
||||
|
||||
ClickHouse содержит встроенную возможность работы с геобазой.
|
||||
@ -15,32 +17,31 @@ ClickHouse содержит встроенную возможность рабо
|
||||
Для включения, раскомментируйте параметры `path_to_regions_hierarchy_file` и `path_to_regions_names_files` в конфигурационном файле сервера.
|
||||
|
||||
Геобаза загружается из текстовых файлов.
|
||||
Если вы работаете в Яндексе, то для их создания вы можете воспользоваться инструкцией:
|
||||
<https://github.yandex-team.ru/raw/Metrika/ClickHouse_private/master/doc/create_embedded_geobase_dictionaries.txt>
|
||||
Если вы работаете в Яндексе, то для их создания вы можете воспользоваться [соответствующей инструкцией](https://github.yandex-team.ru/raw/Metrika/ClickHouse_private/master/doc/create_embedded_geobase_dictionaries.txt).
|
||||
|
||||
Положите файлы regions_hierarchy\*.txt в директорию path_to_regions_hierarchy_file. Этот конфигурационный параметр должен содержать путь к файлу regions_hierarchy.txt (иерархия регионов по умолчанию), а другие файлы (regions_hierarchy_ua.txt) должны находиться рядом в той же директории.
|
||||
Положите файлы `regions_hierarchy*.txt` в директорию `path_to_regions_hierarchy_file`. Этот конфигурационный параметр должен содержать путь к файлу `regions_hierarchy.txt` (иерархия регионов по умолчанию), а другие файлы (`regions_hierarchy_ua.txt`) должны находиться рядом в той же директории.
|
||||
|
||||
Положите файлы `regions_names_*.txt` в директорию path_to_regions_names_files.
|
||||
Положите файлы `regions_names_*.txt` в директорию `path_to_regions_names_files`.
|
||||
|
||||
Также вы можете создать эти файлы самостоятельно. Формат файлов такой:
|
||||
|
||||
`regions_hierarchy*.txt`: TabSeparated (без заголовка), столбцы:
|
||||
|
||||
- идентификатор региона (UInt32);
|
||||
- идентификатор родительского региона (UInt32);
|
||||
- тип региона (UInt8): 1 - континент, 3 - страна, 4 - федеральный округ, 5 - область, 6 - город; остальные типы не имеют значения;
|
||||
- население (UInt32) - не обязательный столбец.
|
||||
- идентификатор региона (`UInt32`);
|
||||
- идентификатор родительского региона (`UInt32`);
|
||||
- тип региона (`UInt8`): 1 - континент, 3 - страна, 4 - федеральный округ, 5 - область, 6 - город; остальные типы не имеют значения;
|
||||
- население (`UInt32`) - не обязательный столбец.
|
||||
|
||||
`regions_names_*.txt`: TabSeparated (без заголовка), столбцы:
|
||||
|
||||
- идентификатор региона (UInt32);
|
||||
- имя региона (String) - не может содержать табы или переводы строк, даже экранированные.
|
||||
- идентификатор региона (`UInt32`);
|
||||
- имя региона (`String`) - не может содержать табы или переводы строк, даже экранированные.
|
||||
|
||||
Для хранения в оперативке используется плоский массив. Поэтому, идентификаторы не должны быть больше миллиона.
|
||||
|
||||
Словари могут обновляться без перезапуска сервера. Но набор доступных словарей не обновляется.
|
||||
Для обновления проверяется время модификации файлов; если файл изменился, то словарь будет обновлён.
|
||||
Периодичность проверки настраивается конфигурационным параметром builtin_dictionaries_reload_interval.
|
||||
Периодичность проверки настраивается конфигурационным параметром `builtin_dictionaries_reload_interval`.
|
||||
Обновление словарей (кроме загрузки при первом использовании) не блокирует запросы - во время обновления запросы используют старую версию словарей. Если при обновлении возникнет ошибка, то ошибка пишется в лог сервера, а запросы продолжат использовать старую версию словарей.
|
||||
|
||||
Рекомендуется периодически обновлять словари с геобазой. При обновлении, генерируйте новые файлы, записывая их в отдельное место, а только когда всё готово - переименовывайте в файлы, которые использует сервер.
|
||||
|
@ -1,3 +1,5 @@
|
||||
<a name="ym_dict_functions"></a>
|
||||
|
||||
# Функции для работы со словарями Яндекс.Метрики
|
||||
|
||||
Чтобы указанные ниже функции работали, в конфиге сервера должны быть указаны пути и адреса для получения всех словарей Яндекс.Метрики. Словари загружаются при первом вызове любой из этих функций. Если справочники не удаётся загрузить - будет выкинуто исключение.
|
||||
|
@ -4,7 +4,5 @@
|
||||
|
||||
Столбцы:
|
||||
|
||||
```text
|
||||
name String - имя функции
|
||||
is_aggregate UInt8 - является ли функция агрегатной
|
||||
```
|
||||
- `name` (`String`) – Имя функции.
|
||||
- `is_aggregate` (`UInt8`) – Признак, является ли функция агрегатной.
|
||||
|
Loading…
Reference in New Issue
Block a user