mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
Added changes from english version of documentation to the russian one.
This commit is contained in:
parent
dc5249d0c1
commit
da3e2a6de2
@ -1,5 +1,6 @@
|
||||
# DateTime
|
||||
<a name="data_type-datetime"></a>
|
||||
|
||||
# DateTime
|
||||
|
||||
Дата-с-временем. Хранится в 4 байтах, в виде (беззнакового) unix timestamp. Позволяет хранить значения в том же интервале, что и для типа Date. Минимальное значение выводится как 0000-00-00 00:00:00.
|
||||
Время хранится с точностью до одной секунды (без учёта секунд координации).
|
||||
|
@ -1,3 +1,5 @@
|
||||
<a name="data_type-int"></a>
|
||||
|
||||
# UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64
|
||||
|
||||
Целые числа фиксированной длины, без знака или со знаком.
|
||||
@ -9,8 +11,8 @@
|
||||
- Int32 - [ -2147483648 : 2147483647 ]
|
||||
- Int64 - [ -9223372036854775808 : 9223372036854775807 ]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Диапазоны Uint
|
||||
|
||||
- UInt8 - [ 0 : 255 ]
|
||||
|
@ -1,3 +1,4 @@
|
||||
# JDBC-драйвер
|
||||
|
||||
Для ClickHouse существует официальный JDBC драйвер. Смотрите [здесь](https://github.com/yandex/clickhouse-jdbc) .
|
||||
- [Официальный драйвер](https://github.com/yandex/clickhouse-jdbc).
|
||||
- Драйвер от сторонней огранизации [ClickHouse-Native-JDBC](https://github.com/housepower/ClickHouse-Native-JDBC).
|
||||
|
@ -20,13 +20,18 @@
|
||||
|
||||
Основные возможности:
|
||||
|
||||
- Создание запросов.
|
||||
- Построение запросов с подсветкой синтаксиса. Просмотр ответа в табличном или JSON представлении.
|
||||
- Экспортирование результатов запроса в формате CSV или JSON.
|
||||
- Список процессов с описанием. Режим записи. Возможность остановки (`KILL`) процесса.
|
||||
- Граф базы данных. Показывает все таблицы и их столбцы с дополнительной информацией.
|
||||
- Быстрый просмотр размера стоблбца.
|
||||
- Конфигурирование сервера.
|
||||
|
||||
Планируется разработка следующих возможностей:
|
||||
|
||||
- Управление базами.
|
||||
- Управление пользователями.
|
||||
- Управление кластером.
|
||||
- Анализ данных в режиме реального времени.
|
||||
- Мониторинг кластера.
|
||||
- Управление кластером.
|
||||
- Мониторинг реплицированных и Kafka таблиц.
|
||||
|
@ -5,18 +5,19 @@
|
||||
Все настройки, описанные ниже, могут быть заданы несколькими способами.
|
||||
Настройки задаются послойно, т.е. каждый следующий слой перезаписывает предыдущие настройки.
|
||||
|
||||
Способы задания настроек, упорядоченные по их приоритету:
|
||||
Способы задания настроек, упорядоченные по приоритету:
|
||||
|
||||
- Настройки в конфигурационных файлах сервера.
|
||||
- Настройки в конфигурационном файле сервера `users.xml`.
|
||||
|
||||
Задаются через профили пользователей.
|
||||
Устанавливаются в элементе `<profiles>`.
|
||||
|
||||
- Для сессии.
|
||||
- Настройки для сессии.
|
||||
|
||||
Из консольного клиента ClickHouse в интерактивном режиме отправьте запрос `SET setting=value`.
|
||||
Аналогично можно использовать ClickHouse-сессии в HTTP-протоколе, для этого необходимо указывать HTTP-праметр `session_id`.
|
||||
|
||||
- Для запроса.
|
||||
- Настройки для запроса.
|
||||
|
||||
- При запуске консольного клиента ClickHouse в неинтерактивном режиме установите параметр запуска `--setting=value`.
|
||||
- При использовании HTTP API передавайте cgi-параметры (`URL?setting_1=value&setting_2=value...`).
|
||||
|
||||
|
@ -7,13 +7,14 @@
|
||||
Системные таблицы расположены в базе данных system.
|
||||
<a name="system_tables-system.asynchronous_metrics"></a>
|
||||
|
||||
# system.asynchronous_metrics
|
||||
## system.asynchronous_metrics
|
||||
|
||||
Содержат метрики, используемые для профилирования и мониторинга.
|
||||
Обычно отражают количество событий, происходящих в данный момент в системе, или ресурсов, суммарно потребляемых системой.
|
||||
Пример: количество запросов типа SELECT, исполняемых в текущий момент; количество потребляемой памяти.
|
||||
`system.asynchronous_metrics` и `system.metrics` отличаются набором и способом вычисления метрик.
|
||||
# system.clusters
|
||||
|
||||
## system.clusters
|
||||
|
||||
Содержит информацию о доступных в конфигурационном файле кластерах и серверах, которые в них входят.
|
||||
Столбцы:
|
||||
@ -28,7 +29,7 @@ host_address String - IP-адрес хоста, полученный из DNS
|
||||
port UInt16 - порт, на который обращаться для соединения с сервером
|
||||
user String - имя пользователя, которого использовать для соединения с сервером
|
||||
```
|
||||
# system.columns
|
||||
## system.columns
|
||||
|
||||
Содержит информацию о столбцах всех таблиц.
|
||||
С помощью этой таблицы можно получить информацию аналогично запросу `DESCRIBE TABLE`, но для многих таблиц сразу.
|
||||
@ -41,12 +42,12 @@ type String - тип столбца
|
||||
default_type String - тип (DEFAULT, MATERIALIZED, ALIAS) выражения для значения по умолчанию, или пустая строка, если оно не описано
|
||||
default_expression String - выражение для значения по умолчанию, или пустая строка, если оно не описано
|
||||
```
|
||||
# system.databases
|
||||
## system.databases
|
||||
|
||||
Таблица содержит один столбец name типа String - имя базы данных.
|
||||
Для каждой базы данных, о которой знает сервер, будет присутствовать соответствующая запись в таблице.
|
||||
Эта системная таблица используется для реализации запроса `SHOW DATABASES`.
|
||||
# system.dictionaries
|
||||
## system.dictionaries
|
||||
|
||||
Содержит информацию о внешних словарях.
|
||||
|
||||
@ -70,12 +71,12 @@ default_expression String - выражение для значения по ум
|
||||
Заметим, что количество оперативной памяти, которое использует словарь, не является пропорциональным количеству элементов, хранящихся в словаре. Так, для flat и cached словарей, все ячейки памяти выделяются заранее, независимо от реальной заполненности словаря.
|
||||
<a name="system_tables-system.events"></a>
|
||||
|
||||
# system.events
|
||||
## system.events
|
||||
|
||||
Содержит информацию о количестве произошедших в системе событий, для профилирования и мониторинга.
|
||||
Пример: количество обработанных запросов типа SELECT.
|
||||
Столбцы: event String - имя события, value UInt64 - количество.
|
||||
# system.functions
|
||||
## system.functions
|
||||
|
||||
Содержит информацию об обычных и агрегатных функциях.
|
||||
|
||||
@ -83,7 +84,7 @@ default_expression String - выражение для значения по ум
|
||||
|
||||
- `name` (`String`) – Имя функции.
|
||||
- `is_aggregate` (`UInt8`) – Признак, является ли функция агрегатной.
|
||||
# system.merges
|
||||
## system.merges
|
||||
|
||||
Содержит информацию о производящихся прямо сейчас слияниях для таблиц семейства MergeTree.
|
||||
|
||||
@ -103,22 +104,23 @@ default_expression String - выражение для значения по ум
|
||||
- `rows_written UInt64` — Количество записанных строк.
|
||||
<a name="system_tables-system.metrics"></a>
|
||||
|
||||
# system.metrics
|
||||
# system.numbers
|
||||
## system.metrics
|
||||
## system.numbers
|
||||
|
||||
Таблица содержит один столбец с именем number типа UInt64, содержащим почти все натуральные числа, начиная с нуля.
|
||||
Эту таблицу можно использовать для тестов, а также если вам нужно сделать перебор.
|
||||
Чтения из этой таблицы не распараллеливаются.
|
||||
# system.numbers_mt
|
||||
## system.numbers_mt
|
||||
|
||||
То же самое, что и system.numbers, но чтение распараллеливается. Числа могут возвращаться в произвольном порядке.
|
||||
Используется для тестов.
|
||||
# system.one
|
||||
## system.one
|
||||
|
||||
Таблица содержит одну строку с одним столбцом dummy типа UInt8, содержащим значение 0.
|
||||
Эта таблица используется, если в SELECT запросе не указана секция FROM.
|
||||
То есть, это - аналог таблицы DUAL, которую можно найти в других СУБД.
|
||||
# system.parts
|
||||
|
||||
## system.parts
|
||||
|
||||
Содержит информацию о кусках таблиц семейства [MergeTree](../operations/table_engines/mergetree.md#table_engines-mergetree).
|
||||
|
||||
@ -126,7 +128,13 @@ default_expression String - выражение для значения по ум
|
||||
|
||||
Столбцы:
|
||||
|
||||
- partition (String) - Имя партиции. Формат YYYYMM. Что такое партиция можно узнать из описания запроса [ALTER](../query_language/alter.md#query_language_queries_alter).
|
||||
- partition (String) - Имя партиции. Что такое партиция можно узнать из описания запроса [ALTER](../query_language/alter.md#query_language_queries_alter).
|
||||
|
||||
Форматы:
|
||||
|
||||
- `YYYYMM` для автоматической схемы партиционирования по месяцам.
|
||||
- `any_string` при партиционировании вручную.
|
||||
|
||||
- name (String) - Имя куска.
|
||||
- active (UInt8) - Признак активности. Если кусок активен, то он используется таблице, в противном случает он будет удален. Неактивные куски остаются после слияний.
|
||||
- marks (UInt64) - Количество засечек. Чтобы получить примерное количество строк в куске, умножьте ``marks`` на гранулированность индекса (обычно 8192).
|
||||
@ -146,7 +154,7 @@ default_expression String - выражение для значения по ум
|
||||
- database (String) - Имя базы данных.
|
||||
- table (String) - Имя таблицы.
|
||||
- engine (String) - Имя движка таблицы, без параметров.
|
||||
# system.processes
|
||||
## system.processes
|
||||
|
||||
Эта системная таблица используется для реализации запроса `SHOW PROCESSLIST`.
|
||||
Столбцы:
|
||||
@ -170,7 +178,7 @@ query String - текст запроса. В случае INSERT -
|
||||
|
||||
query_id String - идентификатор запроса, если был задан.
|
||||
```
|
||||
# system.replicas
|
||||
## system.replicas
|
||||
|
||||
Содержит информацию и статус для реплицируемых таблиц, расположенных на локальном сервере.
|
||||
Эту таблицу можно использовать для мониторинга. Таблица содержит по строчке для каждой Replicated\*-таблицы.
|
||||
@ -294,7 +302,7 @@ WHERE
|
||||
```
|
||||
|
||||
Если этот запрос ничего не возвращает - значит всё хорошо.
|
||||
# system.settings
|
||||
## system.settings
|
||||
|
||||
Содержит информацию о настройках, используемых в данный момент.
|
||||
То есть, используемых для выполнения запроса, с помощью которого вы читаете из таблицы system.settings.
|
||||
@ -323,15 +331,17 @@ WHERE changed
|
||||
│ max_memory_usage │ 10000000000 │ 1 │
|
||||
└────────────────────────┴─────────────┴─────────┘
|
||||
```
|
||||
# system.tables
|
||||
## system.tables
|
||||
|
||||
Таблица содержит столбцы database, name, engine типа String.
|
||||
Также таблица содержит три виртуальных столбца: metadata_modification_time типа DateTime, create_table_query и engine_full типа String.
|
||||
Для каждой таблицы, о которой знает сервер, будет присутствовать соответствующая запись в таблице system.tables.
|
||||
Эта системная таблица используется для реализации запросов SHOW TABLES.
|
||||
# system.zookeeper
|
||||
|
||||
Позволяет читать данные из ZooKeeper кластера, описанного в конфигурации.
|
||||
|
||||
## system.zookeeper
|
||||
|
||||
Таблицы не существует, если ZooKeeper не сконфигурирован. Позволяет читать данные из ZooKeeper кластера, описанного в конфигурации.
|
||||
В запросе обязательно в секции WHERE должно присутствовать условие на равенство path - путь в ZooKeeper, для детей которого вы хотите получить данные.
|
||||
|
||||
Запрос `SELECT * FROM system.zookeeper WHERE path = '/clickhouse'` выведет данные по всем детям узла `/clickhouse`.
|
||||
|
@ -28,8 +28,8 @@ CREATE TABLE t
|
||||
|
||||
Значение типа `AggregateFunction` нельзя вывести в Pretty-форматах. В других форматах, значения такого типа выводятся в виде implementation-specific бинарных данных. То есть, значения типа `AggregateFunction` не предназначены для вывода, сохранения в дамп.
|
||||
|
||||
Единственную полезную вещь, которую можно сделать со значениями типа `AggregateFunction` - это объединить состояния и получить результат, по сути - доагрегировать до конца. Для этого используются агрегатные функции с суффиксом Merge.
|
||||
Пример: `uniqMerge(UserIDState), где UserIDState имеет тип AggregateFunction`.
|
||||
Единственную полезную вещь, которую можно сделать со значениями типа `AggregateFunction` — это объединить состояния и получить результат, по сути — доагрегировать до конца. Для этого используются агрегатные функции с суффиксом Merge.
|
||||
Пример: `uniqMerge(UserIDState)`, где `UserIDState` имеет тип `AggregateFunction`.
|
||||
|
||||
То есть, агрегатная функция с суффиксом Merge берёт множество состояний, объединяет их, и возвращает готовый результат.
|
||||
Для примера, эти два запроса возвращают один и тот же результат:
|
||||
|
@ -7,11 +7,21 @@
|
||||
Формат вызова:
|
||||
|
||||
```
|
||||
MySQL('host:port', 'database', 'table', 'user', 'password');
|
||||
MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);
|
||||
```
|
||||
|
||||
**Параметры вызова**
|
||||
|
||||
- `host:port` — Адрес сервера MySQL.
|
||||
- `database` — Имя базы данных на сервере MySQL.
|
||||
- `table` — Имя таблицы.
|
||||
- `user` — Пользователь MySQL.
|
||||
- `password` — Пароль пользователя.
|
||||
- `replace_query` — Флаг, устанавливающий замену запроса `INSERT INTO` на `REPLACE INTO`. Если `replace_query=1`, то запрос заменяется.
|
||||
- `'on_duplicate_clause'` — Добавляет выражение `ON DUPLICATE KEY UPDATE 'on_duplicate_clause'` в запрос `INSERT`. Например, `impression = VALUES(impression) + impression`. Чтобы указать `'on_duplicate_clause'` необходимо передать `0` в параметр `replace_query`. Если одновременно передать `replace_query = 1` и `'on_duplicate_clause'`, то ClickHouse сгенерирует исключение.
|
||||
|
||||
На данный момент простые условия `WHERE`, такие как `=, !=, >, >=, <, <=` будут выполняться на стороне сервера MySQL.
|
||||
|
||||
Остальные условия и ограничение выборки `LIMIT` будут выполнены в ClickHouse только после выполнения запроса к MySQL.
|
||||
|
||||
Движок `MySQL` не поддерживает тип данных [Nullable](../../data_types/nullable.md#data_type-nullable), поэтому при чтении данных из таблиц MySQL `NULL` преобразуются в значения по умолчанию для заданного типа столбца, обычно это `0` или пустая строка.
|
||||
Движок `MySQL` не поддерживает тип данных [Nullable](../../data_types/nullable.md#data_type-nullable), поэтому при чтении данных из таблиц MySQL `NULL` преобразуются в значения по умолчанию для заданного типа столбца, обычно это 0 или пустая строка.
|
||||
|
@ -50,6 +50,64 @@ minIf(EventTime, URL LIKE '%company%') < maxIf(EventTime, URL LIKE '%cart%').
|
||||
Аналогично функции sequenceMatch, но возвращает не факт наличия цепочки событий, а UInt64 - количество найденных цепочек.
|
||||
Цепочки ищутся без перекрытия. То есть, следующая цепочка может начаться только после окончания предыдущей.
|
||||
|
||||
## windowFunnel(window)(timestamp, cond1, cond2, cond3, ...)
|
||||
|
||||
Отыскивает цепочки событий в скользящем окне по времени и вычисляет максимальное количество произошедших событий из цепочки.
|
||||
|
||||
|
||||
```
|
||||
windowFunnel(window)(timestamp, cond1, cond2, cond3, ...)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `window` — ширина скользящего окна по времени в секундах.
|
||||
- `timestamp` — имя столбца, содержащего отметки времени. Тип данных [DateTime](../../data_types/datetime.md#data_type-datetime) или [UInt32](../../data_types/int_uint.md#data_type-int).
|
||||
- `cond1`, `cond2`... — условия или данные, описывающие цепочку событий. Тип данных — `UInt8`. Значения могут быть 0 или 1.
|
||||
|
||||
**Алгоритм**
|
||||
|
||||
- Функция отыскивает данные, на которых срабатывает первое условие из цепочки, и присваивает счетчику событий значение 1. С этого же момента начинается отсчет времени скользящего окна.
|
||||
- Если в пределах окна последовательно попадаются события из цепочки, то счетчик увеличивается. Если последовательность событий нарушается, то счетчик не растёт.
|
||||
- На каждое первое событие из цепочки отсчет начинается заново.
|
||||
- Если в данных оказалось несколько цепочек разной степени завершенности, то функция выдаст только размер самой длинной цепочки.
|
||||
|
||||
**Возвращаемое значение**
|
||||
|
||||
- Целое число. Максимальное количество последовательно сработавших условий из цепочки в пределах скользящего окна по времени. Исследуются все цепочки в выборке.
|
||||
|
||||
**Пример**
|
||||
|
||||
Определим, успевает ли пользователь за час выбрать телефон в интернет-магазине и купить его.
|
||||
|
||||
Зададим следующую цепочку событий:
|
||||
|
||||
1. Пользователь вошел в личный кабинет магазина (`eventID=1001`).
|
||||
2. Пользователь ищет телефон (`eventID = 1003, product = 'phone'`).
|
||||
3. Пользователь сделал заказ (`eventID = 1009`).
|
||||
|
||||
Чтобы узнать, как далеко пользователь `user_id` смог пройти по цепочке за час в январе 2017-го года, составим запрос:
|
||||
|
||||
```
|
||||
SELECT
|
||||
level,
|
||||
count() AS c
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
user_id,
|
||||
windowFunnel(3600)(timestamp, eventID = 1001, eventID = 1003 AND product = 'phone', eventID = 1009) AS level
|
||||
FROM trend_event
|
||||
WHERE (event_date >= '2017-01-01') AND (event_date <= '2017-01-31')
|
||||
GROUP BY user_id
|
||||
)
|
||||
GROUP BY level
|
||||
ORDER BY level
|
||||
```
|
||||
|
||||
В результате мы можем получить 0, 1, 2 или 3 в зависимости от действий пользователя.
|
||||
|
||||
|
||||
## uniqUpTo(N)(x)
|
||||
|
||||
Вычисляет количество различных значений аргумента, если оно меньше или равно N.
|
||||
|
@ -225,7 +225,7 @@ ALTER TABLE [db.]table FETCH PARTITION 'name' FROM 'path-in-zookeeper'
|
||||
|
||||
Мутации - разновидность запроса ALTER, позволяющая изменять или удалять данные в таблице. В отличие от стандартных запросов `DELETE` и `UPDATE`, рассчитанных на точечное изменение данных, область применения мутаций - достаточно тяжёлые изменения, затрагивающие много строк в таблице.
|
||||
|
||||
Функциональность находится в состоянии beta и доступна начиная с версии 1.1.54388. Реализована поддержка *MergeTree таблиц (с репликацией и без).
|
||||
Функциональность находится в состоянии beta и доступна начиная с версии 1.1.54388. Реализована поддержка \*MergeTree таблиц (с репликацией и без).
|
||||
|
||||
Конвертировать существующие таблицы для работы с мутациями не нужно. Но после применения первой мутации формат данных таблицы становится несовместимым с предыдущими версиями и откатиться на предыдущую версию уже не получится.
|
||||
|
||||
@ -239,7 +239,7 @@ ALTER TABLE [db.]table DELETE WHERE expr
|
||||
|
||||
В одном запросе можно указать несколько команд через запятую.
|
||||
|
||||
Для *MergeTree-таблиц мутации выполняются, перезаписывая данные по кускам (parts). При этом атомарности нет - куски заменяются на помутированные по мере выполнения и запрос `SELECT`, заданный во время выполнения мутации, увидит данные как из измененных кусков, так и из кусков, которые еще не были изменены.
|
||||
Для \*MergeTree-таблиц мутации выполняются, перезаписывая данные по кускам (parts). При этом атомарности нет — куски заменяются на помутированные по мере выполнения и запрос `SELECT`, заданный во время выполнения мутации, увидит данные как из измененных кусков, так и из кусков, которые еще не были изменены.
|
||||
|
||||
Мутации линейно упорядочены между собой и накладываются на каждый кусок в порядке добавления. Мутации также упорядочены со вставками - гарантируется, что данные, вставленные в таблицу до начала выполнения запроса мутации, будут изменены, а данные, вставленные после окончания запроса мутации, изменены не будут. При этом мутации никак не блокируют вставки.
|
||||
|
||||
@ -262,4 +262,3 @@ ALTER TABLE [db.]table DELETE WHERE expr
|
||||
**parts_to_do** - Количество кусков таблицы, которые ещё предстоит изменить.
|
||||
|
||||
**is_done** - Завершена ли мутация. Замечание: даже если `parts_to_do = 0`, для реплицированной таблицы возможна ситуация, когда мутация ещё не завершена из-за долго выполняющейся вставки, которая добавляет данные, которые нужно будет мутировать.
|
||||
|
||||
|
@ -1,12 +1,15 @@
|
||||
# numbers
|
||||
|
||||
`numbers(N)` - возвращает таблицу с единственным столбцом number (тип UInt64), содержащим натуральные числа от 0 до N-1.
|
||||
`numbers(N)` - возвращает таблицу с единственным столбцом `number` (UInt64), содержащим натуральные числа от `0` до `N-1`.
|
||||
`numbers(N, M)` - возвращает таблицу с единственным столбцом `number` (UInt64), содержащим натуральные числа от `N` to `(N + M - 1)`.
|
||||
|
||||
Так же как и таблица `system.numbers` может использоваться для тестов и генерации последовательных значений.
|
||||
Так же как и таблица `system.numbers` может использоваться для тестов и генерации последовательных значений. Функция `numbers(N, M)` работает более эффективно, чем выборка из `system.numbers`.
|
||||
|
||||
Следующие запросы эквивалентны:
|
||||
|
||||
Следующие 2 запроса эквивалентны:
|
||||
```sql
|
||||
SELECT * FROM numbers(10);
|
||||
SELECT * FROM numbers(0,10);
|
||||
SELECT * FROM system.numbers LIMIT 10;
|
||||
```
|
||||
Примеры:
|
||||
|
Loading…
Reference in New Issue
Block a user