1000亿文本信息,高并发MD5查询,这么大数据量的业务怎么弄?

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 一个有关身份证信息检索的问题。

星球水友提问== 

沈老师,你好,想请教一个身份证信息检索的问题。

 

公司有一个每秒5万并发查询的业务,(假设)根据身份证MD5查询身份证信息,目前有1000亿条数据,纯文本存储,前几天看你写LevelDB,请问这个业务能利用LevelDB内存数据库进行存储么?有没有其他优化方案? 

上一位星球水友问的是36亿日志后台分页查询,紧接着又来了一位1000亿文本MD5查询,这次的业务,至少需要解决:

(1)查询问题;

(2)高性能问题;

(3)存储问题;

 

一、查询问题

文本信息的查找与检索,效率很低,第一个要解决的问题是:将文本过滤转变为结构化查询

 

由于检索条件是MD5,可以结构化为:

(MD5, data)

这样可以KV查询,或者数据库里的索引查询。

 

需要注意的是,MD5一般为字符串表示,字符串作为索引性能会降低,可以将字符串型的MD5转化为两个uint64_t进行存储,以提高索引效率。

 

(md5_high, md5_low, data)

两个长整形做联合索引,或者KV中的联合key。

 

该业务有一个很强的特点,都是单行数据主键上的查询,抛开数据量不说,即使不使用缓存,传统的关系型数据库存储,单机也能扛至少1W的查询。

画外音:但其实单机存不下,后文细说。

 

二、高性能问题

每秒5W并发,吞吐量很大,第二个要解决的是:性能的提升

 

身份证查询的业务有两个很强的特点:

(1)被查询的数据是固定的

(2)有查询请求,没有修改请求

很容易想到,缓存非常非常适合这种场景,不仅如此,还可以提前将数据加载到内存里,规避缓存的“预热”。

画外音:根据业务特点做设计,任何脱离业务的架构设计都是耍流氓。

 

如果内存足够大,提前加载数据,可以做到缓存命中率100%;即使不提前加载,每条数据也最多一次cache miss,数据一旦入cache,由于没有写请求,后续将永远不会被换出。

 

内存足够大的前提成立么?

假设每张身份证信息0.5K,1000亿大约:

1000亿*0.5K = 50000G = 50T

画外音:没有算错吧?

 

如此来看,如果不是特别土豪,缓存装不下所有数据,只能承载热数据。

 

每秒5W的吞吐量是瓶颈么?

线性扩充容量的方法很多:

(1)站点、服务冗余10份以上;

(2)存储(主键单行查询)水平切分10份以上;

可以看到,5W的并发并不是问题。

 

三、存储问题

如上一个部分分析,1000亿身份证信息,50T的数据,数据量实在太大,传统的关系型数据库,LevelDB此类单机内存数据库不是特别合适,人工水平切分,拆分实例会非常多,较难维护。

 

还是使用Hbase这类适合大数据量的存储技术吧。

 

最终,结合本例,建议:

(1)千万不能文本检索,务必要结构化

(2)单行查询,只读不写,缓存+冗余+水平切分能极大提升吞吐量;

(3)使用适合海量数据的技术进行存储;

 

经验有限,欢迎大家贡献更多更好的方案。

思路比结论重要。

本文转自“架构师之路”公众号,58沈剑提供。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1天前
|
SQL 大数据 数据挖掘
玩转大数据:从零开始掌握SQL查询基础
玩转大数据:从零开始掌握SQL查询基础
65 35
|
19天前
|
SQL 分布式计算 数据挖掘
阿里云 MaxCompute MaxQA 开启公测,公测可申请 100CU 计算资源解锁近实时高效查询体验
阿里云云原生大数据计算服务 MaxCompute 推出 MaxQA(原 MCQA2.0)查询加速功能,在独享的查询加速资源池的基础上,对管控链路、查询优化器、执行引擎、存储引擎以及缓存机制等多个环节进行全面优化,显著减少了查询响应时间,适用于 BI 场景、交互式分析以及近实时数仓等对延迟要求高且稳定的场景。现正式开启公测,公测期间可申请100CU(价值15000元)计算资源用于测试,欢迎广大开发者及企业用户参与,解锁高效查询体验!
阿里云 MaxCompute MaxQA 开启公测,公测可申请 100CU 计算资源解锁近实时高效查询体验
|
3月前
|
存储 分布式计算 安全
MaxCompute Bloomfilter index 在蚂蚁安全溯源场景大规模点查询的最佳实践
MaxCompute 在11月最新版本中全新上线了 Bloomfilter index 能力,针对大规模数据点查场景,支持更细粒度的数据裁剪,减少查询过程中不必要的数据扫描,从而提高整体的查询效率和性能。
|
4月前
|
负载均衡 大数据
大数据散列分区查询频率
大数据散列分区查询频率
35 5
|
4月前
|
存储 机器学习/深度学习 大数据
量子计算与大数据:处理海量信息的新方法
量子计算作为革命性的计算范式,凭借量子比特和量子门的独特优势,展现出在大数据处理中的巨大潜力。本文探讨了量子计算的基本原理、在大数据处理中的应用及面临的挑战与前景,展望了其在金融、医疗和物流等领域的广泛应用。
|
4月前
|
存储 大数据 数据管理
大数据分区提高查询性能
大数据分区提高查询性能
77 2
|
4月前
|
存储 负载均衡 大数据
大数据水平分区提高查询性能
【11月更文挑战第2天】
88 4
|
5月前
|
存储 机器学习/深度学习 大数据
量子计算与大数据:处理海量信息的新方法
【10月更文挑战第31天】量子计算凭借其独特的量子比特和量子门技术,为大数据处理带来了革命性的变革。相比传统计算机,量子计算在计算效率、存储容量及并行处理能力上具有显著优势,能有效应对信息爆炸带来的挑战。本文探讨了量子计算如何通过量子叠加和纠缠等原理,加速数据处理过程,提升计算效率,特别是在金融、医疗和物流等领域中的具体应用案例,同时也指出了量子计算目前面临的挑战及其未来的发展方向。
|
5月前
|
存储 JSON 监控
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
86 4
|
5月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
148 4

热门文章

最新文章