2020-12-23 15:32:35 +00:00
|
|
|
|
---
|
2021-03-14 17:11:26 +00:00
|
|
|
|
toc_priority: 9
|
2020-12-23 15:32:35 +00:00
|
|
|
|
toc_title: EmbeddedRocksDB
|
|
|
|
|
---
|
|
|
|
|
|
2021-01-26 19:24:06 +00:00
|
|
|
|
# Движок EmbeddedRocksDB {#EmbeddedRocksDB-engine}
|
2020-12-23 15:32:35 +00:00
|
|
|
|
|
|
|
|
|
Этот движок позволяет интегрировать ClickHouse с [rocksdb](http://rocksdb.org/).
|
|
|
|
|
|
2020-12-25 12:05:23 +00:00
|
|
|
|
## Создание таблицы {#table_engine-EmbeddedRocksDB-creating-a-table}
|
2020-12-23 15:32:35 +00:00
|
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
|
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
|
|
|
|
|
(
|
|
|
|
|
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
|
|
|
|
|
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
|
|
|
|
|
...
|
2020-12-25 12:08:22 +00:00
|
|
|
|
) ENGINE = EmbeddedRocksDB
|
|
|
|
|
PRIMARY KEY(primary_key_name);
|
2020-12-23 15:32:35 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Обязательные параметры:
|
|
|
|
|
|
2021-01-26 19:24:06 +00:00
|
|
|
|
- `primary_key_name` может быть любое имя столбца из списка столбцов.
|
|
|
|
|
- Указание первичного ключа `primary key` является обязательным. Он будет сериализован в двоичном формате как ключ `rocksdb`.
|
|
|
|
|
- Поддерживается только один столбец в первичном ключе.
|
|
|
|
|
- Столбцы, которые отличаются от первичного ключа, будут сериализованы в двоичном формате как значение `rockdb` в соответствующем порядке.
|
|
|
|
|
- Запросы с фильтрацией по ключу `equals` или `in` оптимизируются для поиска по нескольким ключам из `rocksdb`.
|
2020-12-23 15:32:35 +00:00
|
|
|
|
|
|
|
|
|
Пример:
|
|
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
|
CREATE TABLE test
|
|
|
|
|
(
|
|
|
|
|
`key` String,
|
|
|
|
|
`v1` UInt32,
|
|
|
|
|
`v2` String,
|
|
|
|
|
`v3` Float32,
|
|
|
|
|
)
|
|
|
|
|
ENGINE = EmbeddedRocksDB
|
2020-12-25 12:08:35 +00:00
|
|
|
|
PRIMARY KEY key;
|
2021-01-26 19:24:06 +00:00
|
|
|
|
```
|
|
|
|
|
|