它表示,分区使删除或移动数据变得更容易,因此仅对有限的数据造成影响。在各种博客中,建议使用月份作为分区键 ( toYYYYMM(date))。在许多地方,还建议不要有超过几个分区。我使用 clickhouse 作为数据库来存储不会频繁删除的时间序列数据。对于大量时间序列数据,建议的分区键是什么?如果我不想频繁删除,是否必须有一个?
在生产中,我注意到启动非常慢,我怀疑分区太多是罪魁祸首。因此,我决定通过从另一个表中选择数据(这样就没有机会优化表)来将新鲜的时间序列数据插入到表中(为大约 200 亿行创建了超过 2300 个分区)进行测试。我立即删除了原来的表并尝试重新启动。很快就10秒左右就完成了。这与我在生产中观察到的 800GB+ 数据完全相反(有许多数据库和表,而不是我的测试节点只有一个表)。
编辑:正如所指出的,我混淆了零件和分区。关于clickhouse的启动时间受到影响,我最好再发一个问题。
小智 6
这是一个非常常见的问题,为了披露,我在 ClickHouse 工作。
正如您所指出的,当您拥有时间序列数据时,分区特别有用。在确定分区数量时,我们通常会推荐一些准则:
分区的使用应该由几个关于为什么使用它们的问题来确定:
鉴于这些指南,希望对您的问题有所帮助。按日或按月分区可能是最常见的,但由于 ClickHouse 可以非常轻松地管理大型表,因此可能希望尽可能减少分区 - 按月分区可能是最常见的。
我不完全理解你的测试结果,所以请随意扩展。2300 个分区听起来太多了,但可能可行,只是会对性能产生一些影响。减少分区数量(从而增加分区大小)似乎是一个不错的建议。
| 归档时间: |
|
| 查看次数: |
1399 次 |
| 最近记录: |