テーブルエンジン
テーブルエンジン(テーブルの種類)は、以下を決定します。
- データがどのように、どこに保存されるか、書き込む場所、読み取る場所。
- サポートされるクエリとその方法。
- 同時データアクセス。
- 存在する場合のインデックスの使用。
- マルチスレッドリクエスト実行が可能かどうか。
- データレプリケーションパラメータ。
エンジンファミリー
MergeTree
高負荷タスクに対する最も汎用的で機能的なテーブルエンジン。これらのエンジンに共通する特性は、迅速なデータ挿入と、その後のバックグラウンドでのデータ処理です。MergeTree
ファミリーのエンジンは、データレプリケーション(Replicated*バージョンのエンジン)、パーティション、セカンダリデータスキッピングインデックス、その他の機能をサポートしていますが、他のエンジンではサポートされていません。
ファミリー内のエンジン:
MergeTreeエンジン |
---|
MergeTree |
ReplacingMergeTree |
SummingMergeTree |
AggregatingMergeTree |
CollapsingMergeTree |
VersionedCollapsingMergeTree |
GraphiteMergeTree |
Log
最小限の機能を持つ軽量エンジン。多くの小さなテーブル(約100万行まで)を迅速に書き込み、後で全体として読み取る必要がある場合に最も効果的です。
ファミリー内のエンジン:
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 *
ではバーチャルカラムの値は返されません。
テーブルにテーブルのバーチャルカラムのいずれかと同じ名前のカラムがある場合、バーチャルカラムはアクセスできなくなります。これを行うことはお勧めしません。競合を避けるために、バーチャルカラム名には通常アンダースコアがプレフィックスとして付けられます。