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