先说一下遇到的问题,然后给出自己的解决方案,虽然不一定是最佳的解决方法,但是目前确实解决了公司的大表数据问题,如果其他小伙伴有更好的解决方法,也请多多交流,给出自己的解决方法。
目前所有的数据和工具组件都是基于腾讯云搭建和管理,先说下我们遇到的情况:
1.mysql表查询数据量较大(单表最大已经达到33亿条数据,整个mysql已经达到2.9T的数据存储),
2.mysql表每日新增数据量较大(增量最大的表,每日新增数据量在4千万条左右的数据)
3.需要支持事务操作,部分表需要支持更新操作。
4.支持复杂操作,包括模糊,排序,分组统计和分页等操作。
5.低延迟,用户选择的任务条件查询,响应时间应该控制在3-5s。
6.实时数据的写入和查询操作,目前实时数据每10分钟处理一次,大概400G左右的数据。
从上面很容易看出来我们遇到的,
1.单表数据量较大,已经无法支撑前台部分业务的正常操作;
2.部分统计程序写入已经达到上限(MySQL每秒写入8万条的数据),造成其他任务无法正常执行,经常在凌晨脚本启动后,不能按时处理完数据,造成其他任务的挤压(注:所有离线和实时均采用spark处理,yarn资源调度采用的Fair策略,目前腾讯云不支持Capacity策略)。