hive 删除分区_Hive 快速上手

本文介绍了Hive中的内部表和外部表的区别,强调了删除操作对数据的影响。此外,讨论了Sequencefile存储格式的问题及解决办法,并详细阐述了分区、数据导出及其格式化。还涉及DML操作如查询、排序以及join,并提到了正则表达式的使用。
摘要由CSDN通过智能技术生成
        本文旨在快速学习或者回顾hive常用知识,阅读本文档需要二十分钟,完成后你将上手hive。

内部表和外部表

内部表(managed table)

  • 默认创建的是内部表(managed table),存储位置在hive.metastore.warehouse.dir设置,默认位置是/user/hive/warehouse。

  • 导入数据的时候是将文件剪切(移动)到指定位置,即原有路径下文件不再存在

  • 删除表的时候,数据和元数据都将被删除

  • 默认创建的就是内部表create table xxx (xx xxx)

外部表(external table)

  • 外部表文件可以在外部系统上,只要有访问权限就可以

  • 外部表导入文件时不移动文件,仅仅是添加一个metadata

  • 删除外部表时原数据不会被删除

  • 分辨外部表内部表可以使用DESCRIBE FORMATTED table_name命令查看

  • 创建外部表命令添加一个external即可,即create external table xxx (xxx)

  • 外部表指向的数据发生变化的时候会自动更新,不用特殊处理

# 查看数据库show databases;# 创建数据库,位置在hdfs上create database if not exists sysoa COMMENT 'OA数据库' LOCATION '/user/database/hive/warehouse/sysoa.db';# 删除数据库,CASCADE:删除数据库之前删除所有的表格DROP DATABASE IF EXISTS userdb CASCADE;# 使用数据库use class;# 创建内部表create table if not exists students2(name string,age int,sex string,brithday date)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;# 导入数据load data local inpath '/home/fonttian/database/hive/students2' overwrite into table students2;# 创建外部表create external table if not exists students3(name string,age int,sex string,brithday date)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' stored as orc;  # 删除表结构,保留数据truncate table students2;# 删除表数据与结构,外部表只删除元数据drop table students2;

存储格式为 Sequencefile时的

一个数据导入问题

指定存储格式为 Sequencefile 时,把txt格式的数据导入表中,hive 会报文件格式错,解决方案为先将txt格式传入hive,然后利用传入表格插入Sequencefile格式表格。

load data local inpath '/home/fonttian/database/hive/students2' overwrite into table students3;# 创建外部表create external table if not exists students3_orc(name string,age int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值