mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-12 09:22:05 +00:00
99 lines
5.3 KiB
Markdown
99 lines
5.3 KiB
Markdown
---
|
||
slug: /ru/sql-reference/statements/create/dictionary
|
||
sidebar_position: 38
|
||
sidebar_label: "Словарь"
|
||
---
|
||
|
||
# CREATE DICTIONARY {#create-dictionary-query}
|
||
|
||
Создаёт [внешний словарь](../../../sql-reference/dictionaries/external-dictionaries/external-dicts.md) с заданной [структурой](../../../sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.md), [источником](../../../sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources.md), [способом размещения в памяти](../../../sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout.md) и [периодом обновления](../../../sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime.md).
|
||
|
||
**Синтаксис**
|
||
|
||
``` sql
|
||
CREATE DICTIONARY [OR REPLACE][IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster]
|
||
(
|
||
key1 type1 [DEFAULT|EXPRESSION expr1] [IS_OBJECT_ID],
|
||
key2 type2 [DEFAULT|EXPRESSION expr2],
|
||
attr1 type2 [DEFAULT|EXPRESSION expr3] [HIERARCHICAL|INJECTIVE],
|
||
attr2 type2 [DEFAULT|EXPRESSION expr4] [HIERARCHICAL|INJECTIVE]
|
||
)
|
||
PRIMARY KEY key1, key2
|
||
SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN]))
|
||
LAYOUT(LAYOUT_NAME([param_name param_value]))
|
||
LIFETIME({MIN min_val MAX max_val | max_val})
|
||
SETTINGS(setting_name = setting_value, setting_name = setting_value, ...)
|
||
COMMENT 'Comment'
|
||
```
|
||
|
||
Структура внешнего словаря состоит из атрибутов. Атрибуты словаря задаются как столбцы таблицы. Единственным обязательным свойством атрибута является его тип, все остальные свойства могут иметь значения по умолчанию.
|
||
|
||
В зависимости от [способа размещения словаря в памяти](../../../sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout.md), ключами словаря могут быть один и более атрибутов.
|
||
|
||
Более подробную информацию смотрите в разделе [внешние словари](../../../sql-reference/dictionaries/external-dictionaries/external-dicts.md).
|
||
|
||
Вы можете добавить комментарий к словарю при его создании, используя секцию `COMMENT`.
|
||
|
||
**Пример**
|
||
|
||
Входная таблица `source_table`:
|
||
|
||
``` text
|
||
┌─id─┬─value──┐
|
||
│ 1 │ First │
|
||
│ 2 │ Second │
|
||
└────┴────────┘
|
||
```
|
||
|
||
Создание словаря:
|
||
|
||
``` sql
|
||
CREATE DICTIONARY dictionary_with_comment
|
||
(
|
||
id UInt64,
|
||
value String
|
||
)
|
||
PRIMARY KEY id
|
||
SOURCE(CLICKHOUSE(HOST 'localhost' PORT tcpPort() TABLE 'source_table'))
|
||
LAYOUT(FLAT())
|
||
LIFETIME(MIN 0 MAX 1000)
|
||
COMMENT 'The temporary dictionary';
|
||
```
|
||
|
||
Вывод словаря:
|
||
|
||
``` sql
|
||
SHOW CREATE DICTIONARY dictionary_with_comment;
|
||
```
|
||
|
||
```text
|
||
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ CREATE DICTIONARY default.dictionary_with_comment
|
||
(
|
||
`id` UInt64,
|
||
`value` String
|
||
)
|
||
PRIMARY KEY id
|
||
SOURCE(CLICKHOUSE(HOST 'localhost' PORT tcpPort() TABLE 'source_table'))
|
||
LIFETIME(MIN 0 MAX 1000)
|
||
LAYOUT(FLAT())
|
||
COMMENT 'The temporary dictionary' │
|
||
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
Вывод комментария к словарю:
|
||
|
||
``` sql
|
||
SELECT comment FROM system.dictionaries WHERE name == 'dictionary_with_comment' AND database == currentDatabase();
|
||
```
|
||
|
||
```text
|
||
┌─comment──────────────────┐
|
||
│ The temporary dictionary │
|
||
└──────────────────────────┘
|
||
```
|
||
|
||
**См. также**
|
||
|
||
- [system.dictionaries](../../../operations/system-tables/dictionaries.md) — эта таблица содержит информацию о [внешних словарях](../../../sql-reference/dictionaries/external-dictionaries/external-dicts.md).
|