《NoSQL权威指南》——2.3 查询优化
本节书摘来自异步社区出版社《NoSQL权威指南》一书中的第2章,第2.3节,作者:【美】Joe Celko(乔•塞科) ,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.3 查询优化
有些列式数据库使用基于行的优化器,抵消了列式存储很多的优势。它们在具体化“行”之前在查询执行时使用基于行的优化器进行优化处理(只组装查询的列,实际上是做选择和投影)。基于列的优化可以将选择和投影分为单独的操作,这是MapReduce算法的一个版本(这些算法稍后会加以解释)。
目标是在查找实际的数据值前,获取尽可能多的行数。如果你能并行地收集列会更好。很显然,因为列中的数据已经完成,映射将首先开始。但选择操作需要尽快执行。
请注意,我刚才提到来自一个域的列。大多数实际数据库中完成的联结是等值联结,这意味着在不同表中的列都是来自同一个域,并且匹配相同的值。特别是,PRIMARY KEY
及其引用FOREIGN KEY
都必须在同一个域中。PRIMARY KEY
列包含表的唯一值,而FOREIGN KEY
可能是一对多的。
我们可以在列描述符中添加表的名字,使之成为域描述符:{table_name, start_position, end_position, data_value}
。该载体可以是相当紧凑的,一个模式很少有200多万张可以用简单的整数进行建模的表。这种结构使某些连接操作转换为单域结构扫描。索引可以定位域描述符中的每个表的开始,并行访问相关的表。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《Flume日志收集与MapReduce模式》一3.2 文件通道
本节书摘来自华章出版社《Flume日志收集与MapReduce模式》一书中的第3章,第3.2节,作者 [美] 史蒂夫·霍夫曼(Steve Hoffman)斯里纳特·佩雷拉(Srinath Perera),更多章节内容可以访问云栖社区“华章计算机”公众号查看 3.2 文件通道 文件通道指的是将事件存储到代理本地文件系统中的通道。虽然要比内存通道慢一些,不过它却提供了持久化的存储路径,可以应对大多数情况,它应该用在数据流中不允许出现缺口的场合。这种持久化能力是由Write Ahead Log(WAL)以及一个或多个文件存储目录联合提供的。WAL用于以一种原子且安全的方式追踪来自于通道的所有输入与输出。通过这种方式,如果代理重启,那么WAL可以重放,从而确保在清理本地文件系统的数据存储前进入到通道中的所有事件都会被写出。此外,如果数据处理策
- 下一篇
《Flume日志收集与MapReduce模式》一3.3 小结
本节书摘来自华章出版社《Flume日志收集与MapReduce模式》一书中的第3章,第3.3节,作者 [美] 史蒂夫·霍夫曼(Steve Hoffman)斯里纳特·佩雷拉(Srinath Perera),更多章节内容可以访问云栖社区“华章计算机”公众号查看 3.3 小结 本章介绍了在数据处理管道中常用的两类通道。内存通道提供了更快的速度,这是以故障事件出现时数据丢失为代价的。此外,文件通道提供了更可靠的传输,因为它能容忍代理故障与重启,这是以牺牲性能为代价的。你需要确定哪种通道更适合于你的使用场景。在确定内存通道是否适合时,请问问自己丢失一些数据的经济上的代价如何。在考虑是否使用持久化通道时请衡量它与添加更多的硬件以弥补性能上的差异时的代价相比如何。另一个考虑就是数据问题了。写入到Hadoop中的数据不一定都来自于流式应用日志。如果接
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7设置SWAP分区,小内存服务器的救世主