mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
Partial sync between ru and en version (#3464)
* Update of english version of descriprion of the table function `file`. * New syntax for ReplacingMergeTree. Some improvements in text. * Significantly change article about SummingMergeTree. Article is restructured, text is changed in many places of the document. New syntax for table creation is described. * Descriptions of AggregateFunction and AggregatingMergeTree are updated. Russian version. * New syntax for new syntax of CREATE TABLE * Added english docs on Aggregating, Replacing and SummingMergeTree. * CollapsingMergeTree docs. English version. * 1. Update of CollapsingMergeTree. 2. Minor changes in markup * Update aggregatefunction.md * Update aggregatefunction.md * Update aggregatefunction.md * Update aggregatingmergetree.md * GraphiteMergeTree docs update. New syntax for creation of Replicated* tables. Minor changes in *MergeTree tables creation syntax. * Markup fix * Markup and language fixes * Clarification in the CollapsingMergeTree article * DOCAPI-4821. Sync between ru and en versions of docs. * Fixed the ambiguity in geo functions description. * Example of JOIN in ru docs * Deleted misinforming example.
This commit is contained in:
parent
53e2ec08ce
commit
bcab45b3fc
@ -14,7 +14,7 @@ If `replace` is specified, it replaces the entire element with the specified one
|
||||
|
||||
If `remove` is specified, it deletes the element.
|
||||
|
||||
The config can also define "substitutions". If an element has the `incl` attribute, the corresponding substitution from the file will be used as the value. By default, the path to the file with substitutions is `/etc/metrika.xml`. This can be changed in the [include_from](server_settings/settings.md#server_settings-include_from) element in the server config. The substitution values are specified in `/yandex/substitution_name` elements in this file. If a substitution specified in `incl` does not exist, it is recorded in the log. To prevent ClickHouse from logging missing substitutions, specify the `optional="true"` attribute (for example, settings for [macros]() server_settings/settings.md#server_settings-macros)).
|
||||
The config can also define "substitutions". If an element has the `incl` attribute, the corresponding substitution from the file will be used as the value. By default, the path to the file with substitutions is `/etc/metrika.xml`. This can be changed in the [include_from](server_settings/settings.md#server_settings-include_from) element in the server config. The substitution values are specified in `/yandex/substitution_name` elements in this file. If a substitution specified in `incl` does not exist, it is recorded in the log. To prevent ClickHouse from logging missing substitutions, specify the `optional="true"` attribute (for example, settings for [macros](server_settings/settings.md#server_settings-macros)).
|
||||
|
||||
Substitutions can also be performed from ZooKeeper. To do this, specify the attribute `from_zk = "/path/to/node"`. The element value is replaced with the contents of the node at `/path/to/node` in ZooKeeper. You can also put an entire XML subtree on the ZooKeeper node and it will be fully inserted into the source element.
|
||||
|
||||
|
@ -532,6 +532,7 @@ Columns in the log:
|
||||
- database_name – The name of the database.
|
||||
- table_name – Name of the table.
|
||||
- part_name – Name of the data part.
|
||||
- partition_id – The identifier of the partition.
|
||||
- size_in_bytes – Size of the data part in bytes.
|
||||
- merged_from – An array of names of data parts that make up the merge (also used when downloading a merged part).
|
||||
- merge_time_ms – Time spent on the merge.
|
||||
|
@ -2,7 +2,9 @@
|
||||
|
||||
Restrictions on query complexity are part of the settings.
|
||||
They are used in order to provide safer execution from the user interface.
|
||||
Almost all the restrictions only apply to SELECTs.For distributed query processing, restrictions are applied on each server separately.
|
||||
Almost all the restrictions only apply to `SELECT`. For distributed query processing, restrictions are applied on each server separately.
|
||||
|
||||
ClickHouse checks the restrictions for data parts, not for each row. It means that you can exceed the value of restriction with a size of the data part.
|
||||
|
||||
Restrictions on the "maximum amount of something" can take the value 0, which means "unrestricted".
|
||||
Most restrictions also have an 'overflow_mode' setting, meaning what to do when the limit is exceeded.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
# Dictionary
|
||||
|
||||
The `Dictionary` engine displays the dictionary data as a ClickHouse table.
|
||||
The `Dictionary` engine displays the [dictionary](../../query_language/dicts/external_dicts.md#dicts-external_dicts) data as a ClickHouse table.
|
||||
|
||||
As an example, consider a dictionary of `products` with the following configuration:
|
||||
|
||||
|
@ -135,7 +135,7 @@ If the data query specifies:
|
||||
|
||||
- `CounterID in ('a', 'h')`, the server reads the data in the ranges of marks `[0, 3)` and `[6, 8)`.
|
||||
- `CounterID IN ('a', 'h') AND Date = 3`, the server reads the data in the ranges of marks `[1, 3)` and `[7, 8)`.
|
||||
- `Date = 3`, the server reads the data in the range of marks `[1, 10)`.
|
||||
- `Date = 3`, the server reads the data in the range of marks `[1, 10]`.
|
||||
|
||||
The examples above show that it is always more effective to use an index than a full scan.
|
||||
|
||||
|
@ -35,13 +35,13 @@ Example of settings:
|
||||
|
||||
When upgrading the dictionaries, the ClickHouse server applies different logic depending on the type of [ source](external_dicts_dict_sources.md#dicts-external_dicts_dict_sources):
|
||||
|
||||
> - For a text file, it checks the time of modification. If the time differs from the previously recorded time, the dictionary is updated.
|
||||
- For a text file, it checks the time of modification. If the time differs from the previously recorded time, the dictionary is updated.
|
||||
- For MyISAM tables, the time of modification is checked using a `SHOW TABLE STATUS` query.
|
||||
- Dictionaries from other sources are updated every time by default.
|
||||
|
||||
For MySQL (InnoDB) and ODBC sources, you can set up a query that will update the dictionaries only if they really changed, rather than each time. To do this, follow these steps:
|
||||
For MySQL (InnoDB), ODBC and ClickHouse sources, you can set up a query that will update the dictionaries only if they really changed, rather than each time. To do this, follow these steps:
|
||||
|
||||
> - The dictionary table must have a field that always changes when the source data is updated.
|
||||
- The dictionary table must have a field that always changes when the source data is updated.
|
||||
- The settings of the source must specify a query that retrieves the changing field. The ClickHouse server interprets the query result as a row, and if this row has changed relative to its previous state, the dictionary is updated. Specify the query in the `<invalidate_query>` field in the settings for the [source](external_dicts_dict_sources.md#dicts-external_dicts_dict_sources).
|
||||
|
||||
Example of settings:
|
||||
|
@ -10,10 +10,10 @@ greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)
|
||||
|
||||
**Input parameters**
|
||||
|
||||
- `lon1Deg` — Latitude of the first point in degrees. Range: `[-90°, 90°]`.
|
||||
- `lat1Deg` — Longitude of the first point in degrees. Range: `[-180°, 180°]`.
|
||||
- `lon2Deg` — Latitude of the second point in degrees. Range: `[-90°, 90°]`.
|
||||
- `lat2Deg` — Longitude of the second point in degrees. Range: `[-180°, 180°]`.
|
||||
- `lon1Deg` — Longitude of the first point in degrees. Range: `[-180°, 180°]`.
|
||||
- `lat1Deg` — Latitude of the first point in degrees. Range: `[-90°, 90°]`.
|
||||
- `lon2Deg` — Longitude of the second point in degrees. Range: `[-180°, 180°]`.
|
||||
- `lat2Deg` — Latitude of the second point in degrees. Range: `[-90°, 90°]`.
|
||||
|
||||
Positive values correspond to North latitude and East longitude, and negative values correspond to South latitude and West longitude.
|
||||
|
||||
@ -45,8 +45,7 @@ pointInEllipses(x, y, x₀, y₀, a₀, b₀,...,xₙ, yₙ, aₙ, bₙ)
|
||||
|
||||
**Input parameters**
|
||||
|
||||
- `x` — Latitude of the point.
|
||||
- `y` — Longitude of the point.
|
||||
- `x, y` — Coordinates of a point on the plane.
|
||||
- `xᵢ, yᵢ` — Coordinates of the center of the `i`-th ellipsis.
|
||||
- `aᵢ, bᵢ` — Axes of the `i`-th ellipsis in meters.
|
||||
|
||||
|
@ -18,7 +18,8 @@ For a case-insensitive search, use the function `positionCaseInsensitiveUTF8`.
|
||||
|
||||
## match(haystack, pattern)
|
||||
|
||||
Checks whether the string matches the 'pattern' regular expression. A re2 regular expression.
|
||||
Checks whether the string matches the `pattern` regular expression. A `re2` regular expression. The [syntax](https://github.com/google/re2/wiki/Syntax) of the `re2` regular expressions is more limited than the syntax of the Perl regular expressions.
|
||||
|
||||
Returns 0 if it doesn't match, or 1 if it matches.
|
||||
|
||||
Note that the backslash symbol (`\`) is used for escaping in the regular expression. The same symbol is used for escaping in string literals. So in order to escape the symbol in a regular expression, you must write two backslashes (\\) in a string literal.
|
||||
|
@ -12,6 +12,10 @@
|
||||
|
||||
## toDate, toDateTime
|
||||
|
||||
## toDecimal32(value, S), toDecimal64(value, S), toDecimal128(value, S)
|
||||
|
||||
Converts `value` to [Decimal](../../data_types/decimal.md#data_type-decimal) of precision `S`. The `value` can be a number or a string. The `S` (scale) parameter specifies the number of decimal places.
|
||||
|
||||
## toString
|
||||
|
||||
Functions for converting between numbers, strings (but not fixed strings), dates, and dates with times.
|
||||
|
@ -91,11 +91,15 @@ The conditional operator calculates the values of b and c, then checks whether c
|
||||
CASE [x]
|
||||
WHEN a THEN b
|
||||
[WHEN ... THEN ...]
|
||||
ELSE c
|
||||
[ELSE c]
|
||||
END
|
||||
```
|
||||
|
||||
If "x" is specified, then transform(x, \[a, ...\], \[b, ...\], c). Otherwise – multiIf(a, b, ..., c).
|
||||
If `x` is specified, then `transform(x, [a, ...], [b, ...], c)` function is used. Otherwise – `multiIf(a, b, ..., c)`.
|
||||
|
||||
If there is no `ELSE c` clause in the expression, the default value is `NULL`.
|
||||
|
||||
The `transform` function does not work with `NULL`.
|
||||
|
||||
## Concatenation Operator
|
||||
|
||||
|
@ -24,6 +24,33 @@ Merge(hits, '^WatchLog')
|
||||
|
||||
Типичный способ использования движка `Merge` — работа с большим количеством таблиц типа `TinyLog`, как с одной.
|
||||
|
||||
Пример 2:
|
||||
|
||||
Пусть есть старая таблица `WatchLog_old`. Необходимо изменить партиционирование без перемещения данных в новую таблицу `WatchLog_new`. При этом в выборке должны участвовать данные обеих таблиц.
|
||||
|
||||
```
|
||||
CREATE TABLE WatchLog_old(date Date, UserId Int64, EventType String, Cnt UInt64)
|
||||
ENGINE=MergeTree(date, (UserId, EventType), 8192);
|
||||
INSERT INTO WatchLog_old VALUES ('2018-01-01', 1, 'hit', 3);
|
||||
|
||||
CREATE TABLE WatchLog_new(date Date, UserId Int64, EventType String, Cnt UInt64)
|
||||
ENGINE=MergeTree PARTITION BY date ORDER BY (UserId, EventType) SETTINGS index_granularity=8192;
|
||||
INSERT INTO WatchLog_new VALUES ('2018-01-02', 2, 'hit', 3);
|
||||
|
||||
CREATE TABLE WatchLog as WatchLog_old ENGINE=Merge(currentDatabase(), '^WatchLog');
|
||||
|
||||
SELECT *
|
||||
FROM WatchLog
|
||||
|
||||
┌───────date─┬─UserId─┬─EventType─┬─Cnt─┐
|
||||
│ 2018-01-01 │ 1 │ hit │ 3 │
|
||||
└────────────┴────────┴───────────┴─────┘
|
||||
┌───────date─┬─UserId─┬─EventType─┬─Cnt─┐
|
||||
│ 2018-01-02 │ 2 │ hit │ 3 │
|
||||
└────────────┴────────┴───────────┴─────┘
|
||||
|
||||
```
|
||||
|
||||
## Виртуальные столбцы
|
||||
|
||||
Виртуальные столбцы — столбцы, предоставляемые движком таблиц независимо от определения таблицы. То есть, такие столбцы не указываются в `CREATE TABLE`, но доступны для `SELECT`.
|
||||
|
@ -21,7 +21,7 @@ Turbo-Boost крайне не рекомендуется отключать. П
|
||||
Нужно всегда использовать `performance` scaling governor. `ondemand` scaling governor работает намного хуже при постоянно высоком спросе.
|
||||
|
||||
```bash
|
||||
sudo echo 'performance' | tee /sys/devices/system/cpu/cpu\*/cpufreq/scaling_governor
|
||||
sudo echo 'performance' | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
```
|
||||
|
||||
## Ограничение CPU
|
||||
|
@ -10,10 +10,10 @@ greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)
|
||||
|
||||
**Входные параметры**
|
||||
|
||||
- `lon1Deg` — широта первой точки в градусах. Диапазон — `[-90°, 90°]`.
|
||||
- `lat1Deg` — долгота первой точки в градусах. Диапазон — `[-180°, 180°]`.
|
||||
- `lon2Deg` — широта второй точки в градусах. Диапазон — `[-90°, 90°]`.
|
||||
- `lat2Deg` — долгота второй точки в градусах. Диапазон — `[-180°, 180°]`.
|
||||
- `lon1Deg` — долгота первой точки в градусах. Диапазон — `[-180°, 180°]`.
|
||||
- `lat1Deg` — широта первой точки в градусах. Диапазон — `[-90°, 90°]`.
|
||||
- `lon2Deg` — долгота второй точки в градусах. Диапазон — `[-180°, 180°]`.
|
||||
- `lat2Deg` — широта второй точки в градусах. Диапазон — `[-90°, 90°]`.
|
||||
|
||||
Положительные значения соответствуют северной широте и восточной долготе, отрицательные — южной широте и западной долготе.
|
||||
|
||||
@ -45,8 +45,7 @@ pointInEllipses(x, y, x₀, y₀, a₀, b₀,...,xₙ, yₙ, aₙ, bₙ)
|
||||
|
||||
**Входные параметры**
|
||||
|
||||
- `x` — широта точки.
|
||||
- `y` — долгота точки.
|
||||
- `x, y` — координаты точки на плоскости.
|
||||
- `xᵢ, yᵢ` — координаты центра `i`-го эллипса.
|
||||
- `aᵢ, bᵢ` — полуоси `i`-го эллипса в метрах.
|
||||
|
||||
|
@ -95,9 +95,9 @@ CASE [x]
|
||||
END
|
||||
```
|
||||
|
||||
В случае указания x - функция transform(x, \[a, ...\], \[b, ...\], c). Иначе - multiIf(a, b, ..., c).
|
||||
При отсутствии секции `ELSE c`, значением по умолчанию будет NULL.
|
||||
P.S. Функция transform не умеет работать с NULL.
|
||||
В случае указания `x` - функция `transform(x, [a, ...], [b, ...], c)`. Иначе — `multiIf(a, b, ..., c)`.
|
||||
При отсутствии секции `ELSE c`, значением по умолчанию будет `NULL`.
|
||||
P.S. Функция `transform` не умеет работать с `NULL`.
|
||||
|
||||
## Оператор склеивания строк
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user