第十二周作业
来源:互联网 发布:linux 网络连接日志 编辑:程序博客网 时间:2024/04/28 23:02
1书面作业1:举例子说明HBase相对简单
1.1 书面作业题目1
请举出一例子,使用关系型数据库较难进行数据建模,而采用HBase则相对简单
1.2 回答
HBase的应用场景
l 存储大量的数据(100s TB级数据)
l 需要很高的写吞吐量
l 在大规模数据集中进行很好性能的随机访问(按列)
l 需要进行优雅的数据扩展
l 结构化和半结构化的数据
l 不需要全部的关系数据库特性,例如交叉列、交叉表、事务、连接等等
相关例子
l 淘宝的交易历史记录。数据量巨大无容置疑,面向普通用户的请求需即时响应;捕获增量数据、网络爬虫、广告效果和点击流等等。
l 动态扩展系统容量,例如:webPage DB。
2书面作业2:设计HBase存储站内短信
2.1 书面作业题目2
用HBase存储社交网站站内短信信息,要求记录发送者、接受者、时间、内容,有关的查询是发送者可以列出他所有(或按时间段)发出的信息列表(按时间降序排列),接收者可以列出他所有(或按时间段)收到的信息列表(按时间降序排列)。请进行数据建模。
2.2 回答
两种方法:
方法一:建两个表,发送者表,接收者表
表1:发送者表:
行键:发送者id
列族和列:接收者,短信内容,时间戳(系统自动生成)
表2:接收者表:
行键:接收者id
列族和列:发送者,短信内容,时间戳(系统自动生成)
(1)查询是发送者可以列出他所有(或按时间段)发出的信息列表,通过在发送者表查询。
(2)查询是接收者可以列出他所有(或按时间段)收到的信息列表(按时间降序排列),通过接受者表查询,结合时间戳。
方法二:建一个表,使用复合行键
通过使用标识、发送者id、接收者id做成复合行健,其中:标识用来区分发送还是接收,标识0为发送,标识1为接收,
l 当标识为0是,表示发送,复合行健为:标识-发送者id-接收者id。
l 当标识为1是,表示接收,复合行健为:标识-接收者id- 发送者id。
这样设计的目的是方便使用hbase的范围查询功能,列族和列:短信内容,时间戳(系统自动生成)
(1)查询是发送者可以列出他所有(或按时间段)发出的信息列表,通过使用范围查询,查询“0-发送者id-%”的复合行健。
(2)查询是接收者可以列出他所有(或按时间段)收到的信息列表(按时间降序排列),查询“1-接收者id-%”的复合行健,并结合时间戳。
- 第十二周作业 1
- 第十二周作业 2
- 第十二周作业一
- 第十二周作业2
- 第十二周作业二
- 第十二周作业3
- 第十二周作业1
- 第十二周作业2
- 第十二周作业4
- 第十二周作业3
- 第十二周C++作业
- 第十二周作业
- 第十二周作业
- 第十二周作业
- 第十二周作业
- 第十二周作业报告
- 第十二周作业
- 第十二周java作业
- Mac版R语言(五)使用正则表达式(Regular Expressions)提取数据信息
- GitHub进阶笔记1--Github常用命令
- Maven使用心得
- 实现AJAX跨域的三种方法
- CMD命令---切换目录
- 第十二周作业
- 求两个数组的交集
- Arithmetic Slices
- 设计模式 — 生成器模式 (Builder)
- Java基础
- 模仿百度贴吧的网站
- 聊天工具输入法控件
- JavaFX 8 下简化自定义控件的外部调用以及流式布局示例
- 451. Sort Characters By Frequency