1、背景介绍
中亿集团是一家专注于物联网无线通信领域的国家高新技术企业,致力于软硬件研发、AIoT平台和连接方案服务。公司多年来为客户提供无线终端解决方案和行业物联网连接方案,已成为国内领先的5G智能物联网连接方案服务商。
2、三大主要业务线
1. 行业物联网板块:为服务机器人和新能源充电桩领域提供通信联网及配套产品服务。
2. 消费物联网板块:为人和机器提供4-5G智能路由CPE等无线上网终端产品。
3. 智能安防板块:为无线场景提供4-5G无线终端视频监控摄像头,解决无人看守及无人看护问题。
自成立以来,中亿集团坚持以AIoT云平台为核心技术驱动,深耕智能安防、智能路由、服务机器人及充电桩领域。目前,中亿云平台已连接超过3700万各类终端设备,实现月付费终端800万台。
3、业务背景及数据库架构
客户业务背景
在平台开发初期,由于数据库表设计不合理,导致部分表在需要跨库查询时出现冗余字段。此外,分表设计也不尽合理,加之产品功能设计复杂,使得满足不同业务需求时需创建聚合中间表。这些中间表的生成难度较高,因为某些字段的数据是先生成的,而其他字段则是在后续过程中修改补齐。当前调整原有产品和技术设计较为困难,客户经过多方探索后选择了数据库优化方案。当前数据库架构
平台采用微服务架构,共保有 四个 PolarDB 数据库实例,所有数据存储在三个PolarDB数据库实例中,为了支持综合查询,业务上需要对部分关键数据进行聚合,另外一个实例做数据聚合用。4、核心痛点
目前数据总量达到1700万条,原始数据来自不同数据库的多个表。使用PolarDB聚合方案时,首先同步数据并直接插入或更新到PolarDB中,但并未创建一个大宽表,而是创建了一个小宽表。查询时需要关联多张表,这在数据量不超过1000万时基本没有问题,但超过1000万时查询性能显著下降,特别是count查询耗时无法接受。5、尝试过的方案及推荐产品
1. ClickHouse聚合方案:通过MySQL binlog机制将数据实时同步到ClickHouse,再通过定时任务每隔1分钟查出增量数据并插入到宽表中。此方案存在数据更新延迟超过1分钟的问题,并且查询时需要使用final关键字去重,导致查询速度较慢。
2、推荐产品:
○ Doris
○ SelectDB
○ ADB MySQL
○ Hologres
未采用上述产品的具体原因如下:
数据库选型主要是为业务读库使用,且读写都比较频繁场景,以上产品测试性后都不是特别符合。
6、最终解决方案
最终采用PolarDB多主集群加IMCI的方案。客户在测试阶段购买了3个主节点和1个只读列存节点,并利用IMCI功能特性,实现了对复杂耗时SQL语句的加速。测试结果显示,此方案有效解决了困扰已久的查询性能问题。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
目录