批量插入
批量摄取数据
默认情况下,每次发送到 ClickHouse 的插入操作都会导致 ClickHouse 立即在存储上创建一个部件,其中包含来自插入操作的数据以及需要存储的其他元数据。因此,相比于发送大量包含少量数据的插入操作,发送较少量但每个都包含更多数据的插入操作将减少所需的写入次数。通常,我们建议以相当大的批量插入数据,每次至少 1,000 行,理想情况下在 10,000 到 100,000 行之间。为了实现这一点,请考虑实施缓冲机制,例如使用 Buffer 表引擎 来启用批量插入,或使用异步插入(请参阅异步插入)。
提示
无论您的插入操作大小如何,我们都建议将插入查询的数量保持在每秒一次左右。此建议的原因是,创建的部件会在后台合并为更大的部件(为了优化您的数据以进行读取查询),并且每秒发送过多的插入查询可能会导致后台合并无法跟上新部件的数量。但是,当您使用异步插入时,可以使用更高的每秒插入查询率(请参阅异步插入)。