Движки Таблиц
Движок таблицы (тип таблицы) определяет:
- Как и где хранятся данные, куда их записывать и откуда их читать.
- Какие запросы поддерживаются и как.
- Конкурентный доступ к данным.
- Использование индексов, если они есть.
- Возможность выполнения запросов в многопоточном режиме.
- Параметры репликации данных.
Семейства Движков
MergeTree
Самые универсальные и функциональные движки таблиц для высоконагруженных задач. Свойство, присущее этим движкам, — быстрая вставка данных с последующей фоновою обработкой данных. Движки семейства MergeTree поддерживают репликацию данных (с Replicated* версиями движков), партиционирование, вторичные индексы пропуска данных и другие функции, которые не поддерживаются в других движках.
Движки в семействе:
| Движки MergeTree | 
|---|
| MergeTree | 
| ReplacingMergeTree | 
| SummingMergeTree | 
| AggregatingMergeTree | 
| CollapsingMergeTree | 
| VersionedCollapsingMergeTree | 
| GraphiteMergeTree | 
Log
Легковесные движки с минимальной функциональностью. Они наиболее эффективны, когда нужно быстро записать множество небольших таблиц (до примерно 1 миллиона строк) и затем читать их целиком.
Движки в семействе:
| Движки Log | 
|---|
| TinyLog | 
| StripeLog | 
| Log | 
Интеграционные Движки
Движки для взаимодействия с другими системами хранения и обработки данных.
Движки в семействе:
| Интеграционные Движки | 
|---|
| ODBC | 
| JDBC | 
| MySQL | 
| MongoDB | 
| Redis | 
| HDFS | 
| S3 | 
| Kafka | 
| EmbeddedRocksDB | 
| RabbitMQ | 
| PostgreSQL | 
| S3Queue | 
| TimeSeries | 
Специальные Движки
Движки в семействе:
| Специальные Движки | 
|---|
| Distributed | 
| Dictionary | 
| Merge | 
| Executable | 
| File | 
| Null | 
| Set | 
| Join | 
| URL | 
| View | 
| Memory | 
| Buffer | 
| External Data | 
| GenerateRandom | 
| KeeperMap | 
| FileLog | 
Виртуальные Колонки
Виртуальная колонка — это неотъемлемый атрибут движка таблицы, который определяется в исходном коде движка.
Вы не должны указывать виртуальные колонки в запросе CREATE TABLE, и вы не сможете увидеть их в результатах запросов SHOW CREATE TABLE и DESCRIBE TABLE. Виртуальные колонки также являются только для чтения, поэтому вы не можете вставлять данные в виртуальные колонки.
Чтобы выбрать данные из виртуальной колонки, вы должны указать ее имя в запросе SELECT. SELECT * не возвращает значения из виртуальных колонок.
Если вы создаете таблицу с колонкой, имеющей то же имя, что и одна из виртуальных колонок таблицы, виртуальная колонка становится недоступной. Мы не рекомендуем этого делать. Чтобы помочь избежать конфликтов, имена виртуальных колонок обычно начинаются с символа подчёркивания.
