天啦,我为何从Mongo迁移到ClickHouse,体验了哪些转变?

2026-05-25 12:210阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5779个文字,预计阅读时间需要24分钟。

天啦,我为何从Mongo迁移到ClickHouse,体验了哪些转变?

前言:在实现前端监控系统初始阶段,使用了Mongo作为日志数据存储库。文档型存储,日志字段扩展和收缩都十分方便。天生的JSON格式和NodeJs配合也相当融洽。就这样度过了几度春秋。

前言:

在实现前端监控系统的最初,使用了 Mongo 作为日志数据存储库。文档型存储,在日志字段扩展和收缩上都能非常方便。天生的 JSON 格式和 NodeJs 配合也非常贴合。就这样度过了几个月的蜜月期。

而后有一天发现,表里的数据越来越大了(单表上亿),查询变慢了,特别是聚合查询。于是使用了各种优化手段:复合索引、时间条件约束、定期清理过老数据等等,但最终效果都不理想。

在事情的发展过程中也从同事口中了解到有一个叫 ClickHouse 的数据库,也许对目前的场景比较有帮助。于是,自己经历了:

  • “Mongo是最棒的”
  • “一定是我 Mongo 没用好,继续深入优化肯定能行”
  • “我玩不动了,看看 ClickHouse 吧”
  • “ClickHouse 真香”

的心路历程。到现在已经稳定使用 ClickHouse 许久之后,回顾历史,有了这篇文章。

Mongo的苦与乐:

在最开始使用 Mongo 时,觉得使用起来非常顺手。在使用过程中,也不断的进行过优化,下面大概说下几个核心设计点和遇到的问题。

  • 分表

前端监控日志收集是按照应用和数据类型区分来建表的,这算作一定的优化和单元拆分,可以让数据不要全部集中在一起,也方便后期应用删除。在某些表数据量特别大的情况下,想要主从模式的单表按照时间分区,在mongo中,其实并不支持时间分区,只支持集群分片。

阅读全文

本文共计5779个文字,预计阅读时间需要24分钟。

天啦,我为何从Mongo迁移到ClickHouse,体验了哪些转变?

前言:在实现前端监控系统初始阶段,使用了Mongo作为日志数据存储库。文档型存储,日志字段扩展和收缩都十分方便。天生的JSON格式和NodeJs配合也相当融洽。就这样度过了几度春秋。

前言:

在实现前端监控系统的最初,使用了 Mongo 作为日志数据存储库。文档型存储,在日志字段扩展和收缩上都能非常方便。天生的 JSON 格式和 NodeJs 配合也非常贴合。就这样度过了几个月的蜜月期。

而后有一天发现,表里的数据越来越大了(单表上亿),查询变慢了,特别是聚合查询。于是使用了各种优化手段:复合索引、时间条件约束、定期清理过老数据等等,但最终效果都不理想。

在事情的发展过程中也从同事口中了解到有一个叫 ClickHouse 的数据库,也许对目前的场景比较有帮助。于是,自己经历了:

  • “Mongo是最棒的”
  • “一定是我 Mongo 没用好,继续深入优化肯定能行”
  • “我玩不动了,看看 ClickHouse 吧”
  • “ClickHouse 真香”

的心路历程。到现在已经稳定使用 ClickHouse 许久之后,回顾历史,有了这篇文章。

Mongo的苦与乐:

在最开始使用 Mongo 时,觉得使用起来非常顺手。在使用过程中,也不断的进行过优化,下面大概说下几个核心设计点和遇到的问题。

  • 分表

前端监控日志收集是按照应用和数据类型区分来建表的,这算作一定的优化和单元拆分,可以让数据不要全部集中在一起,也方便后期应用删除。在某些表数据量特别大的情况下,想要主从模式的单表按照时间分区,在mongo中,其实并不支持时间分区,只支持集群分片。

阅读全文