热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

14亿人的大项目,腾讯云数据库拿下!

全国人

5月11日,第七次全国人口普查结果公布。
国家统计局总统计师曾玉平在发布会直播中表示:普查数据质量是普查统计工作的生命线……利用信息化,对普查方式进行创新:首次全面采用电子化,实时及时上报数据;首次实现普查对象通过互联网自主填报;首次利用行政大数据进行比对核查;首次实现利用互联网云计算云服务实时处理工作;首次用信息化系统对700多万普查员进行线上管理。”
腾讯云在背后为第七次全国人口普查保驾护航。据统计,在该项目中,腾讯云数据库支持了十亿级用户数据、七百万个终端和百万级峰值TPS(每秒事务处理量)。

一、高并发、高复杂度实时统计和分析查询的要求

在这个普查过程中,700万普查员使用微信小程序进行数据采集,约一亿人使用微信自主填报小程序进行信息录入,海量数据全部实时入库;与此同时,为了便于假如数据采集出现问题能够在第二天及时补充采集、修正,系统同时需要快速完成对入库数据的实时查询分析。

“大量的数据要收集上来,同时数据的更新和数据的查询是互相交错的,不仅要应对动态的人口流动,比如一个人今天在深圳而明天在北京,同时要准确对应起人和户、人和人之间的关系。”据介绍,使用电子化方式开展全国人口普查工作,涉及范围广、统计维度多、技术难度大。
团队专家决定再在小程序和TDSQL之间加上腾讯云Redis,将其作为缓存承接所有终端涌入的数据,然后把数据落入TDSQL中。有了这么一道缓存墙,业务运行中既能从容应对暴涨的流量,也能防止小程序突然崩溃,给这次普查上了一道“双保险”。
这背后也意味着,对背后的数据库技术在并发性、可靠性、一致性、扩展性、稳定性,以及复杂查询分析能力提出极高的要求。如何在十几亿中国人的数据在15天内涌入时保证用户体验和服务可持续性?如何缩短登记时间同时保证数据安全?如何在动态人口流动中准确登记、高效完成多个超大表关联实时分析?……

二、腾讯云数据库TDSQL解决之道

1. 为亿级数据装上“双引擎”

700多万B端混合负载业务、十几亿C端OLTP业务、海量的数据分析任务……本次全国人口普查项目,腾讯云数据库提供了既具有擅长OLTP场景能力,同时擅长联机分析处理OLAP场景能力引擎的企业级分布式数据库TDSQL,通过“双引擎”设计支撑人口普查工作完成。
前者专门用来做前端生产系统的事务处理,其最大的优点是即时地处理输入的数据,并及时响应,实时保持系统数据处于最新状态;后者负责后期数据联机查询分析处理,支持复杂的分析操作。
双引擎技术能力的融合,完整、平稳、高效地支撑了全国人口普查数据登记及统计分析整个体系化工作。
其中,TP集群提供了支撑大并发的性能,包括线程池、无锁优化等等,支撑3万+的数据库连接;强同步技术在跨可用区的情况下,满足高吞吐量、主备数据一致性和高可用的能力;弹性的容量伸缩,可根据实际运营情况进行容量水平扩展。此外,智能运营系统“扁鹊”,则可针对性能较低的SQL给出优化建议,同时自动评估业务的事务模型,降低锁冲突,提升并发能力。
测试中,TDSQL数据库应对高并发场景时可以实现最高250万每秒的吞吐量,这样的吞吐规模已经可以满足目前中国人口2倍的数量。借此实力,实际统计中TDSQL数据库自然扛住了普查过程中的并发高峰。
同时,业务具有大规模实时查询分析的需求,普查员在前端不断录用的数据也将在TDSQL OLAP能力引擎中进行进一步的数据分析。在分析型功能特性方面,TDSQL OLAP集群通过对多表join查询、复杂子查询、聚合运算、DN数据高效重分布表现上进行了极大的优化,大大地缩短了业务报表分析时间。据介绍,TDSQL支持目前市面上几乎全部标准的OLAP复杂查询计算模型,包括TPCDS等,各类复杂查询业务需求。
同时,在此过程中,OLAP分析计算开销大、延迟长,同时还要满足海量的并发请求,TDSQL OLAP引擎通过水平扩展多个只读平面,为复杂查询分析场景提供线性读扩展能力,并通过在多个平面前置负载均衡做到扩缩容业务完全无感知。
据了解,在这些庞大的数据中,不乏多张超级大表关联高并发统计查询,其每张表中存放了超过20亿+条记录。如果把其中存放一张超级表的空间用来存放平均50万字的书籍,可以放下超过1000万本,一个人终其一生也读不完。
更重要的是,基于全局一致性技术,可实时保障多平面下内部的全局读一致性。
2. 保障系统可用可靠  企业级安全特性加持护航
规模浩瀚的人口普查工作,系统业务架构复杂、并发度高,在灾备设计、高可用能力保障上,整个数据库采用了一主三从、强同步复制和异地灾备的备份方案,在某个数据节点出现故障时,都能保证数据的完整和一致;哪怕出现大规模的突发情况,通过异地灾备,也能够进行数据恢复。
TDSQL 的安全性经过了腾讯各类核心业务10余年大规模产品的验证,包括社交、电商、支付、音视频等不同类型的产品。在灾备方面,TDSQL提供完善的数据备份、容灾、一键升级、快速恢复,以及数据库防火墙、透明加密等功能,同时建立起完善的监控和报警体系,大部分故障都通过自动化程序处理恢复。在整个过程中,TDSQL从早期就磨炼下来的企业级安全特性能力,持续为人口普查工作保驾护航。
此外,为了让整个普查过程能够更加容易感知,腾讯云图将普查收集到的海量数据进行处理,通过数字大屏和饼状图等工具实时清晰地展示人口报送情况,并对各省报送情况进行动画效果展示,使得普查小组能够更加直观地了解整体情况和各地普查进度,根据大屏信息安排进一步的工作,提高工作效率。完成了数据“上传——入库——分析——展示”的最后一公里。
三、结语
全国人口普查的电子化推进,TDSQL“OLTP+OLAP”双引擎设计架构一起承接了峰值超过100万TPS,另外OLAP集群还额外支撑峰值每分钟1700万次的统计查询服务,助力第七次全国人口普查工作顺利完成。同时,据新华网统计报道,与2010年全国第六次人口普查的纸表入户登记方式相比,电子采集的方式将登记时间缩小到了20分钟以内,也很大程度上降低了后期数据录入、处理的难度。
可以说,这标志着,社会生活的方方面面都已逐步迈入信息化智能化的云时代,我国自研的信息化技术可常态化满足社会大规模信息化应用需求,且能够满足政府金融等行业领域的数字需求,在任务量巨大的极端情况下安全可靠。

- End -

 直播推荐

明天(5月13日) 19:00-20:00,腾讯云老司机分享《萌新云数据库学习指南》,手把手带你入门数据库。还有免费培训课、Q币、周边大礼包等你来拿,扫码即可参与~

↓↓更多惊喜优惠请点这儿~ 


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 旁路|发生_Day749.旁路缓存:Redis是如何工作的Redis 核心技术与实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Day749.旁路缓存:Redis是如何工作的-Redis核心技术与实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
author-avatar
手机用户2502887641
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有