作者:刘旭晖 Raymond 转载请注明出处

Email:colorant at 163.com

BLOG:http://blog.csdn.net/colorant/

更多论文阅读笔记 http://blog.csdn.net/colorant/article/details/8256145

阅读笔记 Dremel: Interactive Analysis ofWebScaleDatasets

关键字

列存储

== 目标问题 ==

在大规模的稀疏型结构化数据上的快速交互式Ad-hoc查询

== 核心思想 ==

首先Dremel面向用户提供了一个类SQL语法的查询语言,但更重要的是它对嵌套式的结构化数据的处理方式

  • 使用特定结构的Column Base的存储方案,用一个三元组表示一个数据单元,这个三元组包含了这个数据单元的值,以及它在嵌套的数据结构中的层级和重复级别。结合与数据表关联的Schema定义,可以高效的表达出该数据单元在整个数据结构中的实际存储情况,具体细节请参考论文相关章节。
  • 在这种存储方案下,结合巧妙的算法strip部分空数据,在数据稀疏的情况下

    • 能对数据采用更简单的压缩算法
    • 能减少实际存储的数据量
    • 针对Column结构优化的检索,在无需重构数据的前提下能够实现快速检索
    • 在只检索部分域的情况下,因为按需读取(同时巧妙的算法又能构建比全表扫描更简单的扫描流程),能大量减少所需读取的数据。

再有就是集群节点的工作模型

  • Serving Tree分层处理模型

    • 每个leaf节点只处理少量的数据,结果分层汇总到上级节点,较少的层级拓扑对于通常的大量输入/中少量输出的检索能有效处理,较多的层级拓扑则有利于处理大量输出的情况。

总体上,个人理解 Dremel能在特定场合比Row baseMapReduce模式的应用快的原因,根本上来至于数据IO量的减少,辅助以大量叶结点的分层汇总结构来最大化并发处理数据。

== 实现 ==

Query Plan的执行不转换成Map-Reduce任务,而是由Serving Tree模型自己处理。

在实现中,除了巧妙的算法实现Record和列式存储模型的快速转换外,还有各种优化,比如定义允许部分结果返回时就提前结束查询的Sample方式,牺牲适当的精度来换取速度等等

适用的场合应该是针对稀疏数据,对部分数据域进行ad-hoc类分析的场合

== 数据 ==

Paper测试的典型数据在20-100T之间,一行(也就是一个Record)包含的域在30-1200个左右,当所需查询处理域在个位数的时候,提升的速度在3-10倍之间,基本上相当于所需读取数据量的比值除2的样子(比如相比完整的Row存储结构,读1/10的域,所花时间是1/5

当所需处理的域增加到一定程度后,Row baseMR应用的速度则会反超(按Paper的说法,取决于具体的表的结构和稀疏程度,通常在几十个(Dozens of)域(field)的情况下,速度对比会翻转)

== 相关研究,项目等 ==

Apache Drill : http://incubator.apache.org/drill/ Dremel的开源实现版本,看起来还仅仅处于起步阶段,计划了很多功能,但是实现的并不多, 目前大概核心的代码大概只有 2K行左右的JAVA code

Open Dremel : 合并到Drill项目了

论文阅读笔记- Dremel相关推荐

  1. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

  2. DnCNN论文阅读笔记【MATLAB】

    DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...

  3. Learning Multiview 3D point Cloud Registration论文阅读笔记

    Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...

  4. FCGF论文阅读笔记

    FCGF论文阅读笔记 0. Abstract 从三维点云或者扫描帧中提取出几何特征是许多任务例如配准,场景重建等的第一步.现有的领先的方法都是将low-level的特征作为输入,或者在有限的感受野上提 ...

  5. PointConv论文阅读笔记

    PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...

  6. DCP(Deep Closest Point)论文阅读笔记以及详析

    DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...

  7. 2019 sample-free(样本不平衡)目标检测论文阅读笔记

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...

  8. keras cnn注意力机制_2019 SSA-CNN(自注意力机制)目标检测算法论文阅读笔记

    背景 <SSA-CNN Semantic Self-Attention CNN for Pedestrian Detection>是2019 的工作,其作者来自于南洋理工.这篇文章主要是做 ...

  9. ResNet 论文阅读笔记

    ResNet 论文阅读笔记 #机器学习/深度学习 文章介绍 论文地址:https://arxiv.org/pdf/1512.03385.pdf 原文题目:Deep Residual Learning ...

最新文章

  1. 【Zookeeper】Zookeeper一致性协议——ZAB
  2. python 爬取贝壳网小区名称_利用python爬取贝壳网租房信息
  3. Linux确定命令的执行时长,Linux 历史命令显示执行时间
  4. 2016年ICT产业趋势预测
  5. java参数注解pam_java – 使用xmlelement defaultvalue注释指定默认值的简单方法
  6. Activiti 流程启动及节点流转源代码分析
  7. Postfix 邮件服务 - 基础服务
  8. iOS10权限设置问题以及xcdoe8更新细节问题
  9. POJ - 3041 Asteroids(最小点覆盖-二分图最大匹配)
  10. java有趣的技术分享ppt_技术分享 | 关于 MySQL Online DDL 有趣的验证
  11. 给谷歌浏览器安装vue调试工具:vue-devtools
  12. WPR-007:WPF中窗体的透明设置
  13. 微服务+异步工作流+ Serverless,Netflix 决定弃用稳定运行 7 年的旧平台
  14. perl hash array 嵌套 push
  15. ajax 用户验证js,js ajax验证用户名
  16. 3.7V升5V升压芯片
  17. sprintf函数用法注意事项
  18. 交管12123显示当前环境存在风险_手机刷入ROOT权限后交管12123等银行APP打不开怎么解决...
  19. BCH的51攻击与防守
  20. 三角函数中和差角公式的编辑方法

热门文章

  1. 微服务架构深度解析与最佳实践
  2. 辛普森复合求积公式matlab,MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等).doc...
  3. 计算机专业课考研都有哪些,计算机专业考研的课程有哪些
  4. 时间同步,自动驾驶里的花好月圆
  5. 华为交换机配置时区_华为交换机配置NTP实现时间自动同步
  6. Fragment 可见性监听方案 - 完美兼容多种 case
  7. matlab偏最小二乘截距,matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR)
  8. 以下关于python二维数据的描述中错误的是_关于二维数据CSV存储问题,以下选项中描述错误的是‪‪‪‪‪‪‫‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‫:...
  9. 朋也bbs开源学习(一)
  10. Django富文本编辑——Ckeditor的配置、使用和踩坑(应该全)