“神秘”的r和d单从数据结构来看的话,我们可以这样解释r和d的含义。r代表着当前字段与前一字段的关系,是在哪一层合并的,即公共的父结点在哪?举例来说,假如我们重建到了Code='en',通过r=2可以知道是在Language那一层发生了重复。为了保持原纪录的结构,我们会保存一些NULL数据,而d就是用于重建NULL字段。通过d的值,就能知道NULL的结构。例如下图,通过r=1知道应该合并到Name...
分类:
其他好文 时间:
2014-12-06 19:33:59
阅读次数:
252
为了优化MapReduce及MR之前的各种工具的性能,在Hadoop内建的数据存储格式外,又涌现了一批各种各样的存储方式。如优化Hive性能的RCFile,以及配合Impala实现出Google Dremel功能(类似甚至是功能的超集)的Parquet等。今天就来一起学习一下HDFS中数据存储的进化历程。数据摆放结构数据摆放结构(data placement structure),顾名思义,就是数...
分类:
其他好文 时间:
2014-12-06 19:32:48
阅读次数:
620
首先简单介绍一下Dremel是什么,能解决什么问题。第二部分着重讲Dremel的数据模型,即数据结构。第三部分将谈一下在此数据结构上设计的算法。1 起源Dremel的数据模型起源于分布式系统的应用环境(Protocol Buffers,一种在Google内广泛使用,现已开源的实现)。其数据模型是基于强类型的嵌套记录,抽象语法可以表示成下面公式:一个例子:2 嵌套列式存储2.1 记录结构的无损表示首...
分类:
其他好文 时间:
2014-11-30 23:27:45
阅读次数:
1374
为了理解Dremel论文中给出的案例,笔者觉得对定义级别和重复级别这两个概念进行注释加强理解是有必要的,具体可以看Dremel那篇论文的图2和图3。
柱状数据的嵌套模式:
论文使用了以下的模型:
message Document {
required int64 DocId;
optional group Links {
...
分类:
其他好文 时间:
2014-08-11 15:07:02
阅读次数:
328
1. Impala架构 Impala是Cloudera在受到Google的Dremel启示下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coord...
分类:
其他好文 时间:
2014-08-09 15:39:48
阅读次数:
451
Dremel是一个具有可扩展性和交互性,专用于分析只读嵌套数据的查询系统。它本身对多级操作数和柱状数据布局的融合使它得以在秒级的反应时间内对有万亿数量级行记录的表进行集成语句查询。这个系统在谷歌包含数以千计的CPU和PT级的数据量,并有着上千名使用者。这篇论文将会介绍Dremel的体系结构以及其实现,并阐述它如何实现基于MapReduce的计算。本文将呈现一种全新的嵌套式数据柱状存储方式并通过一个基于几千节点的样例系统实验分析性能。...
分类:
Web程序 时间:
2014-08-08 16:18:16
阅读次数:
337
1. Impala架构
Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS...
分类:
其他好文 时间:
2014-06-16 14:42:11
阅读次数:
251