Dremel
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dremel数据模型
数据模型的数学严格表示
t=dom|<A
Dremel中的实际存储
R (Repetition Level) 作用:记录该列的值是在哪一个级别上重复的 例子:以nguage.Code为例 <实例图> 单纯使用R的问题:NULL是否是“想象”出来 的无法判断。
D (Definition Level )
作用:定义的深度,用来记录该列是否是” 想象”出来的。所以对于非NULL的记录,是 没有意义的,其值必然为相同。
例子
数据读写
FSM的状态迁移的公式:FSM(f,l)->n
数据读写
Dremel查询方式
举例
请求: SELECT A, COUNT(B) FROM T GROUP BY A 根节点收到请求,会根据数据的分区请求,将请求变成可以拆分的样子 SELECT A, SUM(c) FROM (R1 UNION ALL ... Rn) GROUP BY A 然后再将请求切分,发送到每个分区的叶子Server上面去,对于每个 Server ?Ri = SELECT A, COUNT(B) AS c FROM Ti GROUP BY A
Dremel简介
Dremel: 是Google 的“交互式”数据分析系 统。可以组建成规模上千的集群,处理PB级别的数 据。上层使用分布式搜索引擎的Server Tree,下层 使用列式存储结合并行数据库理论。 缺点:(1)不支持修改,只读的 (2)没有表索引
开源产品:
• Apache —— Drill • Cloudera —— Impala
Dremel原理探究
杭州-小凯
序言
引用资料: • Google公开的论文《Dremel: Interactive Analysis of WebScaleDatasets》
• Google工程师陈利人的文章《 Google Dremel 原理 - 如何能3秒分析1PB 》 • 博文《全面认识Dremel》
Dremel特点
• • • • • 一个大规模系统 MR交互式查询能力不足的补充 其中的数据是用列式存储的 数据模型是嵌套的(nested) 结合Web搜索和并行RDBMS技术
Dremel的列式存储
优势: 1.只扫描需要的数据 2.压缩友好
RDBMS不采用列式的理由
1、首先对于传统数据库来讲都是面向记录存 储的,这样的存储方式能够更好的进行访问 控制和数据管理。 2、面向记录的存储几乎不需要对源数据进行 加工就可以存入存储介质,面向列存的则需 要进行数据的解构。 3、用户最终需要的不是一个又一个属性列而 是一条完整的记录,所以面向列存的查询一 般都会涉及数据的重构。
查询调度器
Dremel是一个多用户的系统。切割分配任务 的时候,还需要考虑用户优先级和负载均衡。 这个由Query Dispacher来完成。
Thanks