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