本文转自公众号:腾讯大数据 继“一部手机游云南”后,抗疫时期,云南在全省范围内的公共场所推广由腾讯云提供技术支持的“云南抗疫情”扫码系统,实现全体民众出行扫码,全面分析预测确诊者、疑似者、密切接触者等重点人群流动情况。

截至2月24日,云南省累计有1.65亿人次扫码登记“云南抗疫情”微信小程序,用户数1325.81万人。市民使用起来也极其便捷,在进入公众场所前用微信扫描“入”二维码,离开时再扫描“出”二维码,这两张二维码就是云南打赢新冠肺炎疫情防控阻击战的两杆枪。

如此“简单”的操作背后下的功夫可不“简单”。

1. 高效处理急速爆发的亿级流量

如果把每天新增亿级数据存放在普通单机数据库里,数据库的查询性能会急剧下降,甚至分析能力也会受影响。同时,急速的增长量受空间限制无法长期存储,即使通过大批量扩容满足了性能要求,随之而来的是极高的成本投入。最重要的是,普通单机数据库数亿数据的查询性能无法满足秒级返回的需求。

因此业务方迫切需要一款支持PB级,且可以应对高速联机分析和高并发的事务处理的云上可伸缩的HTAP分布式数据库系统,经过了微信支付这样严苛业务考验的腾讯自研国产分布式数据库——TBase,可以全方位满足需求。

TBase是腾讯自研的分布式数据库,可以轻松应对亿级数据的存储、分析和查询。集高扩展性、高SQL兼容度、完整的分布式事务支持、多级容灾能力以及多维度资源隔离等能力于一身,采用无共享的集群架构,适用于PB级海量 HTAP 场景。

腾讯云TBase集群架构图

在云南抗疫小程序中,为满足业务高并发的入库和业务分析查询,TBase使用高性能分区表功能,根据数据量的大小将人群流动数据按照天或者间隔几天进行分区存放,解决了业务分库分表的痛点,并且可以进行冷热数据分离,为海量数据的处理提供了高效的方案。同时,利用TBase智能扫描快速定位数据的位置,减少人群范围,实现快速定位。另外,TBase采用分布式架构,可根据业务压力大小灵活扩展计算和存储资源,在节省成本的同时帮助业务高效稳定运行。

在数据的读取上,TBase将查询下推,并行执行用户SQL,分布式join执行示例如下:

要实现亿级数据的秒级返回,最重要的是提高数据节点执行效率,这里就需要提到数据重分布技术。

大家都知道,在分布式执行中通用的技术是数据重分布,数据重分布时容易导致数据节点内部资源使用不平衡,从而影响效率。TBase的数据重分布模型进行了业界独一无二的优化,该优化利用了CPU多核并行计算能力,增强了对复杂SQL的执行优化,可以减轻生产者负担,从而大大提高数据重分布时的执行效率和分布式系统中关联和聚合的效率,轻松实现小程序查询业务中亿级数据的秒级返回。

通过TBase的shard算法可以将数据快速均匀的分布到各个数据节点中,提升检索效率的同时也解决了单库的存储压力瓶颈问题。

2. 海量数据智能处理分析与建模

通过抗疫小程序,在疫情病患恢复期间,一旦发现确诊人员就可以快速回溯病患曾经出入过的场所,从而快速找出可能和他有过接触的人员并及时通过短信、电话等方式向可能接触者发出提醒,尽最大可能减少交叉传播的可能性。特别是复工人潮的冲击下,为确保市民安全防止病毒扩散,需要不间断的对人群进行流动和回溯分析。

在TBase的智能分析与建模能力下,仅需30秒即可实现亿级数据量去重。这样的秒级响应是怎么实现的呢?TBase利用两个计算特性对海量数据进行分析和关联:

分布列下推查询

非分布列join

在人流不断进出公共场所时,由于前端在设计表结构并未增加主键,存在业务重复扫码以及误操作等情况,这将导致一部分数据是重复,但是这些数据依然是有参考价值的,将这些数据用在后续计算模型丰富,但这无疑给模型带来了不必要的计算。因此我们需要对业务数据进行数据去重操作。利用TBase独特的node_id和ctid以及业务主键属性进行快速筛选以及去重处理之后,简化了后续数据建模中产生的不必要中间结果。

根据扫码数据以及人群的动态轨迹信息,首先根据业务数据量的一些特征分布列设计。比如一些主属性的唯一特征,利用分布列进行下推查询,提升分布式的join计算能力。一些无法下推的查询,将复杂查询的各部分数据转化成重分布查询,利用CPU内存计算优势提高计算。通过针对业务主属性快速的分析,合理进行相关表结构设计,快速的将分析结果提供给前端设备进行预警。

另外,TBase的多核计算能力也成功将CPU多核并行计算能力、执行SQL能力实现秒级返回,保障了模型的稳定分析能力。

在TBase强悍性能的支持下,“云南防抗疫”小程序从接入数据库到上线仅用了18个小时,有效运用科技化、信息化、大数据的手段,推动疫情防控工作更加高效和精准,进一步降低疫情防控风险。

1.65亿人次扫码登记的背后,是TBase的秒级返回相关推荐

  1. 核酸扫码登记体验有感(如何提高OCR的文字正确识别率)

    近几年,新冠疫情持续反复,核酸检测已成为了我们日常生活的一部分,甚至有人开玩笑说朋友邻居见面问候语从"吃了吗你?"变成了"今儿核酸了?".核酸检测全员常态化,需 ...

  2. 交通运输部:预计五一假期全国客运量2.65亿人次

    5月1日消息,据交通运输部介绍,预计五一假期全国铁路.公路.水路.民航发送的客运量将达2.65亿人次,日均5304万人次,基本恢复到2019年同期水平. 从时间分布来看,交通部预计假期首日将出现客流高 ...

  3. 为落实“四方责任”嘀嗒出行升级防疫措施 车乘须戴口罩扫码登记

    近日,多地再次出现疫情"中风险"预警,交通出行作为"外防输入,内防反弹"的关键环节,应进一步加强防疫工作. 为助力疫情可防可控,在疫情防控部门和主管部门的指导下 ...

  4. 二维码扫码登录的背后 ...

    前几天看了极客时间一个二维码的视频,写的不错,这里总结下 在日常生活中,二维码出现在很多场景,比如超市支付.系统登录.应用下载等等.了解二维码的原理,可以为技术人员在技术选型时提供新的思路.对于非技术 ...

  5. 扫码登录,背后是如何实现的?

    引言 近年来,随着智能手机和移动支付的普及以及互联网应用的不断更新迭代,扫码登录已经成为了我们日常生活中非常普遍的登录方式.扫码登录能够迅速的成为我们各大网站常用的登录方式一定存在它的原因. 首先一个 ...

  6. 如何使用百数扫码实现高效信息录入与查询

    随着移动互联网的发展,扫码功能已经遍布我们日常生活的每一个角落,我们习惯用扫码支付.扫码读取信息.扫码登记等等.在更为广泛的行业领域,扫码功能的辅助能够帮助工作流程更便捷,实现更高效的数字化办公. 百 ...

  7. 移动端扫码上传数据信息

    随着移动端设备的普及,越来越多的工作环节我们可以借助移动设备进行.移动端扫码(支持二维码.条形码)上传数据信息可以很大程度上减少数据录入纰漏,便捷地联动相关数据,提高信息准确率. 在百数的多个解决方案 ...

  8. 资产管理二维码应用方案:微信扫码实现一物一码管理

    固定资产管理的重要性不言而喻,涉及资产分类.采购管理.使用管理.维修管理.资产处置等多个环节.不仅可以帮助企业实现固定资产的最佳利用,也有利于延长固定资产的使用寿命,保护企业的资产安全. 但在固定资产 ...

  9. java 扫码下载_扫码支付 扫码支付Java直接使用的压缩包 联合开发网 - pudn.com

    扫码支付, 0 , 2017-03-14 扫码支付\.DS_Store, 6148 , 2017-03-16 __MACOSX, 0 , 2017-03-19 __MACOSX\扫码支付, 0 , 2 ...

最新文章

  1. 1814: 一元三次方程求解
  2. Javaassist简介
  3. 钣金缺口lisp_UG用钣金模块的放样创建天圆地方,还能学钣金展开,必看
  4. JDK 9早期版本安装后的Windows注册表清理
  5. Python小白的数学建模课-B2. 新冠疫情 SI模型
  6. java roundingmode.UP,即使明确设置,DecimalFormat也使用不正确的RoundingMode
  7. android getresponsecode -1,getHttpResponseCode()在android 2.2中返回-1
  8. php mongodb类 setreadpreference,Codeigniter使用MongoDB
  9. Word 重新设置页码
  10. awk当中使用外部变量
  11. 她玩游戏好都不准我玩游戏了_我们可以玩游戏吗?
  12. 图书馆借阅系统java参考文献_基于java的图书馆管理系统
  13. Python究竟是一门什么样的编程语言?
  14. Xenu Link Sleuth 简单好用的链接测试工具 使用说明
  15. SpringCloud平滑升级/优雅停机
  16. 基于SSM的餐厅点餐系统设计与实现(Java+MySQL)
  17. EMU8086开发工具_微机原理
  18. Android字体加粗的几种样式
  19. 产品运营模型:AARRR模型
  20. mysql修改数据库用户名和密码

热门文章

  1. hdu5831 Rikka with Parenthesis II
  2. Linux vi格式化文件命令
  3. ASP.NET MVC 环境配置,从1.0到2.0的转换和学习资源等
  4. asp.net在线发送邮件,以前没做过,调试好了。
  5. 牛客 - 合约数(树上启发式合并)
  6. CodeForces - 1343F Restore the Permutation by Sorted Segments(思维)
  7. python是外部还是编程_Python网络编程(绑定到外部地址)
  8. 斯特林反演[bzoj4671]异或图
  9. IDT系列:(二)中断处理过程,使用bochs调试IDT中的中断服务程序
  10. 反汇编程序导致程序crash的解决思路