云计算中的查询技术

云计算的到来主要产生立两个方面的技术:

1.      海量数据的分析

数据分析主要用于生产报表、数据挖掘和决策支持等;

分析型数据特点:一次写,多次读,更新少

2.      大规模web数据的管理

 

云数据查询技术解决的问题:

  1. 在云平台中保证一个云平台中所有节点的硬件配置同构是一件非常困难的,即使在一个硬件配置相同的环境中那个,不同节点的软件性能也会出现波动
  2.  通过增加节点来实现可扩展性
  3.  容错性
  4.  高效的数据存取性能(包括数据分布策略和查询优化的相关算法,从而提高其管理海量数据的能力)
  5.  目前来看云数据管理系统的查询优化主要是针对键值进行的,对于非键值的主要查询是依靠批量的全表扫描。
  6.  利用更少的计算资源来获得用户期望的查询性能

 

关于云数据管理系统的整体架构,大体上可分为5个层

  1.   用户接口层:负责接收用户提交的请求并交给处理层进行处理,提供查询语言接口、用户自定义接口、数据分析和在线聚类等
  2. 查询处理层:生成查询计划(进行查询语句的解析和逻辑优化后转换为操作符树),进而生mapreduce的执行计划
  3.  数据控制层:利用全局索引和元数据信息进行数据定位;备份数据的一致性处理和数据迁移;在线聚集过程中进行数据的采样和进程的估计(研究工作:查询处理优化、缩影构建、数据采样、查询结果估计) 数据存储层:负责数据的实际存储以及在个节点范围内数据的索引设计、缓冲区管理和日志管理服务管理模块:负责元数据的管理、操纵管理和系统监控

 

基于MapReduce的算法

  1.  标准分区算法:在shuffle过程中,将具有相同链接值得记录分区到同一个reduce上,针对每一个链接值,reducer根据标签把记录分成两个集合,然后计算两个集合元素的向量积来完成链接
  2. 改进后的重分区算法: 同样的是在shuffle过程中进行,但是map阶段的输出键值有链接的列值和表名的标签混合构成的,其次在内存中只缓存较小表的数据,而较大表的数据以数据流的方式读入内存。
  3. 广播算法:该算法将两个表中较小的一个以广播的形式传输到另一个表数据所在的节点上,然后在每个节点上进行连接。(注:广播算法在MAP阶段直接对数据进行hash连接,没有reduce操作)
  4.  半连接算法:半连接算法是基于广播算法的一种改进,目的在于减少广播过程中数据传输量。该算法由3个mapReduce作业构成。此算法虽然坚守了广播过程中的数据传输量,但是增加了对表的扫描时间。所以具体选择哪一种算法,需要结合连接表的大小和连接键的分布情况
  5.    分片半连接法:将半连接的粒度缩小到每个分片子表中同样由3个mapreduce构成。实际上用两个mapreduce任务就可以完成。
  6.  冗余重分区算法:通过一个二维矩阵表示两个表的笛卡尔积。根据reducer任务个数将整个二维矩阵分成r个大小均衡的区域每个reducer负责产生相应区域的连接结果,输入的数据等于区域矩形的周长的一般。(注:一个记录可能被定向到多个reducer任务区域中),次算法就是通过冗余重定向来实现非等值的连接。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值