第7章-数据仓库Hive.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 数据仓库Hive;;7.1.1 Hive简介;表7-1 ?Hive和传统关系型数据库的比较;7.1.2 Hive架构;(1)用户接口主要有三个:CLI,Client 和 WUI。 即Hive 对外提供了三种服务模式, Hive 命令行模式(CLI),Hive 的 Web 模式(WUI),Hive 的远程服务(Client),其中最常用的是Hive 命令行模式CLI,WUI是通过浏览器访问Hive。 (2)Hive将元数据存储在关系数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列及类型,存储空间,分区,表数据所在目录等。;(3)解释器、编译器、优化器完成HiveQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。 (4)Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapRedcue任务)。;2、连接数据库的三种模式 Hive将元数据存储在RDBMS中,有三种模式可以连接到数据库: (1)单用户模式。此模式连接到一个嵌入式数据库Derby,一般用于单元测试。;(2)多用户模式。通过网络连接到一个数据库中,是最经常使用到的模式,一般使用mysql存储hive元数据。如下图7-2所示。;(3) 远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。一般使用mysql存储hive元数据。如下图7-3所示。;7.1.3 Hive数据存储模型;(2)内部表 Hive的内部表与数据库中的表在概念上类似。每一个Table在Hive中都有一个相应的目录存储数据。例如一个表myhive,它在HDFS中的路径为/test/myhive,其中test是在hive-site.xml中由${hive.metastore.warehouse.dir} 指定的数据仓库的目录,所有的Table数据(不包括外部表)都保存在这个目录中。删除表时,元数据与数据都会被删除。 ;(2)内部表 内部表示例: 创建数据文件:myhive.txt 创建表:create table myhive(key string) 加载数据:LOAD DATA LOCAL INPATH ‘filepath’ INTO TABLE myhive 查看数据:select * from myhive select count(*) from myhive 删除表:drop table myhive;(3)外部表 外部表(External Table)指向已经在HDFS中存储的数据,可以创建分区。外部表只有一个过程,加载数据和创建表??时完成(CREATE EXTERNAL TABLE ……LOCATION),实际数据是存储在LOCATION后面指定的 HDFS 路径中,并不会移动到数据仓库目录中。当删除一个外部表时,仅删除该链接。;外部表示例: 创建数据文件:test_ext.txt 创建表:create external table test_ext (key string) 加载数据:LOAD DATA INPATH ‘filepath’ INTO TABLE test_ext 查看数据:select * from test_ext select count(*) from test_ext 删除表:drop table test_ext;(4)分区 分区(Partition)对应于数据库中的Partition列的密集索引,但是Hive中Partition的组织方式和数据库中的很不相同。在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中。;分区表示例: 创建数据文件:test_part.txt 创建表:create table test_part (key string) partitioned by (ds string) 加载数据:LOAD DATA INPATH ‘filepath’ INTO TABLE test_part partition (city=‘CA’) 查看数据:select * from test_part select count(*) from test_part 删除表:drop table test_part;(5)桶 桶(Buckets)是将表的列通过哈希(Hash)算法进一步分解

文档评论(0)

lookoudb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档