提交 d73e9b67 编写于 作者: B BayoNet

Editing of russian sources including based on english sources changes.

上级 28d52bb9
......@@ -256,8 +256,8 @@ GROUP BY timeslot
## quantileTimingWeighted(level)(x, weight)
Отличается от функции quantileTiming наличием второго аргумента - «веса». Вес - неотрицательное целое число.
Результат считается так же, как если бы в функцию quantileTiming значение x было передано weight количество раз.
Отличается от функции `quantileTiming` наличием второго аргумента - «веса». Вес - неотрицательное целое число.
Результат считается так же, как если бы в функцию `quantileTiming` значение `x` было передано `weight` количество раз.
## quantileExact(level)(x)
......
......@@ -25,8 +25,8 @@
В структуре описываются столбцы:
- `<id>` -[ключевой столбец](external_dicts_dict_structure.md#dicts-external_dicts_dict_structure-key).
- `<attribute>` -[столбец данных](external_dicts_dict_structure.md#dicts-external_dicts_dict_structure-attributes). Столбцов может быть много.
- `<id>` - [ключевой столбец](external_dicts_dict_structure.md#dicts-external_dicts_dict_structure-key).
- `<attribute>` - [столбец данных](external_dicts_dict_structure.md#dicts-external_dicts_dict_structure-attributes). Столбцов может быть много.
<a name="dicts-external_dicts_dict_structure-key"></a>
......@@ -66,9 +66,7 @@ ClickHouse поддерживает следующие виды ключей:
Ключем может быть кортеж (`tuple`) из полей произвольных типов. [layout](external_dicts_dict_layout.md#dicts-external_dicts_dict_layout) в этом случае должен быть `complex_key_hashed` или `complex_key_cache`.
<div class="admonition tip">
Cоставной ключ может состоять и из одного элемента, что даёт возможность использовать в качестве ключа, например, строку.
Cоставной ключ может состоять из одного элемента. Это даёт возможность использовать в качестве ключа, например, строку.
</div>
Структура ключа задаётся в элементе `<key>`. Поля ключа задаются в том же формате, что и [атрибуты](external_dicts_dict_structure.md#dicts-external_dicts_dict_structure-attributes) словаря. Пример:
......@@ -107,6 +105,7 @@ Cоставной ключ может состоять и из одного эл
<expression>rand64()</expression>
<hierarchical>true</hierarchical>
<injective>true</injective>
<is_object_id>true</is_object_id>
</attribute>
</structure>
```
......@@ -119,4 +118,5 @@ Cоставной ключ может состоять и из одного эл
- `expression` - Атрибут может быть выражением. Тег не обязательный.
- `hierarchical` - Поддержка иерархии. Отображение в идентификатор родителя. По умолчанию, `false`.
- `injective` - Признак инъективности отображения `id -> attribute`. Если `true`, то можно оптимизировать `GROUP BY`. По умолчанию, `false`.
- `is_object_id` - Признак того, что запрос выполняется к документу MongoDB по `ObjectID`.
......@@ -62,3 +62,19 @@ SELECT
### arrayFirstIndex(func, arr1, ...)
Вернуть индекс первого элемента массива arr1, для которого функция func возвращает не 0.
### arrayCumSum(\[func,\] arr1, ...)
Возвращает совокупную сумму элементов массива, полученную при применении функции `func` к каждому элементу массива `arr`.
Пример:
```sql
SELECT arrayCumSum([1, 1, 1, 1]) AS res
```
```text
┌─res──────────┐
│ [1, 2, 3, 4] │
└──────────────┘
```
......@@ -4,7 +4,7 @@
Движок `Dictionary` отображает данные словаря как таблицу ClickHouse.
К примеру у нас есть словарь `products` со следующим конфигом:
Рассмотрим для примера словарь `products` со следующей конфигурацией:
```xml
<dictionaries>
......@@ -37,7 +37,7 @@
</dictionaries>
```
Проверяем:
Запрос данных словаря:
```sql
select name, type, key, attribute.names, attribute.types, bytes_allocated, element_count,source from system.dictionaries where name = 'products';
......@@ -60,14 +60,18 @@ WHERE name = 'products'
└──────────┴──────┴────────┴─────────────────┴─────────────────┴─────────────────┴───────────────┴─────────────────┘
```
В таком виде данные из словаря можно смотреть/использовать при помощи функций [dictGet*](../functions/ext_dict_functions.md#ext_dict_functions).
Это бывает не всегда угодно, когда требуется выполнять JOIN операции или просто получить данные находящиеся сейчас в словаре.
В таком виде данные из словаря можно получить при помощи функций [dictGet*](../functions/ext_dict_functions.md#ext_dict_functions).
Мы можем использовать джок таблицы `Dictionary` для отображения данных словаря в таблицу.
Такое представление неудобно, когда нам необходимо получить данные в чистом виде, а также при выполнении операции `JOIN`. Для этих случаев можно использовать движок `Dictionary`, который отобразит данные словаря в таблицу.
Синтаксис: `CREATE TABLE %table_name% (%fields%) engine = Dictionary(%dictionary_name%)`
Синтаксис:
Попробуем:
```
CREATE TABLE %table_name% (%fields%) engine = Dictionary(%dictionary_name%)`
```
Пример использования:
```sql
create table products (product_id UInt64, title String) Engine = Dictionary(products);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册