hive创建表语句详解

创建表的语句:

Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name

[(col_name data_type [COMMENT col_comment], ...)]

[COMMENT table_comment]

[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC],...)]INTO num_buckets BUCKETS]

[ROW FORMAT row_format]

[STORED AS file_format]

[LOCATION hdfs_path]

CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF
NOT EXIST 选项来忽略这个异常。

EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

如果文件数据是纯文本,可以使用 STORED
AS TEXTFILE。如果数据需要压缩,使用 STORED
AS SEQUENCE 。

有分区的表可以在创建的时候使用 PARTITIONED
BY 语句。一个表可以拥有一个或者多个分区,每一个分区单独存在一个目录下。而且,表和分区都可以对某个列进行 CLUSTERED
BY 操作,将若干个列放入一个桶(bucket)中。也可以利用SORT
BY 对数据进行排序。这样可以为特定应用提高性能。

创建普通的表:

create table test_table (

id int,

name string,

no int)

row formatdelimited

fieldsterminated by ‘,‘

stored astextfile;//指定了字段的分隔符,hive只支持单个字符的分隔符。hive默认的分隔符是\001

创建带有partition的表:

create table test_partition (

id int,

name string,

no int)

partitioned by(dt string)

row formatdelimited

fieldsterminated by ‘,‘

stored astextfile;

load data local inpath ‘/home/zhangxin/hive/test_hive.txt‘ overwrite intotabletest_partition partition (dt=‘2012-03-05‘);

创建带有Bucket的表:

create table test_bucket (

id int,

name string,

no int)

partitioned by(dt string)

clustered by(id) into 10 buckets --将id这一列分到10个桶中。

row formatdelimited

fieldsterminated by ‘,‘

stored astextfile;

关于分桶:对列进行分桶,本质上,在进行reduce的时候,会对列的值进行hash,然后将hash的值放到特定的桶中(有点像distribute
by)。

注意在写入分桶数据的时候,需要指定:

sethive.enforce.bucketing=true;

创建external表:

create external table test_external (

id int,

name string,

no int)

row formatdelimited

fieldsterminated by ‘,‘

location‘/home/zhangxin/hive/test_hive.txt‘;

创建与已知表相同结构的表Like:

只复制表的结构,而不复制表的内容。

create table test_like_table like test_bucket;

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

时间: 2024-08-29 09:13:26

hive创建表语句详解的相关文章

hive操作语句使用详解

#创建表人信息表  person(String name,int age) hive> create table person(name STRING,age INT)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' STORED AS TEXTFILE; OK Time taken: 0.541 seconds#创建表票价信息表 ticket(int age,float price) hive> create tab

大数据学习系列之五 ----- Hive整合HBase图文详解

引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环境,并进行了相应的测试.本文主要讲的是如何将Hive和HBase进行整合. Hive和HBase的通信意图 Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,其具体工作交由Hive的lib目录中的hive-hbase-handler-*.jar工具类来实现,通信原理如下图

创建物化视图详解(图解)

创建物化视图详解 一,什么是物化视图 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 二,作用. 在类似统计功能中,查询操作是无可避免,而这些查询操作如果很频繁,对整体数据库性能是很致命的.而物化视图实现远程数据源与本地数据的实时同步,也就是定时刷新,通过在本地创建物化视图可以大大提高查询效率. 三,流程图: 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库

Android研究之动态创建UI界面详解

 Android的基本UI界面一般都是在xml文件中定义好,然后通过activity的setContentView来显示在界面上,这是Android UI的最简单的构建方式.其实,为了实现更加复杂和更加灵活的UI界面,往往需要动态生成UI界面,甚至根据用户的点击或者配置,动态地改变UI,本文即介绍该技巧.对事件和进程的可能安卓设备实现触摸事件的监听,跨进程 假设Android工程的一个xml文件名为activity_main.xml,定义如下: 1 2 3 4 5 6 7 8 9 10 11

Hive安装与配置详解

既然是详解,那么我们就不能只知道怎么安装hive了,下面从hive的基本说起,如果你了解了,那么请直接移步安装与配置 hive是什么 hive安装和配置 hive的测试 hive 这里简单说明一下,好对大家配置hive有点帮助.hive是建立在hadoop上的,当然,你如果只搭建hive也没用什么错.说简单一点,hadoop中的mapreduce调用如果面向DBA的时候,那么问题也就显现了,因为不是每个DBA都能明白mapreduce的工作原理,如果为了管理数据而需要学习一门新的技术,从现实生活

VMware创建虚拟机教程详解及问题解决

关于VMware Workstation Pro虚拟机创建教程,本教程主要详细描述使用软件VMware Workstation Pro建虚拟系统过程中步骤详解,以及个人安装时所出现部分问题的解决方案. VMware Workstation 虚拟机是采用虚拟化技术的模拟器 一.操作环境描述 硬件:联想小新v4000笔记本 软件:VMware Workstation Pro 12版本 Centos 6.5.iso镜像 二.创建步骤 1.点击创建虚拟机,进入新建虚拟机创建向导 1) 典型:默认配置安装

Hive学习之三 《Hive的表的详解和应用案例详解》

一.Hive的表 Hive的表分为内部表.外部表和分区表. 1.内部表,为托管表. 2.外部表,external. 3.分区表. 详解: 内部表,删除表的时候,数据会跟着删除. 外部表,在删除表的时候,数据不会跟着删除. 默认分隔符:列 为 \001         行分隔符为 \n 分区表: 1.解决查询效率,不全表查询,只查对应的分区. 2.避免数据重复的问题,即数据质量方面安全. create table tablename ( 字段1 字段类型 , 字段2 字段类型 ) PARTITIO

在oracle数据库中创建表语句如何写?

表名:servicelogs字段名称 类型id int (主键,自增)servicetype varchar (100)outsys varchar (100)methodname varchar (100)methodresult varchar (200)errormessage varchar (900)inparameter varchar (900)returncontent varchar (900)logtime varchar (20) Oracle不能再建表语句中实现自增的,需

大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用介绍.本文主要讲解如何搭建Hadoop+Hive的环境. 一.环境准备 1,服务器选择 本地虚拟机 操作系统:linux CentOS 7 Cpu:2核 内存:2G 硬盘:40G 说明:因为使用阿里云服务器每次都要重新配置,而且还要考虑网络传输问题,于是自己在本地便搭建了一个虚拟机,方便文件的传输以