Hive 数据模型

 Hive 数据模型


Hive 数据表有五种类型:内部表,外部表,分区表,桶表,视图表,默认以 tab 分隔

* MySQL (Oracle) 表默认以逗号分隔,因此,要想导入 MySQL(Oracle) 数据,需要设置分隔符,在建表语句后加:

row  format   delimited   fields   terminated  by  ',';

内部表: 相当于 MySQL 中的表,将数据保存到Hive 自己的数据仓库目录中:/usr/hive/warehouse

例子:

create table emp

(empno int,

ename string,

job string,

mgr int,

hiredate string,

sal int,

comm int,

deptno int

);

导入数据到表中:本地、HDFS

load语句、insert语句

load语句相当于ctrl+X

load data inpath '/scott/emp.csv' into table emp;   ----> 导入HDFS

load data local inpath '/root/temp/***' into table emp;   ----> 导入本地文件

创建表,并且指定分隔符

create table emp1

(empno int,

ename string,

job string,

mgr int,

hiredate string,

sal int,

comm int,

deptno int

)row format delimited fields terminated by ',';

创建部门表,保存部门数据

create table dept

(deptno int,

dname string,

loc string

)row format delimited fields terminated by ',';

load data inpath '/scott/dept.csv' into table dept;

外部表:相对于内部表,数据不在自己的数据仓库中,只保存数据的元信息

例子:

(*)实验的数据

[[email protected] ~]# hdfs dfs -cat /students/student01.txt

1,Tom,23

2,Mary,24

[[email protected] ~]# hdfs dfs -cat /students/student02.txt

3,Mike,26

(*)定义:(1)表结构  (2)指向的路径

create external table students_ext

(sid int,sname string,age int)

row format delimited fields terminated by ','

location '/students';

分区表:将数据按照设定的条件分开存储,提高查询效率,分区----->  目录

例子:

(*)根据员工的部门号建立分区

create table emp_part

(empno int,

ename string,

job string,

mgr int,

hiredate string,

sal int,

comm int

)partitioned by (deptno int)

row format delimited fields terminated by ',';

往分区表中导入数据:指明分区

insert into table emp_part partition(deptno=10) select empno,ename,job,mgr,hiredate,sal,comm from emp1 where deptno=10;

insert into table emp_part partition(deptno=20) select empno,ename,job,mgr,hiredate,sal,comm from emp1 where deptno=20;

insert into table emp_part partition(deptno=30) select empno,ename,job,mgr,hiredate,sal,comm from emp1 where deptno=30;

桶  表: 本质上也是一种分区表,类似 hash 分区   桶 ----> 文件

例子:

创建一个桶表,按照员工的职位job分桶

create table emp_bucket

(empno int,

ename string,

job string,

mgr int,

hiredate string,

sal int,

comm int,

deptno int

)clustered by (job) into 4 buckets

row format delimited fields terminated by ',';

使用桶表,需要打开一个开关

set hive.enforce.bucketing=true;

使用子查询插入数据

insert into emp_bucket select * from emp1;

视图表:视图表是一个虚表,不存储数据,用来简化复杂的查询

例子:

查询部门名称、员工的姓名

create view myview

as

select dept.dname,emp1.ename

from emp1,dept

where emp1.deptno=dept.deptno;

select * from myview;

原文地址:http://blog.51cto.com/songqinglong/2058475

时间: 2024-11-01 21:10:00

Hive 数据模型的相关文章

Hive数据模型之历史拉链表

http://lxw1234.com/archives/2015/04/20.htm http://lxw1234.com/archives/2015/08/473.htm 原文地址:https://www.cnblogs.com/zbw1112/p/12100920.html

hive初探2_数据模型

1.hive数据类型: 基本数据类型:tinyint.smallint.int.bigint.float.double.boolean.string 复合数据类型: array:一段有序字段,字段的类型必须相同 map:一组无序的健/值对,健的类型必须是原子类型 struct:一组命名的字段,类型可以不同 复杂数据类型用法如下: Create table complex( col1 ARRAY<INT>, Col2 MAP<STRING,INT>, Col3 STRUCT<a

Hive的数据模型及各模块的应用场景

Hive的数据模型 Hive数据模型.png 数据模型组成及应用场景 Hive的数据模型主要有:database.table.partition.bucket四部分: 数据模型之database database:相当于关系型数据库中的命名空间,作用是将数据库应用隔离到不同的数据库模式中,hive提供了create database dbname.use dbname 以及drop database dbname的语句: 数据模型之table table:表是由存储的数据以及描述表的一些元数据组

Hive介绍、安装(转)

1.Hive介绍 1.1 Hive介绍 Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据.它是Facebook 2008年8月开源的一个数据仓库框架,提供了类似于SQL语法的HQL语句作为数据访问接口,Hive有如下优缺点: l  优点: 1.Hive 使用类SQL 查询语法, 最大限度的实现了和SQL标准的兼容,大大降低了传统数据分析人员学习的曲线: 2.使用JDBC 接口/ODBC接口,开发人员更易开发应用: 3.以MR 作为计算引擎.HDFS 作为存储系统,为

Spark入门实战系列--5.Hive(上)--Hive介绍及部署

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.Hive介绍 1.1 Hive介绍 Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据.它是Facebook 2008年8月开源的一个数据仓库框架,提供了类似于SQL语法的HQL语句作为数据访问接口,Hive有如下优缺点: l  优点: 1.Hive 使用类SQL 查询语法, 最大限度的实现了和SQL标准的兼容,大大降低了传统数据分析人员学习的曲线: 2.使用JDBC

Apache Hive

1. Hive 简介1.1. 什么是HiveHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能.本质是将SQL转换为MapReduce程序.主要用途:用来做离线数据分析,比直接用MapReduce开发效率更高.1.2. 为什么使用Hive直接使用Hadoop MapReduce处理数据所面临的问题:人员学习成本太高MapReduce实现复杂查询逻辑开发难度太大使用Hive :操作接口采用类SQL语法,提供快速开发的能力避免了去写MapR

初始Hive

Hive 背景 引入原因 对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一推MapReduce代码 对于统计任务,只能由懂MapReduce的程序员才能搞定 耗时耗力,更多精力没有有效的释放出来 Hive基于一个统一的查询分析层,通过SQL语句的方式对HDFS上的数据进行查询.统计和分析 Hive是什么 HIve是一个SQL解析引擎,将SQL语句转译成MR Job,然后在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,只是表的定义等,既表的元数据,本质就是H

关于举办大数据处理技术培训的通知

各有关单位: 中国科学院计算技术研究所是国家专门的计算技术研究机构,同时也是中国信息化建设的重要支撑单位,中科院计算所培训中心是致力于高端IT类人才培养及企业内训的专业培训机构.中心凭借科学院的强大师资力量,在总结多年大型软件开发和组织经验的基础上,自主研发出一整套课程体系,其目的是希望能够切实帮助中国软件企业培养高级软件技术人才,提升整体研发能力,迄今为止已先后为国家培养了数万名计算机专业人员,并先后为数千家大型国内外企业进行过专门的定制培训服务. 随着互联网.移动互联网和物联网的发展,我们已

Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型

Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', '列名称1','列名称2','列名称N' 添加记录 put '表名称', '行名称', '列名称:', '值' 查看记录 get '表名称', '行名称' 查看表中的记录总数 count  '表名称' 删除记录 delete  '表名' ,'行名称' , '列名称' 删除一张表 先要屏蔽该表,才能对