hive的基本操作

hive的基本操作创建与加载数据

创建数据库

create database if not exists mydb; 
create database mydb;
create database if not exists mydb comment 'this is mydb';创建加上描述
use databasename; 切换数据库

删除数据库

drop database mydb; 可以删除空数据库
drop database cascade;强制删除数据库

创建表

create table [if not exists] tablename(
字段名 类型
........
)
row format delimited
fields terminated by '\t' 指定属性以tab分隔在存储时,
lines terminated by '\n’;指定换行符
store as textfile;指定存储方式

内部表加载数据

方法一:hdfs dfs -put 本地文件上传到表目录下  /user/hive/warehouse/数据库名/表名
方法二:在hive中使用load 命令
load data [local] inpath ‘文件路径’ [overwrite] into table 表名
如果不加local会默认在hdfs系统上找,若有则将数据移动到该表下

创建外表***external***关键字必须加上

create **external** table [if not exists] tablename(
字段名 类型
........
)
row format delimited
fields terminated by '\t' 指定属性以tab分隔在存储时,
lines terminated by '\n’;指定换行符
store as textfile;指定存储方式
加载数据的的方式与内部表相同,外部表可以先存在文件再进行创表

内部表和外部表的区别

内部表表目录会默认创建在集群上的/user/hive/warehouse下所在库目录下
外部表要用location进行指定,不指定就是和内部表相同,location后的目录
必须时集群上的目录

内部表删除时清除表的元数据信息和数据全部清除,外部表会只会清楚元数据不会清除表的数据。

加载数据的扩展


 1. insert into table tablename2 select [....] from tablename1;
    tablename1中的字段个数要和查出来的字段个数一致
 2. 复制表结构 create table if not exists tablename2 like tablename1
 3. 复制表结构和表数据
     create table if not exists tablename2 as select [....] from tablename1;
     create table if not exits tablename2 like tablenname location ‘tablename1的表目录’不会创建新的表目录两表使用同一个表目录
 4. 向多张表中插入表数据
  from tablename1 insert into tablename2 select * where 条件  insert into tablename3 select * where 条件

查看表和数据库的数据结构

	desc database databaseName;  -- 查看数据库结构
  	desc database extended databaseName; -- 更多信息
  	describe database extended databaseName; -- 查看描述
  	desc tableName;		-- -- 查看表结构
  	desc extended tableName;  
  	describe extended tableName;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值