Движки Таблиц
Движок таблицы (тип таблицы) определяет:
- Как и где хранятся данные, куда их записывать и откуда их читать.
- Какие запросы поддерживаются и как.
- Конкурентный доступ к данным.
- Использование индексов, если они есть.
- Возможность выполнения запросов в многопоточном режиме.
- Параметры репликации данных.
Семейства Движков
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 * не возвращает значения из виртуальных колонок.
Если вы создаете таблицу с колонкой, имеющей то же имя, что и одна из виртуальных колонок таблицы, виртуальная колонка становится недоступной. Мы не рекомендуем этого делать. Чтобы помочь избежать конфликтов, имена виртуальных колонок обычно начинаются с символа подчёркивания.