From 7558684e33767328e9f846cdd3d8d8da8525cd2b Mon Sep 17 00:00:00 2001 From: BayoNet Date: Sat, 28 Apr 2018 10:58:16 +0300 Subject: [PATCH] Multiple formatting and links fixes. --- docs/en/development/style.md | 2 +- docs/en/dicts/external_dicts_dict_layout.md | 2 +- docs/en/system_tables/system.functions.md | 7 ++----- docs/mkdocs_en.yml | 2 +- docs/mkdocs_ru.yml | 2 +- docs/ru/dicts/external_dicts.md | 16 ++++++++------ docs/ru/dicts/external_dicts_dict_layout.md | 2 +- docs/ru/dicts/index.md | 11 +++++++--- docs/ru/dicts/internal_dicts.md | 23 +++++++++++---------- docs/ru/functions/ym_dict_functions.md | 2 ++ docs/ru/system_tables/system.functions.md | 6 ++---- 11 files changed, 41 insertions(+), 34 deletions(-) diff --git a/docs/en/development/style.md b/docs/en/development/style.md index 0028feddc0e..546857a2351 100644 --- a/docs/en/development/style.md +++ b/docs/en/development/style.md @@ -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.) diff --git a/docs/en/dicts/external_dicts_dict_layout.md b/docs/en/dicts/external_dicts_dict_layout.md index 4f2a623d627..227eaab6b19 100644 --- a/docs/en/dicts/external_dicts_dict_layout.md +++ b/docs/en/dicts/external_dicts_dict_layout.md @@ -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. diff --git a/docs/en/system_tables/system.functions.md b/docs/en/system_tables/system.functions.md index ac550acc14b..a501dc54741 100644 --- a/docs/en/system_tables/system.functions.md +++ b/docs/en/system_tables/system.functions.md @@ -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. diff --git a/docs/mkdocs_en.yml b/docs/mkdocs_en.yml index 012d498f3e2..08209f90550 100644 --- a/docs/mkdocs_en.yml +++ b/docs/mkdocs_en.yml @@ -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' diff --git a/docs/mkdocs_ru.yml b/docs/mkdocs_ru.yml index 931925a2fc1..2e8eae30640 100644 --- a/docs/mkdocs_ru.yml +++ b/docs/mkdocs_ru.yml @@ -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' diff --git a/docs/ru/dicts/external_dicts.md b/docs/ru/dicts/external_dicts.md index c0b9f520b30..0b7b9566ff9 100644 --- a/docs/ru/dicts/external_dicts.md +++ b/docs/ru/dicts/external_dicts.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) произвольное количество словарей. Формат файла сохраняется даже если словарь один (т.е. ` `). -Смотрите также "[Функции для работы с внешними словарями](../functions/ext_dict_functions.md#ext_dict_functions)" . +>Вы можете преобразовывать значения по небольшому словарю, описав его в запросе `SELECT` (см. функцию [transform](../functions/other_functions.md#other_functions-transform)). Эта функциональность не связана с внешними словарями. -
-Вы можете преобразовывать значения по небольшому словарю, описав его в запросе `SELECT` (см. функцию [transform](../functions/other_functions.md#other_functions-transform)). Эта функциональность не связана с внешними словарями. +Смотрите также: -
+- [Настройка внешнего словаря](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) diff --git a/docs/ru/dicts/external_dicts_dict_layout.md b/docs/ru/dicts/external_dicts_dict_layout.md index e9e50abf164..94108a1e818 100644 --- a/docs/ru/dicts/external_dicts_dict_layout.md +++ b/docs/ru/dicts/external_dicts_dict_layout.md @@ -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`. diff --git a/docs/ru/dicts/index.md b/docs/ru/dicts/index.md index 6d673ccef96..f474a241db6 100644 --- a/docs/ru/dicts/index.md +++ b/docs/ru/dicts/index.md @@ -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). diff --git a/docs/ru/dicts/internal_dicts.md b/docs/ru/dicts/internal_dicts.md index 6b765c6f55f..a4b736567d8 100644 --- a/docs/ru/dicts/internal_dicts.md +++ b/docs/ru/dicts/internal_dicts.md @@ -1,3 +1,5 @@ + + # Встроенные словари 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). -Положите файлы 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`. Обновление словарей (кроме загрузки при первом использовании) не блокирует запросы - во время обновления запросы используют старую версию словарей. Если при обновлении возникнет ошибка, то ошибка пишется в лог сервера, а запросы продолжат использовать старую версию словарей. Рекомендуется периодически обновлять словари с геобазой. При обновлении, генерируйте новые файлы, записывая их в отдельное место, а только когда всё готово - переименовывайте в файлы, которые использует сервер. diff --git a/docs/ru/functions/ym_dict_functions.md b/docs/ru/functions/ym_dict_functions.md index 4e0b6bd451d..1761a21a7dd 100644 --- a/docs/ru/functions/ym_dict_functions.md +++ b/docs/ru/functions/ym_dict_functions.md @@ -1,3 +1,5 @@ + + # Функции для работы со словарями Яндекс.Метрики Чтобы указанные ниже функции работали, в конфиге сервера должны быть указаны пути и адреса для получения всех словарей Яндекс.Метрики. Словари загружаются при первом вызове любой из этих функций. Если справочники не удаётся загрузить - будет выкинуто исключение. diff --git a/docs/ru/system_tables/system.functions.md b/docs/ru/system_tables/system.functions.md index 0f96a6fa167..f4ec19d1dbf 100644 --- a/docs/ru/system_tables/system.functions.md +++ b/docs/ru/system_tables/system.functions.md @@ -4,7 +4,5 @@ Столбцы: -```text -name String - имя функции -is_aggregate UInt8 - является ли функция агрегатной -``` +- `name` (`String`) – Имя функции. +- `is_aggregate` (`UInt8`) – Признак, является ли функция агрегатной.