特殊表引擎
表引擎主要分为三大类:
- MergeTree 引擎家族,用于主要的生产场景。
- Log 引擎家族,用于小规模的临时数据。
- 用于集成的表引擎。
其余引擎在用途上各不相同,目前尚未归入某个家族,因此被归类到这个「特殊」类别中。
| Page | Description |
|---|---|
| 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 | 此引擎允许将应用程序日志文件作为记录流进行处理。 |