写点什么

14 亿人的大项目,如何跑在腾讯云数据库 TDSQL 的“双引擎”上?

  • 2021-05-13
  • 本文字数:2068 字

    阅读完需:约 7 分钟

14亿人的大项目,如何跑在腾讯云数据库TDSQL的“双引擎”上?

5 月 11 日,第七次全国人口普查结果公布。


我国每十年进行一次人口普查:从 1953 年的算盘,到后续的计算机,数据采集的变迁从未改变纸表录入的形式。而到了第七次全国人口普查,电子化采集全面取代纸表,将数据直接上报到国家统计局。700 万普查员、全体中国大陆公民,首次在线上完成人口普查数据采集,而这背后其实是腾讯云在保驾护航。据统计,在该项目中,腾讯云数据库支持了十亿级用户数据、七百万个终端和百万级峰值 TPS(每秒事务处理量)。

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


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

 

“大量的数据要收集上来,同时数据的更新和数据的查询是互相交错的,不仅要应对动态的人口流动,比如一个人今天在深圳而明天在北京,同时要准确对应起人和户、人和人之间的关系。”据介绍,使用电子化方式开展全国人口普查工作,涉及范围广、统计维度多、技术难度大。


如何在十几亿中国人的数据在 15 天内涌入时保证用户体验和服务可持续性?如何缩短登记时间同时保证数据安全?如何在动态人口流动中准确登记、高效完成多个超大表关联实时分析?


这对背后的数据库技术的并发性、可靠性、一致性、扩展性、稳定性,以及复杂查询分析能力都提出了极高的要求。


团队专家决定再在小程序和 TDSQL 之间加上腾讯云 Redis,将其作为缓存承接所有终端涌入的数据,然后把数据落入 TDSQL 中。有了这么一道缓存墙,业务运行中既能从容应对暴涨的流量,也能防止小程序突然崩溃,相当于上了一道“双保险”。

腾讯云数据库 TDSQL 的解决之道

 

本次全国人口普查项目,腾讯云数据库提供了“OLTP+OLAP”双引擎融合的企业级分布式数据库管理系统 TDSQL,平稳、高效支撑第七次全国人口普查工作完成。


其中,OLTP 能力专门用来做前端生产系统的事务处理,其最大的优点是能即时地处理输入的数据,并及时响应,实时保持系统数据处于最新状态;OLAP 能力则负责后期数据联机查询分析处理,支持复杂的分析操作。


TDSQL OLTP 引擎提供了支撑大并发的性能,包括线程池、无锁优化等等,支撑 3 万+的数据库连接;强同步技术在跨可用区的情况下,满足高吞吐量、主备数据一致性和高可用的能力;弹性的容量伸缩,可根据实际运营情况进行容量水平扩展。此外,智能运营系统“扁鹊”,则可针对性能较低的 SQL 给出优化建议,同时自动评估业务的事务模型,降低锁冲突,提升并发能力。

 

测试中,TDSQL 数据库应对高并发场景时可以实现数百万每秒的吞吐量,这样的吞吐规模已经可以满足目前中国人口 2 倍的数量。借此,实际统计中 TDSQL 数据库也顺利扛住了普查过程中的并发高峰。

 

同时,业务具有大规模实时查询分析的需求,普查员在前端不断录入的数据也将在 TDSQL OLAP 能力引擎中进行进一步的数据分析。据了解,在这些庞大的数据中,不乏多张超级大表关联高并发统计查询,其每张表中存放了超过 20 亿+条记录。如果把其中存放一张超级表的空间用来存放平均 50 万字的书籍,可以放下超过 1000 万本,一个人终其一生也读不完。


在此过程中,OLAP 分析计算开销大、延迟长,同时还要满足海量的并发请求,TDSQL OLAP 引擎通过水平扩展多个只读平面,即可良好地满足业务的要求,为复杂查询分析场景提供线性读扩展能力,并通过在多个平面前置负载均衡做到扩缩容业务完全无感知;与此同时,基于全局一致性技术,可实时保障多平面下内部的全局读一致性。

企业级安全特性保障系统可用可靠


规模浩瀚的人口普查工作,系统业务架构复杂、并发度高。在灾备设计、高可用能力保障上,整个数据库采用了一主三从、强同步复制和异地灾备的备份方案,在某个数据节点出现故障时,能保证数据的完整和一致;哪怕出现大规模的突发情况,通过异地灾备,也能够进行数据恢复。

 

TDSQL 的安全性经过了腾讯各类核心业务 10 余年大规模产品的验证,包括社交、电商、支付、音视频等不同类型的产品。在灾备方面,TDSQL 提供完善的数据备份、容灾、一键升级、快速恢复,以及数据库防火墙、透明加密等功能,同时建立起完善的监控和报警体系,大部分故障都通过自动化程序处理恢复。在整个过程中,TDSQL 从早期就磨炼下来的企业级安全特性能力,持续为人口普查工作保驾护航。

 

此外,为了让整个普查过程能够更加容易感知,腾讯云图将普查收集到的海量数据进行处理,通过数字大屏和饼状图等工具实时清晰地展示人口报送情况,并对各省报送情况进行动画效果展示,使得普查小组能够更加直观地了解整体情况和各地普查进度,根据大屏信息安排进一步的工作,提高工作效率。和其他产品协同,完成了数据“上传——入库——分析——展示”的最后一公里。

 

据不完全统计,在此次第七次全国人口普查项目中,腾讯共有 40 多个部门、超过 300 人参与其中,封闭周期长达 200 多天。据新华网统计报道,与 2010 年全国第六次人口普查的纸表入户登记方式相比,电子采集的方式将登记时间缩短到了 20 分钟以内,并在很大程度上降低了后期数据录入、处理的难度。

2021-05-13 12:172379
用户头像
蔡芳芳 InfoQ 总编辑

发布了 851 篇内容, 共 629.4 次阅读, 收获喜欢 2826 次。

关注

评论

发布
暂无评论
发现更多内容

阿里二面:为什么要分库分表?

Java MySQL 数据库 架构 面试

iOS 崩溃日志在线符号化实践

百度Geek说

安全漏洞的复现与总结

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

[2021年新鲜出炉]K8s工程师资料合辑,书籍推荐,面试题,精选文章,开源项目,PPT,视频,大厂资料

奔着腾讯去

golang Docker Kubernetes 容器 云原生

打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性

Serverless Devs

阿里云 Serverless 函数计算

网易云音乐音视频算法的 Serverless 探索之路

阿里巴巴中间件

云计算 阿里云 Serverless 云原生 中间件

英特尔全面升级开发者专区(Developer Zone),携手开发者共塑科技未来

科技新消息

先行一步,7 大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了

Serverless Devs

阿里云 gpu VPC 函数计算

官方线索 | 阿里云1024程序员创造营

穿过生命散发芬芳

1024我在现场

递推算法与递推套路(手撕算法篇)

有道技术团队

学习 编程 算法

英特尔On技术创新峰会公布开发者重点投入计划,全面赋能开发者

科技新消息

短短 146 天就成为 Apache APISIX Committer,我是怎么做到的?

API7.ai 技术团队

成长笔记 API网关 社区 Apache APISIX

IOS技术分享| ARCall视频通话重构

anyRTC开发者

ios 音视频 语音通话 视频通话 视频呼叫

【IT运维小知识】安全组是什么意思?

行云管家

网络安全 安全 数据安全 安全组 IT运维

Redis核心原理与实践--Redis启动过程源码分析

binecy

redis 源码阅读

第 24 章 -《Linux 一学就会》- shell中色彩处理和awk使用技巧

学神来啦

Linux linux运维 linux云计算 linux一学就会

这一篇 K8S(Kubernetes)我觉得可以了解一下!!!

牧小农

Docker 容器 kubenetes

瑜伽CRM系统使老师再也不用教学分心

低代码小观

CRM 管理工具 CRM系统 瑜伽 瑜伽馆管理

医药研发企业数据中台的选择

鲸品堂

产业互联网

Linux指令日志分析(一)

正向成长

日志分析

如何赋能APaaS平台应用管理员

明道云

堪称神级的Spring Boot手册,从基础入门到实战进阶

Java 程序员 Spring Boot

直面Z级计算挑战,英特尔携手生态合作伙伴加速开发者工具和软件部署

科技新消息

阿里最新春招面经,腾讯/美团/字节1万道Java中高级面试题

收到请回复

Java 程序员 面试 职场 后端

用建造者模式实现一个防SQL注入的ORM框架

Tom弹架构

网易云音乐音视频算法的 Serverless 探索之路

Serverless Devs

阿里云 Serverless 算法 音视频

一文详解从云计算到 Serverless

Serverless Devs

云计算 Serverless

业内首款云原生技术中台产品云原生 Stack 来了!

阿里巴巴云原生

阿里云 云原生 技术中台

企业级开发工具,J2PaaS低代码平台核心能力解析!

J2PaaS低代码平台

软件开发 低代码 低代码开发 低代码平台

三轮融资笔笔过亿,来画如何实现弯道超车?

ToB行业头条

给JSONObject添加自定义遍历方法

FunTester

单元测试 Fastjson JSON库 spock FunTester

14亿人的大项目,如何跑在腾讯云数据库TDSQL的“双引擎”上?_语言 & 开发_蔡芳芳_InfoQ精选文章