clickHouse-缓存引擎

Buffer引擎在ClickHouse中用于缓存数据,先写入内存再定期刷新到其他表。读取时,数据同时从缓冲区和目标表读取。引擎参数包括缓冲层数、时间及大小条件等。不支持索引,且数据可能按不同顺序写入目标表。适用于大量INSERT数据需快速写入的情况,但存在一些限制和潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓冲数据以写入内存,并定期将其刷新到另一个表。在读取操作期间,同时从缓冲区和另一个表读取数据。

Buffer(database, table, num_layers, min_time, max_time, min_rows, max_rows, min_bytes, max_bytes)
引擎参数:
database- 数据库名称。可以使用返回字符串的常量表达式来代替数据库名称。
table –将数据刷新到的表。
num_layers–并行层。在物理上,该表将表示为num_layers独立的缓冲区。建议值:16。
min_time,max_time,min_rows,max_rows,min_bytes,和max_bytes-条件从缓冲区刷新数据。
如果满足所有min条件或至少一个max条件,则从缓冲区刷新数据并将其写入目标表。
min_time,max_time–从第一次写入缓冲区起的时间(以秒为单位)。
min_rows,max_rows–缓冲区中的行数条件。
min_bytes,max_bytes–缓冲区中字节数的条件。
在写操作期间,数据被插入到num_layers许多随机缓冲区中。或者,如果要插入的数据部分足够大(大于max_rows或max_bytes),则将其直接写入目标表,而忽略缓冲区。
对于每个num_layers缓冲区,分别计算刷新数据的条件。例如,如果num_layers = 16和max_bytes = 100000000,则最大RAM消耗为1.6 GB。
例:
CREATE TABLE merge.hits_buffer AS merge.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值