受访嘉宾:张雷
MongoDB中文社区年终大会将于2020年1月4日在深圳召开,在大会开始前,我们采访了部分嘉宾,希望了解到这场大会分享内容的更多故事和背景。
本期我们采访的是字节跳动基础架构深圳负责人张雷, 他将在大会当天跟我们分享议题:MongoDB在字节跳动的应用及挑战。
Q & A
1. 字节跳动早是从什么时候开始使用MongoDB的?当时是遇到什么痛点了?为什么会考虑使用mongodb来解决这个问题?
字节跳动正式使用MongoDB大概是2019年的五六月份,之前也有,但是比较少;我们原来用的是MySQL,有一些扩展性的问题之类的,挺麻烦的,还有就是我们之前一些用户遇到去写schema的时候,schema需要时间提前固定,存一段时间后要改 schema就很麻烦,但是我们现在其实很多业务一开始schema是想不太清楚的,或者想要加一些字段的时候,就非常麻烦。所以我觉得MongoDB可能会比较合适一点。
2. 现在字节跳动在哪些项目/场景上使用了mongodb?数据量又有多少?
我们现在很多业务包括很多数据模型之类的,跟一些文档模型结构像树型之类的比较相似,所以我们觉得这个模型可能会适合一点。主要是在文档这一块,像是配置文件、原型用MongoDB就很方便了。我们现在数据量大概几百个T吧,量不是很大,刚开始用嘛。
3. 从传统关系型数据库切换到非关系型数据库,你们是如何做数据迁移的?这中间的工作量大概有多少?迁移后目前项目运转状况如何?
我们自己写代码迁的,读了之后导啊,业务用MongoDB Driver写个程序,然后MySQL这边写个程序,然后把表导过来,业务自己导。花的时间还好,这个跟数据量相关的,我们陆陆续续有导了半年了。我们现在的做法还比较保守,迁数据这个事是比较麻烦的事,成本也比较高,所以我们现在的策略是说新上的业务,新开发的一些东西优先用,老的数据就慢慢弄,看这个Mongo稳定了之后再慢慢迁吧,明年可能会多一点。今年老的数据迁得比较少,因为这个风险比较大,老数据数据量比较大,在线业务迁的过程出现点问题的话就会搞很大的事故。
4. 您觉得mongodb在字节跳动的IT研发上大的帮助,或者说收获是什么?在今后的项目中,还会继续使用mongodb吗?
MongoDB比较灵活,帮我们解决了一些扩展性、容量的一些问题,业务的schema用起来比较舒服,就是不用提前去改,这个对于原来的业务来说是很痛苦的一件事情。
会的。因为我们字节跳动是一个内容创作的平台和公司,我们自己会产生大量的数据,我们用户也会产生很多很多的数据,比如视频之类的,然后这些数据有结构化的,半结构化的,非结构化的。你想想非结构化的半结构化的数据都会越来越多。
5. 说到字节跳动,大家反应就是今日头条,可以跟大家大概介绍下字节跳动吗?
这个我在大会上会跟大家讲一下的。