ClickHouse表引擎

2025-01-06 01:45:07

1、TinyLog最简单的表引擎,用于将数据存储在磁盘上。每列都存储在单独的压缩文件中,写入时,数据将附加到文件末尾。该引擎没有并发控制- 如果同时从表中读取和写入数据,则读取操作将抛出异常;- 如果同时写入多个查询中的表,则数据将被破坏。这种表引擎的典型用法是 write-once:首先只写入一次数据,然后根据需要多次读取。此引擎适用于相对较小的表(建议最多1,000,000行)。如果有许多小表,则使用此表引擎是适合的,因为它比需要打开的文件更少。当拥有大量小表时,可能会导致性能低下。 不支持索引。案例:创建一个TinyLog引擎的表并插入一条数据

ClickHouse表引擎

3、a.bin 和 b.bin 是压缩过的对应的列的数据,sizes.json 中记录了每个 *.bin 文件的大小:

ClickHouse表引擎

6、4 、MergeTreeClickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎。MergeTree 引擎系列的基本理念如下。当你有巨量数据要插入到表中,你要高效地一批批写入数据片段,并希望这些数据片段在后台按照一定规则合并。相比在插入时不断修改(重写)数据进存储,这种策略会高效很多。格式:

ClickHouse表引擎

8、在/var/lib/clickhouse/data/default/mt_tree下可以看到:

ClickHouse表引擎

10、可以看出他比MergeTree只多了一个ver,这个ver指代版本列,他和时间一起配置,区分哪条数据是最新的。案例:

ClickHouse表引擎

12、columns — 包含将要被汇总的列的列名的元组案例:

ClickHouse表引擎

14、参数解析:cluster_name - 服务器配置文件中的集群名,在/etc/metrika.xml中配置的database – 数据库名table – 表名sharding_key – 数据分片键案例演示:1)在hadoop102,hadoop103,hadoop104上分别创建一个表t

ClickHouse表引擎

16、3)在hadoop102上创建分布式表

ClickHouse表引擎

18、5)查看数据量

ClickHouse表引擎

19、可以看到每个节点大约有1/3的数据

猜你喜欢