title_wip

[Edit this page](https://github.com/ClickHouse/ClickHouse/tree/master/docs/en/engines/table-engines/special/index.md)

There are three main categories of table engines:

- [MergeTree engine family](/docs/engines/table-engines/mergetree-family) for main production use.
- [Log engine family](/docs/engines/table-engines/log-family) for small temporary data.
- [Table engines for integrations](/docs/engines/table-engines/integrations).

The remaining engines are unique in their purpose and are not grouped into families yet, thus they are placed in this "special" category.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Page Description|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | [Alias table engine](/docs/engines/table-engines/special/alias) The Alias table engine creates a transparent proxy to another table. All operations are forwarded to the target table while the alias itself stores no data.|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | [Distributed table engine](/docs/engines/table-engines/special/distributed) Tables with Distributed engine do not store any data of their own, but allow distributed query processing on multiple servers. Reading is automatically parallelized. During a read, the table indexes on remote servers are used, if there are any.|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | [Dictionary table engine](/docs/engines/table-engines/special/dictionary) The `Dictionary` engine displays the dictionary data as a ClickHouse table.| [Merge table engine](/docs/engines/table-engines/special/merge) The `Merge` engine (not to be confused with `MergeTree`) does not store data itself, but allows reading from any number of other tables simultaneously.| [Executable and ExecutablePool table engines](/docs/engines/table-engines/special/executable) The `Executable` and `ExecutablePool` table engines allow you to define a table whose rows are generated from a script that you define (by writing rows to **stdout**).| [File table engine](/docs/engines/table-engines/special/file) The File table engine keeps the data in a file in one of the supported file formats (`TabSeparated`, `Native`, etc.).| [Null table engine](/docs/engines/table-engines/special/null) When writing to a `Null` table, data is ignored. When reading from a `Null` table, the response is empty.| [Set table engine](/docs/engines/table-engines/special/set) A data set that is always in RAM. It is intended for use on the right side of the `IN` operator.| [Join table engine](/docs/engines/table-engines/special/join) Optional prepared data structure for usage in JOIN operations.|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | [URL table engine](/docs/engines/table-engines/special/url) Queries data to/from a remote HTTP/HTTPS server. This engine is similar to the File engine.|  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | [View table engine](/docs/engines/table-engines/special/view) Used for implementing views (for more information, see the `CREATE VIEW query`). It does not store data, but only stores the specified `SELECT` query. When reading from a table, it runs this query (and deletes all unnecessary columns from the query).| [Memory table engine](/docs/engines/table-engines/special/memory) The Memory engine stores data in RAM, in uncompressed form. Data is stored in exactly the same form as it is received when read. In other words, reading from this table is completely free.|  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | [Buffer table engine](/docs/engines/table-engines/special/buffer) Buffers the data to write in RAM, periodically flushing it to another table. During the read operation, data is read from the buffer and the other table simultaneously.|  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | | [External data for query processing](/docs/engines/table-engines/special/external-data) ClickHouse allows sending a server the data that is needed for processing a query, together with a `SELECT` query. This data is put in a temporary table and can be used in the query (for example, in `IN` operators).| [GenerateRandom table engine](/docs/engines/table-engines/special/generate) The GenerateRandom table engine produces random data for given table schema.|  |  |  |  | | --- | --- | --- | --- | | [KeeperMap table engine](/docs/engines/table-engines/special/keeper-map) This engine allows you to use Keeper/ZooKeeper cluster as consistent key-value store with linearizable writes and sequentially consistent reads.|  |  | | --- | --- | | [FileLog table engine](/docs/engines/table-engines/special/filelog) This engine allows processing of application log files as a stream of records. | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Was this page helpful?