【云计算 复习】第5节 交互式分析工具Dremel(含大题)

一、概念

1.概述

(1)数据本身不会产生价值 只有经过分析才有可能产生价值。

(2)Google的Dremel是第一个在嵌套数据模型基础上实现列存储的系统

(3)列存储有其便利之处,因为在不同列中相同位置的数据必然属于原数据库中的同一行。

(4)Dremel和MapReduce并不是互相替代,而是相互补充的技术。在不同的应用场景下各有其用武之地。

2.用户希望提交完请求后,在一个相对可接受的合理时间内收到返回结果,mapreduce批处理效率太低。

MapReduce   ←→    Hadoop

Dremel       ←→    Apache Drill

3.两方面的技术支撑

(1)统一的存储平台实现高效的数据存储,Dremel使用的底层数据存 储平台是GFS

(2)统一的数据存储格式

4.数据结构的无损表示(重点)

首先明确标题头,那个一定精确到最末项,如Name.Language.Code。这里成name是首项,后面依次是二项,三项,除此之外最后那个项称它叫末项。

还有就是空值也要进行判断r和d,值那一栏要写null。

(1)重复深度r:只有在不同表的第一次出现该末项时是0,还有一种情况就是一直没有出现也是按0来算,例如r1表中background一直没出现,所以一直默认为0。

出现之后在该表,如果不是同一个项的下个项,例如Url,不是同一个name下的第一次出现,这统一都是1,要明确这个不是出现了几次的意思。

但是如language.code,同时出现在那么这个二项下,那第二个的code就要写2了,再次注意这个数字不是出现了几次,或者说第几个出现的意思。

你可以把他当做一种极致简单的代指,说这是一条狗,那是一只猫这样的。

(2)定义深度d:先简单的认为,如果只有一项,就是1。如果有两项,如name.url就是2,如果有三项,如name.language.country,就是3.

但是这只是最大值,如name.url,r1表的第三个name,没有存在url项,则此时视作为1,此时可以认为只有name这一项。

同时为什么name.language.code不是3而是2,请注意右上角的代码上写的code和docid是required,即类似key值的意思。所以不计入重复度。也因此可以知道docid是0不是1,也就是可重复度为0。code同理。

5.数据重组(重点)

(1)就是让上面的表2变成表1。

(2)核心思想是为每个字段创建一个有限状态机(FSM),所以题目也是这个。

(3)从一个方框到一个方框上的数是下一个节点的r,自循环上是d,

依次出现几个repeated就是几,例如name.url,虽然Name本身是,但是url只是个optional,所以自循环是0,不用写,但是links.backword,link是optional,但是backward这个末项是repeated,所以自循环是1,同理links.forward上应该也是1,但是没打印上。

这种一定要看清末项是不是repeated,不然容易乌龙。

(4)然后就是考试的时候,只会给你个函数,就是上面表1里面右上角的那个函数,不会给r1,r2表这些,所以你要盲推。

(5)盲推就是看函数是否有repeated这种值,有就要考虑这个可能不存在1项,可能会重复出现,然后把他对应r写上去,看懂repeated就要考虑重复一遍,然后再接着往下面走,直至把整个函数走完。

(6)有个大佬对优先状态机提供了更简单的思路,首先是自循环的箭头,是自己是否是repeated词条,如果只有自己是,就是1,如果上级还有则继续加,如果自己不是,就没有自循环。

然后就是指向下一个节点的箭头的数字,是看自己和下一个节点有几个共同的repeated,例如docid和links.backward没有相同的repeated,则为0,而code和country有两个相同的repeated,即name和language,所有写成0,1,2,country和url只有一个name,所以是0,1.

最后是为啥有的会拐回去,则是看是否有同一个上级且上级本身是不是repeated,比如code和country一级,所以写2,注意这里只写最大值,不用再写0,1,2了,而url则和language一级,所以返回箭头写1,为什么url不返回country节点,是因为,code和country本质上都是language节点,而language节点和url才是同级的。

不过实际情况则是按照r2表写成绿色表格一步步推得,这个这是做题技巧,不过很实用。

 其中红色我也不知道为什么跟一开始写的那些小表格里面的值为什么不一样,网上也都是这一个图,没有人对此进行分析,如果有知道的可以发在评论区,非常感谢,我个人感觉上面应该改为0,0,1,1,1。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值