特殊なテーブルエンジン
テーブルエンジンには、主に次の 3 つのカテゴリがあります。
- 本番利用向けの MergeTree エンジンファミリー。
- 小規模な一時データ向けの Log エンジンファミリー。
- 連携用テーブルエンジン。
それ以外のエンジンは用途が固有で、まだファミリーとしてグループ化されていないため、この「特殊」カテゴリに分類されています。
| Page | 説明 |
|---|---|
| Alias table engine | Alias テーブルエンジンは、別のテーブルへの透過的なプロキシを作成します。すべての操作は対象テーブルに転送され、エイリアス自体はデータを保持しません。 |
| Distributed table engine | Distributed エンジンを持つテーブルは自身のデータを一切保持しませんが、複数サーバー上での分散クエリ処理を可能にします。読み取りは自動的に並列化されます。読み取り時には、存在する場合はリモートサーバー上のテーブルインデックスが使用されます。 |
| Dictionary table engine | Dictionary エンジンは、辞書データを ClickHouse テーブルとして表示します。 |
| Merge table engine | Merge エンジン(MergeTree と混同しないでください)は自体ではデータを保存しませんが、任意の数の他のテーブルから同時に読み取ることを可能にします。 |
| Executable and ExecutablePool table engines | Executable および ExecutablePool テーブルエンジンを使用すると、(行を stdout に書き出すことで)定義したスクリプトから行が生成されるテーブルを定義できます。 |
| File table engine | File テーブルエンジンは、サポートされているファイル形式(TabSeparated、Native など)のいずれかでデータをファイル内に保持します。 |
| Null table engine | Null テーブルに書き込むと、データは破棄されます。Null テーブルから読み取ると、レスポンスは空になります。 |
| Set table engine | 常に RAM 上に存在するデータセットです。IN 演算子の右側での使用を意図しています。 |
| Join table engine | JOIN 演算で使用するためのオプションの事前構築済みデータ構造です。 |
| URL table engine | リモートの HTTP/HTTPS サーバーとの間でデータをクエリします。このエンジンは File エンジンに似ています。 |
| View table engine | ビューを実装するために使用されます(詳細は CREATE VIEW query を参照してください)。データは保存せず、指定された SELECT クエリのみを保持します。テーブルから読み取るときには、このクエリを実行し(クエリから不要なカラムをすべて削除します)。 |
| Memory table engine | Memory エンジンは、データを RAM 上に非圧縮形式で保存します。データは、読み出す際にも受信時とまったく同じ形式のまま保持されます。言い換えると、このテーブルからの読み取りには一切の追加処理が発生しません。 |
| Buffer table engine | 書き込み対象のデータを RAM 上でバッファリングし、定期的に別のテーブルへフラッシュします。読み取り操作時には、バッファともう一方のテーブルの両方から同時にデータが読み取られます。 |
| External data for query processing | ClickHouse では、SELECT クエリと一緒に、クエリを処理するために必要なデータをサーバーに送信できます。このデータは一時テーブルに格納され、クエリ内で(たとえば IN 演算子で)使用できます。 |
| GenerateRandom table engine | GenerateRandom テーブルエンジンは、指定されたテーブルスキーマに対してランダムなデータを生成します。 |
| KeeperMap table engine | このエンジンを使用すると、Keeper/ZooKeeper クラスタを、一貫性のあるキー・バリュー・ストアとして、線形化可能な書き込みと逐次一貫性を持つ読み取りで利用できます。 |
| FileLog table engine | このエンジンを使用すると、アプリケーションのログファイルをレコードストリームとして処理できます。 |