`
cumtheima
  • 浏览: 253501 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hive学习总结(9)—数据库创建、表创建、加载数据

    博客分类:
  • Hive
阅读更多

--创建数据库

create database if not exists sopdm

comment ‘this is test database’

with dbproperties(‘creator’=’gxw’,’date’=’2014-11-12’)     --数据库键值对属性信息

location ‘/my/preferred/directory’;

 

 

--查看数据库的描述信息和文件目录位置路径信息

describe database sopdm;

--查看数据库的描述信息和文件目录位置路径信息(加上数据库键值对的属性信息)

describe database extended sopdm;

 

--删除数据库

drop database if exists sopdm;

--级联删除数据库(当数据库还有表时,级联删除表后在删除数据库),默认是restrict

drop database if exists sopdm cascade;

 

--修改数据库

--只能修改数据库的键值对属性值。数据库名和数据库所在的目录位置不能修改

alter database sopdm set dmproperties(‘edited-by’=’gaoxianwei’);

 

--创建表

--其中tblproperties作用:按照键值对的格式为表增加额外的文档说明,也可用来表示数据库连接的必要的元数据信息

--hive会自动增加二个表属性:last_modified_by(最后修改表的用户名)last_modified_time(最后一次修改的时间)

create table if not exists sopdm.test1(name string comment ‘姓名’,salary float comment ‘薪水’)

comment ‘这是一个测试的表

tblproperties(‘creator’=’me’,’created_at’=’2014-11-13 09:50:33’)

location ‘/user/hive/warehouse/sopdm.db/test1’

 

--查看和列举表的tblproperties属性信息

show tblproperties table_name;

 

 

--使用like在创建表的时候,拷贝表模式(而无需拷贝数据)

create table if not exists sopdm.test2 like sopdm.test1;

 

 

--查看表的详细结构信息(也可以显示表是管理表,还是外部表。还有分区信息)

describe extended sopdm.test1;

--使用formatted信息更多些,可读性更强

describe formatted sopdm.test1;

 

 

--创建外部表

--删除表时,表的元数据会被删除掉,但是数据不会被删除

--如果数据被多个工具(如pig等)共享,可以创建外部表

create external table if not exists sopdm.test1(

name string comment ‘姓名’,

salary float comment ‘薪水’)

comment ‘这是一个测试的表

tblproperties(‘creator’=’me’,’created_at’=’2014-11-13 09:50:33’)

location ‘/user/hive/warehouse/sopdm.db/test1’

 

 

--分区表

create table if not exists sopdm.test1(

name string comment ‘姓名’,

salary float comment ‘薪水’)

comment ‘这是一个测试的表

partitioned by(country string,state string)

STORED AS rcfile

tblproperties(‘creator’=’me’,’created_at’=’2014-11-13 09:50:33’)

location ‘/user/hive/warehouse/sopdm.db/test1’

 

 

--查看表中存在的所有分区

show partitions table_name;

--查看表中特定分区

show partitions table_name partition(country=’US’);

 

 

--可以在表载入数据的时候创建分区

load data local inpath ‘${env:HOME/employees}’

into table employees

partition(country=’US’,state=’CA’);

 

 

--删除表

drop table if exists table_name;

 

 

--修改表-表重命名

alter table old_table_name rename to new_table_name;

 

--增加分区

alter table table_name add if not exists partition(year=2011,month=1,day=1)

location ‘/logs/2011/01/01’;

 

--修改分区存储路径

alter table table_name partition(year=2011,month=1,day=2)

set location ‘/logs/2011/01/02’;

 

--删除某个分区

alter table table_name drop if exists partition(year=2011,month=1,day=2);

 

--修改列信息

alter table table_name

change column old_name new_name int

comment ‘this is comment’

after severity;         --字段移到severity字段之后(移动到第一个位置,使用first关键字)

 

--增加列

alter table table_name add columns(app_name string comment ‘application name’);

 

--删除或者替换列

alter table table_name replace columns(hms int comment ‘hhh’);

 

--修改表属性

alter table table_name set tblproperties(‘notes’=’this is a notes’);

 

--修改存储属性

alter table table_name partition(year=2011,month=1,day=1) set fileformat sequencefile;

 

--指定新的SerDe,并指定SerDe属性

alter table table_name

set serde “com.example.JSONSerDe”

with serdeproperties(‘prop1’=‘value1’, ‘prop2’=‘value2’);

 

--增加执行钩子”——当表中存储的文在hive之外被修改了,就会触发钩子的执行

alter table table_name touch partition(year=2012,month=1,day=1);

 

--将分区内的文件打成hadoop压缩包文件,只会降低文件系统中的文件数,减轻NameNode的压力,而不会减少任何的存储空间

--使用unarchive替换archive起到反向操作

alter table table_name archive partition(year=2012,month=1,day=1);

 

--防止分区被删除和被查询(使用enable替代disable可以起到反向的操作目的)

alter table table_name partition(year=2012,month=1,day=1) disable no_drop;

alter table table_name partition(year=2012,month=1,day=1) disable offline;

 

 

--向管理表中装载数据

-- inpath为一个目录,而且这个路径下不可以包含任何文件夹

load data local inpath ‘${env:HOME}/table_name’

overwrite into table table_name

partition(country=’US’);

 

 

--通过查询语句向表中插入数据

--overwrite是覆盖,into是追加

insert overwrite table table_name

partition(country=’US’)

select * from table_name2 tn where tn.cnty=’US’

 

 

--高效方式-查询语句插入多个分区

from table_name2 tn

insert overwrite table table_name

partition(country=’US’,state=’OR’)

         select * where tn.cnty=’US’ and tn.st=’OR’

insert overwrite table table_name

partition(country=’US’,state=’CA’)

         select * where tn.cnty=’US’ and tn.st=’CA’

 

 

--动态插入分区

--hive根据select语句最后2列确定分区字段countrystate的值(根据位置

insert overwrite table table_name

partition(country,state)

select …,se.cnty,se.st

from employees se;

 

--动态和静态分区结合

--country为静态分区,state为动态分区(静态分区必须在动态分区之前)

insert overwrite table table_name

partition(country=‘US’,state)

select …,se.cnty,se.st

from employees se

where se.cnty=’US’;

 

 

--单个查询语句中创建表并加载数据

create table table_name1

as select name,salary,address from table_name2 where state=’CA’;

 

 

--导出数据——拷贝文件

--如果数据文件恰好是用户需要的格式,那么只需要简单的拷贝文件或文件夹就可以。

hadoop fs –cp source_path target_path

 

 

--导出数据

insert overwrite local directory ‘/tmp/employees’

select name,salary,address from employees se where se.state=’CA’

 

--导出数据到多个输出文件夹

from employees se

insert overwrite local directory ‘/tmp/or_employees’

         select * se where se.cty=’US’ and se.st=’OR’

insert overwrite local directory ‘/tmp/ca_employees’

         select * se where se.cty=’US’ and se.st=’CA’

 

3
1
分享到:
评论

相关推荐

    HIVE创建库创建表.docx

    在数据集目录中选取2个数据文件内部表创建表,选取2个数据文件创建外部表。 使用美国疫情数据创建分区表 疫情数据实现静态和动态加载数据到分区表 自己构建疫情数据实现多重分区表 使用美国疫情数据实现桶表 修改...

    Hive使用手册Hive使用手册

    3 Hive创建/删除数据库 3 3.1创建数据库: 3 3.2 删除数据库: 3 4 Hive 表相关语句 3 4.1 Hive 建表: 3 4.1.1使用LIKE关键字创建一个与已有表模式相同的新表: 4 4.2 Hive 修改表 4 4.2.1 Hive 新增一个字段: 4 ...

    【63课时完整版】大数据实践HIVE详解及实战

    38.Hive表批量加载数据的脚本实现(一) 39.Hive表批量加载数据的脚本实现(二) 40.HIve中的case when、cast及unix_timestamp的使用 41.复杂日志分析-需求分析 42.复杂日志分析-需求字段讲解及过滤 43.复杂日志分析...

    使用Hive分析搜索日志与结果可视化(Python)【100012727】

    Hive 分析搜狗搜索日志与结果可视化,利用 hive ...主要步骤 包括:安装部署 Hive、启动 Hadoop 集群、进入 Hive 命令行、创建数据库和数据表、加载 或导入数据、用 Hive SQL 完成需求、使用 Python 实现数据可视化。

    Hive 基本命令操作1

    1.创建分区表语法 1.创建二级分区表 2.正常的加载数据 3.查询数据

    大数据java操作hive.pdf

    虚拟机上操作,保证 虚拟机上操作,保证hive数据库能正常连接进⼊。 数据库能正常连接进⼊。 如因退出没有⽤到命令(quit;),第⼆次进⼊则会报错。解决⽅法,切换到 [root@xcl ~]# cd apache-hive-2.1.1-bin/conf/...

    云数据库方案设计.doc

    b)大数据计算平台HIVE: 需要在HIVE中注册数据库表信息,将数据库的表映射成HIVE表,通过Hive- SQL进行数据读取,并在HIVE中进行运算。 2. 数据库访问大数据计算平台 大数据计算平台可以将数据,例如计算结果,写入...

    云数据库方案设计.docx

    b)大数据计算平台HIVE: 需要在HIVE中注册数据库表信息,将数据库的表映射成HIVE表,通过Hive-SQL进行数据读取,并在HIVE中进行运算。 数据库访问大数据计算平台 大数据计算平台可以将数据,例如计算结果,写入到...

    云数据库方案设计(1).doc

    b)大数据计算平台HIVE: 需要在HIVE中注册数据库表信息,将数据库的表映射成HIVE表,通过Hive- SQL进行数据读取,并在HIVE中进行运算。 2. 数据库访问大数据计算平台 大数据计算平台可以将数据,例如计算结果,写入...

    Hadoop实战手册

    使用Mysql构建简单数据集市29#Mysql的两种引擎介绍29#创建一个数据表使用Hive cli 进行数据分析29#使用shell 编写Hsql 并使用HiveCli导出数据,使用Mysql命令加载到数据库中。29#使用crontab 新增每日运行任务定时器...

    Hadoop权威指南(中文版)2015上传.rar

    导入的数据与Hive 导入大对象 执行导出 深入了解导出 导出与事务 导出和SequenceFile 第16章 实例分析 Hadoop 在Last.fm的应用 Last.fm:社会音乐史上的革命 Hadoop a Last.fm 用Hadoop产生图表 Track Statistics...

    Hadoop权威指南 第二版(中文版)

     导入的数据与Hive  导入大对象  执行导出  深入了解导出  导出与事务  导出和SequenceFile 第16章 实例分析  Hadoop 在Last.fm的应用  Last.fm:社会音乐史上的革命  Hadoop a Last.fm  用Hadoop产生图表...

    nosql 入门教程

    4.1.3 列数据库当做键/值对的嵌套映射表 67 4.1.4 Webtable布局 70 4.2 HBase分布式存储架构 71 4.3 文档存储内部机制 73 4.3.1 用内存映射文件存储数据 74 4.3.2 MongoDB集合和索引使用指南 75 4.3.3 MongoDB...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    技术点4 使用MapReduce 将数据导入数据库 技术点5 使用Sqoop 从MySQL 导入数据 2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源 2.3 将数据导出Hadoop 2.3.1 将数据...

    Hadoop实战(第2版)

    means 和文本 9.3.4 其他Mahout clustering 算法 .9.4 本章小结第5 部分 驯服大象10 深入解析 Hive10.1 Hive 基础10.1.1 安装10.1.2 元存储10.1.3 数据库、表、分区和存储10.1.4 数据模型...

    BigData::gem_stone::fire:大数据学习笔记

    使用hive(表描述在hive数据库的TBLS表中,表中的细分在COLUMNS_V2表中,表的id在CDS表中,存储HDFS上的路径在SDS表中) Linux文件/目录管理类命令 (文件系统目录切换) (显示文件和目录信息) (创建一个空文件...

Global site tag (gtag.js) - Google Analytics