《海量处理与数据分析NoSQL数据库》由会员分享,可在线阅读,更多相关《海量处理与数据分析NoSQL数据库(32页珍藏版)》请在金锄头文库上搜索。
1、一种支持实时复杂查询和分 析的NoSQL系统题 纲n系统需求与现有方案n技术方案n应用案例系统需求概述n数据及系统特点n结构化:每条记录包含10个字段左右,每条记录的大小大约是几 百字节n数据量巨大:达到千亿级以上,达到PB级n加载速度快:达到百万条/s的规模n系统规模:可以扩展到上千个节点n对数据的访问需求n提供SQL访问接口n支持大规模结果集:达到千万条规模n支持按多列的实时查询(秒级)n支持多列之间的逻辑比较关系,例如AND、OR、NOT等n支持多列之间的的算术比较关系,例如=、节点第二层索引第二层索引第二层索引第三层索引第三层索引第三层索引全局的分布式 B+树Datanodeshard
2、shard DatanodeDatanode局部索引存储及I/O方式n列存储n每个Shard由一个或者多个Store File组成,每个store File保 存一个列nI/O并行n将数据分配到Data Node的多块磁盘上;n数据I/O时并行从多块磁盘访问;n实现多块磁盘IOPS和带宽的聚合。分布式查询流程查询条件Query PlanshardtoNodeList Bloom Filter结果集Master集群Datanode集群n分级、并行检索机制二级并发与汇总一级并发与汇总分布式查询流程nDatanode独立接收查询规划树n根据语法树叶节点的属性值检索局部索引n根据语法树内节点合并、过滤
3、规则,生成局部结果集结果集SELECT * FROM TABLE WHERE (DOMAIN=AND NOT VALUE =8.8.8.8)OR(DOMAIN = www.google.ak TO l)AND NOT DOMAIN=*;语法 解析分布式查询规划查询规划n投影与选择:,shardn :select DOMAIN,VALUEn:where DOMAIN=and TYPE=An在Datanode上,针对每个shard并发处执行n分组与排序:Order By,Group BYdatanode+clientn在Datanode上,第二级汇总处执行n在Client一级级处汇总多Datano
4、de结果,做最后的排序、分组n聚合函数clientn在Client第一级汇总处完成,汇总每个Datanode返回的结果集后, 进行分组与排序,执行具体的聚合函数,再运行排序与topk处理系统扩展性分析n存储规模分析n系统采用share-nothing结构,增加存储节点,可以增加 集群的计算能力并线性扩展存储空间n读写完全并行化数据节点1Region1Region2Regionk数据节点2Regionk+1Regionk+2Region2k数据节点nRegion(n-1)k+1Region(n-1)k+2Regionnk 读写读写系统扩展性分析n加载能力分析n在所有Datanode上加载数据,系
5、统加载效率可以线性 提升n检索效率分析n在二级并发处会线性提高检索效率n数据规模一定,在仅有选择,投影检索条件时,检索效率会随着存储节点的增加而线性增加系统可靠性分析n元数据管理集群化,防止单点失效问题n元数据信息存储在zookeeper集群和DataNode集群上,具备数据容 错功能,在线数据恢复,提供集群高可用服务nMaster点不存储元数据信息,可实现快速失效切换n引入commit-log,提供记录级别的原子操作n防止内存数据的掉电丢失n以记录为单位,提供前滚或回滚操作,保证记录写操作的原子性n引入副本容错机制n支持多副本n采用差量压缩技术,提高存储效率n无单点失效问题系统功能概述查询方
6、法n对外提供在线检索和离线检索两类查询方法n在线检索n通过SQL-LIKE语言描述检索规则,利用SHELL或API接口返回结果n可实时查询内存数据或历史数据n离线检索n用户定义查询任务,定时启动任务,结果导入离线数据分析库n在离线数据分析库中查询获得相对复杂、耗时的数据查询系统功能概述功能汇总(1)支持SQL语言的核心功能 支持多列查询、分组、排序、聚合等查询功能 提供必要的函数和数据类型定义 提供SHELL交互界面WebService接口(6)支持并发加载功能 采用带外传输机制写入数据到Datanode Datanode并发加载方式(2)支持分布式并发查询功能 支持二级并发机制:节点之间和shard之间 采用分布式查询规划(3)支持在线查询与定时复杂任务查询(5)支持副本容错功能,无单点失效影响(4)全局索引+局部索引的分布索引式机制 全局索引采用分布式B+Tree 局部建立了面向多个属性的索引 数据以shard为单位进行列存储题 纲n系统需求与现有方案n技术方案n应用案例数据模型2. shard数据结构VI:属性值 全排序索引RIDIndex:属性值 与记录I索引RI:记录索引RD:记录数据Datanode2Datanode2并发数据加载策略Master集群Datanode集群Datanode1Masternode1Masternode2谢谢 谢谢