hive建表语句 增加字段、分区基础操作
目录
hive建表
内部分区表
外部分区表
表结构复制:
hive表删除
hive表重命名
表修改操作
增加分区
修改分区
删除分区
新增表字段
hive建表
IF NOT EXISTS : 表不存在才会创建
分隔符:field.delim是表的两个列字段之间的文件中的字段分隔符.
serialization.format是文件序列化时表中两个列字段之间的文件中的字段分隔符.
分区partition:创建表时可指定分区字段,多个分区字段之间可用“,”分割。
如:PARTITIONED BY (
`hp_settle_dt` string,trans_label string)
内部分区表
CREATE TABLE IF NOT EXISTS `tbl_usr_bind_card_count`(`usr_id` string, `trans_flow` string, `trans_time` string, `phone` string, `cert_id` string, `card_no` string)
PARTITIONED BY ( `hp_settle_dt` string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ( 'field.delim'='\;', 'serialization.format'='\;')
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION'/user/bdhysfas/data/tmp/tbl_usr_bind_card_count';
路径:创建内部表时可指定路径,若路径不存在建表时会自动创该路径。不指定路径时会存放默认路径。
外部分区表
CREATE EXTERNAL TABLE IF NOT EXISTS `tbl_usr_bind_card_count`(`usr_id` string, `trans_flow` string, `trans_time` string, `phone` string, `cert_id` string, `card_no` string)
PARTITIONED BY ( `hp_settle_dt` string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ( 'field.delim'='\;', 'serialization.format'='\;')
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION'/user/bdhysfas/data/tmp/tbl_usr_bind_card_count';
关键字EXTENAL告诉hive这张表是外部的。
路径:创建外部表时可指定路径,表创建时不会自动生成指定路径,所以要先创建路径再创建表。不指定路径时会存放默认路径。
因为表是外部的,所以hive并非认为完全拥有这份数据。因此删除表并不会删除掉这份数据,但是描述表的元数据信息会被删掉。
表结构复制:
CREATE EXTERNAL TABLE IF NOT EXISTS tbl_usr_bind_card_count1
LIKE tbl_usr_bind_card_count
LOCATION '/user/bdhysfas/data/tmp/tbl_usr_bind_card_count1';
注:如果省略掉关键字EXTERNAL而且源表是外部表的话,那么生成的新表也将是外部表,如果源表是内部表,那么生成的表将是内部表。如果语句中包含EXTERNAL,即便源表是内部表,新创建的表也会是外部表。
hive表删除
DROP TABLE tbl_usr_bind_card_count;
hive表重命名
-- 将表tbl_usr_bind_card_count重命名为tbl_usr_bind_card_count2
ALTER TABLE tbl_usr_bind_card_count RENAME TO tbl_usr_bind_card_count2;
表修改操作
增加分区
-- 添加分区
ALTER TABLE tbl_usr_bind_card_count ADD IF NOT EXISTS
PARTITION(hp_settle_dt = 20220301);
-- 添加分区并指定路径
ALTER TABLE tbl_usr_bind_card_count ADD IF NOT EXISTS
PARTITION(hp_settle_dt = 20220301) LOCATION '/user/bdhysfas/data/tmp/tbl_usr_bind_card_count/hp_settle_dt=20220301';
修改分区
ALTER TABLE tbl_usr_bind_card_count PARTITION(hp_settle_dt=20220301)
SET LOCALTION '/user/bdhysfas/data/tbl_usr_bind_card_count/hp_settle_dt=20220301';
删除分区
ALTER TABLE tbl_usr_bind_card_count DROP PARTITION(hp_settle_dt=20220301);
新增表字段
方案1:
ALTER TABLE tbl_oper_in_flow add columns(less_recovery double,remark1 string,remark2 string,remark3 string);
对于旧的分区的可正常查询,新加的字段值为空。但是旧的分区的数据无法插入或更新,新的分区可正产插入和查询。
方案2:
ALTER TABLE tbl_oper_in_flow add columns(less_recovery double,remark1 string,remark2 string,remark3 string CASCADE) ;
可加工旧的分区的历史数据,使所以分区的数据可正常查询和插入,但可能加载时间过长。
方案3:
此方案只适用于外部分区表
删除原表,重新创建新表,执行原表数据路径。但分区信息需重新加载。
hive建表语句 增加字段、分区基础操作相关推荐
- mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解
前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...
- mysql hive 建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解
前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...
- Hive建表语句详解--CREATE TABLE
创建表的三种方法 Hive创建表的方式(默认路径/user/hive/warehouse,也可以location指定,主要针对external表) 1.使用create命令创建一个新表,带分区 CRE ...
- java生成mysql数据库建表语句、字段、字段类型、字段注释,可实现不用mysqldump备份数据库
使用 mysqldump 备份数据库也是可行的,因为每次备份的时候都需要mysqldump这个文件, 我在windows备份时没问题,但是放到linux上面时,centos系统死活不认这个文件,但又不 ...
- mysql 建表语句 stored as_Druid 解析Hive建表语句解析报错
Druid 版本: com.alibaba druid-spring-boot-starter 1.2.3 Hive 建表SQL create table ads_data.sale_detail_o ...
- mysql建表语句增加注释_mysql建表语句加注释
主表的名称+字符 dtl(detail 缩写) 例如: 采购定单的名称为: po_order, 则采购定单的明细表为: po_orderdtl (7)表必须填写描述信息(使用 SQL 语句建表时... ...
- mysql建表语句增加注释_MySQL建表语句+添加注释
1.建表+注释 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号', name VARCHAR(200) COMM ...
- PowerDesigner,如何将Oracle数据库建表语句转化成Mysql数据库建表语句。
在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表.表中每个字段的数据类型.中文注释.是否可为NULL 问题,非常影响我们建表的效率.本篇文章,以Oracle数 ...
- Mysql表结构转Postgresql建表语句快速操作
Mysql转Postgresql 文章目录 Mysql转Postgresql 写在前面 操作 写在前面 在系统重构中,需要把Mysql的表结构转成pgsql,明显的是,这两个数据库的函数.标识符等都不 ...
- 使用java代码编写脚本,把oracle建表语句变成hive建表语句
使用java代码编写脚本,把oracle建表语句变成hive建表语句 java代码 测试oracle.sql 生成hive创表语句 java代码 import java.io.File; import ...
最新文章
- 资源 | 一文读懂深度学习(附学习资源)
- oracle视图能增删改,oracle视图的增删改
- Matlab学习笔记——find()函数
- sql性能分析(explain关键字)
- tomcat 随windows启动
- 风格迁移应用_进展丨图像也能做情感迁移?罗切斯特大学团队提出计算机视觉新任务...
- Job for mariadb.service failed because the control process exited with error code. Se
- hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统
- 图表样式无法实现个性化定制?这个ECharts插件解锁多图表样式
- linux top功能,[每日一题]说说Linux top命令的功能和用法
- java8的新特性详解-----------Lamda表达式
- 公司里面用的iTextSharp(教程)---关于PDF的属性设置
- Linux -lvm -扩容、缩容逻辑卷(针对xfs)
- 全网最详细的纪录片观看&下载指南
- 抓包工具Fiddler下载安装
- C# 重写(override)
- mybatis拦截器实现数据脱敏拦截器使用
- JSRUN 对比 jsfiddle,jsbin,codepen
- 二叉树存储结构及实现
- spring项目如何升级mysql包_SpringBoot项目版本升级:从1.5.3升级到2.1.8版本