- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第三篇非关系数据库HBaseHadoop技术原理与案例教程HadoopTechnicalPrinciplesPractices主编:韩玉民郭丽副主编:王尧张文宁张炎峰缑西梅
第12章Hbase原理与架构第三篇非关系数据库HBase
学习目标(1)掌握列数据库原理。(2)掌握HBase的架构原理。
12.1HBase数据格式HBase是典型的NoSQL数据库,NoSQL数据库一般分为文档数据库和列数据库两种,HBase属于列数据库。那么,为什么HBase要实现为列数据库?
Mysql在大数据时代出现的问题显然,在所有数据的保存方式中,纯文本文件的方式是最简答的。我们的所有问题从我们拿到了一份记录学生名单的文本文件开始:
Mysql在大数据时代出现的问题在学生工作中,我们常常会遇到一些统计上的任务,比如计算学生男生多还是女生多,或者计算籍贯一样的学生是否都在一个宿舍等等。为了便于做这些事,常见的做法是把数据保存在excel中进行数据分析。但对于工程师来说,显然我们需要更强大的工具,因此我们可以将这些数据保存进Mysql这一关系型数据库中,并通过SQL语句或编程语言的API进行数据分析。
Mysql在大数据时代出现的问题加载完毕后可以把这些数据打印一下:这个表的结构如图所示:
Mysql在大数据时代出现的问题Mysql是典型的行式存储数据库,这样的数据库有个特点,即查询某个特定值——如王五同学的生日——会需要一行一行扫描整个表的数据,直到找到姓名是王五的这一行,显然这样很慢。那我们不能直接定位这一行数据吗?或者说,如果一行长度是l,你用n*l作为偏移量不就可以了?这里大家忽略了一个问题:文件中真的存在行吗?典型的如Mysql在硬盘中实际的保存方式可能是下图这样的:
Mysql在大数据时代出现的问题小数据量的时候,全表扫描还好,如果数据量非常大的话呢?在大数据场景下,经常遇到数据有缺失的情况,我们考虑一个有1亿用户的购物网站,假如网站上一共有3000W种商品,如果我们需要存储用户的购买行为供后续分析,应该怎么存?
Mysql在大数据时代出现的问题显然,用户在网站上购买的商品总是远远小于网站的总商品数量,因此上面的用户-商品购买矩阵是极其稀疏的。另一个问题是这个矩阵行很大,列也很大,以行或列的方式建Mysql的表显然不合适。不妨将其展开成两列,第一列存用户名,第二列以字符串组合的方式存商品名,这就成了用户的购买表,如图:
Mysql在大数据时代出现的问题那我们直接把用户购买表保存到Mysql是不是就万事大吉了?这样做有三个问题:查询不便:如果要查询哪些用户之前购买了product1,以前可以对product1建索引,现在只能全表进行文字匹配存储不便:使用varchar还是char?无SQL性:因查询不便导致的问题,对于折中存储的稀疏数据,无法适应SQL语句的查询
思路1:不再要求数据列之间有位置关系变为:姓名:{1:张三,2:李四}性别:{1:男,2:男}生日:{1:2003-04-06,2:2003-10-11}籍贯:{1:开封,2:安阳}宿舍:{1:1#101,2:1#101}1张三男2000/1/1开封1#1012李四男2000/1/1安阳1#1013王五男2000/1/1洛阳1#1024赵六男2000/1/1三门峡1#1025孙七女2000/1/1商丘2#1016周八女2000/1/1周口2#1017吴九女2000/1/1南阳2#1028郑十女2000/1/1驻马店2#103
思路2:将复杂性内敛到一行,另外处理行复杂性变为:1张三男2000/1/1开封1#1012李四男2000/1/1安阳1#1013王五男2000/1/1洛阳1#1024赵六男2000/1/1三门峡1#1025孙七女2000/1/1商丘2#1016周八女2000/1/1周口2#1017吴九女2000/1/1南阳2#1028郑十女2000/1/1驻马店2#103/*1*/{_id:1,姓名:张三,性别:男,生日:2003-04-06,籍贯:开封,宿舍:1#101}/*2*/{_id:2,姓名:李四,性别:男,生日:2003-10-11,籍贯:安阳,宿舍:1#101}
两种思路对比对稀疏矩阵友好型:第一种更好数据复杂查询的理论性能:第一种更好数据修改方便性:第二种更好思路一:列数据库思路二:文件数据库(键值数据库、图数据库)1-姓名:张三,性别:男,生日:2020/1/1,籍贯:开封,宿舍:1#101{_id:1,姓名:张三,性别:男
您可能关注的文档
- 第1章 大数据基础-2023-8-16.ppt
- 第3章 Hadoop分布式存储系统.pptx
- 第4章 Hadoop分布式计算系统.pptx
- 第5章 Hadoop资源管理器Yarn.pptx
- 第6章 Hadoop案例开发.pptx
- 第7章 Hive原理与应用-12-16.pptx
- 第8章 Hive的数据定义.pptx
- 第2章 Hadoop简介-Hadoop技术原理与案例.pptx
- 第9章 Hive的数据分析.pptx
- 第10章 Hive数据分析案例.pptx
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
- 大学计算机网络教授老刘 + 关注
-
实名认证服务提供商
教师资格证、中级网络工程师持证人
专注于计算机技术相关文章撰写,方案设计,方案实现等,方案的个性定制,修改,润色等,本人已有8年相关工作经验,具有扎实的文案功底
文档评论(0)