导读
本文介绍了某省妇幼健康管理系统的建设和数据库架构优化的过程。原有的数据库架构使用了 StarRocks 作为分析层,但随着业务的发展,这套架构暴露出诸多痛点,不再适应妇幼业务的需求。为解决这些问题,该系统选择了将原有架构中的 StarRocks 替换为 TiFlash 组件,并引入了 Yearning 自动化 SQL 审计平台,提高了运维效率和业务扩展能力。新架构在人力成本释放、运维成本降低等方面取得了显著的成效。
某省妇幼健康管理系统建设内容包括:妇幼健康信息数据库;妇幼健康信息采集系统、妇幼健康信息管理及分析系统;母子健康管理 APP、妇幼健康管理与分析 APP 等 62 个功能模块。
我们选择 StarRocks 作为分析层,通过 DataX + CloudCanal 的模式实现实时+离线数据同步。随着业务的迭代,这套架构不太适应妇幼业务的发展需要。
架构总体上分为四块,自底向上分别是:
痛点:
数据库合并
在数据库合并后,表的数量分布如下:超过 10 万条数据的表数量为 792 张,超过 100 万条数据的表数量为 156 张,超过 1000 万条数据的表数量为 58 张,以及超过 1 亿条数据的表数量为 5 张。
我们正在寻找一种数据 库解决方案,以确保在数据库合并后,写入操作和在线DDL操作的稳定性和可靠性 。我们对比测试了 PolarDB、TiDB 和 OceanBase 等多个数据库解决方案,最终决定采用 TiDB,其主要特点包括:
新架构中,我们移除了 StarRocks 分析层,转而利用 TiDB 的 TiFlash 组件来实现 OLAP 功能。数据交换任务现在通过 TiCDC 来执行。分析层与业务层的合并简化了架构,所有业务操作现在都直接在宽表上执行,并由 TiFlash 加速。这一变化显著降低了运维成本并提升了业务扩展性。
在将 StarRocks 替换为 TiFlash 后, 与按地市分库的 S tarR oc ks 相比, 我们发现整体查询效率并未显著提高,经过优化,常用的查询 已能够达到预期的性能标准。引入 TiDB 后,主要带来了以下收益:
引入 Yearning 自动化 SQL 审计平台
在新架构中,我们落地了自动化 SQL 审计平台 Yearning,该平台具备以下功能:
分析层迁移到 TiDB 后 , 我们将原有的 14 套数据库合并为一 套 TiDB, 方便管理,让及时的优化成为了可能。
自带监控的 TiDB Dashboard
我们结合 TiDB Dashboard 的监控结果实现了自动化的监控告警机制,捕获慢 SQL,避免热点的产生。
示例:
TiDB Dashboard 部分功能截图 :
删库、删表恢复
在过去的架构下,如果 DBA 或业务人员不小心进行了危险操作,恢复起来非常困难,只能依托于备份恢复来实现。引入 TiDB 后能够快速 flashback,实现删库删表的恢复。
恢复删除库示例
恢复删除表示例
备份/还原应用超乎预期
TiDB 提供了 BR 集群快照备份功能,直接将日志备份到 MinIO 中。目前某省妇幼一天两次快照 0 时、12 时,由于备份受限于存储,目前只能保留一天内的快照也未做日志备份。(全量快照+实时日志备份)可保证数据不丢失。BR 还原数据超乎预期,300G 数据还原用时 20 分钟(v7.1.3),官方最新版本 v7.6 最新版本 BR 还原能力提升 10 倍。
一地两中心的尝鲜
考虑到妇幼数据的重要性,在政务云实施搭建一地两中心,通过 TiCDC 实现主库集群实时将数据写入到从集群,同时从集群担负报表业务以及研发测试库环境,让我们初步实现了一地两中心的设想。
服务器资源合理利用
人力成本的释放
原架构在数据层和处理层 DBA 人员根据发布周期对数据库进行 DDL 操作以及调整和调度。新架构省去了调度的维护工作同时引入 SQL 审计平台可实现自动化 ddl。但是 DBA 同时需要更加关注 TiDB 的各项指标。
运维成本的降低
TiDB 部署不需要大数据组件的支撑,部署运维都很简单。 TiDB 兼容 MyS QL 生态,业务使用可直接使用 MySQL JDBC 进行连接,不用再担心 SQL 语法差异问题。
目前我们有两套数据架构 MyS QL + StarRocks 和 TiDB, 这两套架构各有优势(也可以结合使用),未来我们将结合事业部需求,根据不同业务线需求去确定使用哪套架构。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。