基于Hadoop的数据仓库工具讲解(3)

Hive的数据模型-分区表

创建分区是为了提高查询效率,在数据量非常大的时候一定要优先考虑分区,
partition 分区对应于数据库的 partition 列的密集索引
在 Hive 中,表中的一个 partition 分区对应于表下的一个目录,所有的 partition 数据都存储在对应的目录中

例如:test表中包含 date 和 city 两个 partition,
  则对应于date=20130201, city = bj 的 HDFS 子目录为:
 

/user/hive/warehouse/test/date=20130201/city=beijing

对应于date=20130202, city=sh 的HDFS 子目录为:

/user/hive /warehouse/test/date=20130202/city=shanghai

创建数据文件

beauty_ch.txt    beauty_uk.txt    beauty_us.txt

创建外部分区表:

create external table beauties(id bigint,name string,age double) partitioned by (nation string) row format delimited fields terminated by '\t' location '/data/beauty';

加载数据到分区

load data local inpath

'/var/lib/hadoop-hdfs/test/beauty_ch.txt' into table beauties partition (nation='China');

修改表分区

alter table beauties add partition (nation='UK') location '/data/beauty/nation=UK';

•  查看数据

select * from partition_table

select count(*) from partition_table

•  删除表

drop table partition_table

Hive的数据模型—桶表
桶表是对数据进行哈希取值,然后放到不同文件中存储。数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。
创建表

create table bucket_t1(id string) clustered by(id) into 6 buckets;

                     ------表里的数据根据ID分成了6桶

加载数据
 

create table t2(id string);

 

load data local inpath '/var/lib/hadoophdfs/test/bucket_test' into table t2;

 

insert overwrite table bucket_t1 select id from t2;


删除表时,元数据与数据都会被删除(对应目录和文件都会被删除)

drop table bucket_table;

桶表专门用于抽样查询,是很专业性的,不是日常用来存储数据的表,需要抽样查询时,才创建和使用桶表。

抽样查询:

select * from bucket_table tablesample(bucket 1 out of 4 on id);

八、Hive的JDBC/ODBC接口

用户可以像连接传统关系数据库一样使用JDBC或ODBC连接Hive

基于Hadoop的数据仓库工具讲解

JDBC的具体连接过程
1.使用jdbc的方式连接Hive,首先做的事情就是需要启劢hive的Thrift Server,否则连接hive的时候会报connection refused的错误。
启动命令如下:
    hive --service hiveserver
2.新建java项目,然后将hive/lib下的所有jar包和hadoop的核心jar包hadoop-0.20.2-core.jar添加到项目的类路径上。Jar包版本要和hive版本一致。

Hive编程指南 PDF 中文高清版 

基于Hadoop集群的Hive安装

Hive内表和外表的区别

Hadoop + Hive + Map +reduce 集群安装部署

Hive本地独立模式安装

Hive学习之WordCount单词统计

Hive运行架构及配置部署

Hive 2.1.1安装配置详解 

Hive安装及与HBase的整合   

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f657313ec2ece3197966de9cd15d647c.html