目录

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建表语句 增加字段、分区基础操作相关推荐

  1. mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  2. mysql hive 建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  3. Hive建表语句详解--CREATE TABLE

    创建表的三种方法 Hive创建表的方式(默认路径/user/hive/warehouse,也可以location指定,主要针对external表) 1.使用create命令创建一个新表,带分区 CRE ...

  4. java生成mysql数据库建表语句、字段、字段类型、字段注释,可实现不用mysqldump备份数据库

    使用 mysqldump 备份数据库也是可行的,因为每次备份的时候都需要mysqldump这个文件, 我在windows备份时没问题,但是放到linux上面时,centos系统死活不认这个文件,但又不 ...

  5. mysql 建表语句 stored as_Druid 解析Hive建表语句解析报错

    Druid 版本: com.alibaba druid-spring-boot-starter 1.2.3 Hive 建表SQL create table ads_data.sale_detail_o ...

  6. mysql建表语句增加注释_mysql建表语句加注释

    主表的名称+字符 dtl(detail 缩写) 例如: 采购定单的名称为: po_order, 则采购定单的明细表为: po_orderdtl (7)表必须填写描述信息(使用 SQL 语句建表时... ...

  7. mysql建表语句增加注释_MySQL建表语句+添加注释

    1.建表+注释 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号', name VARCHAR(200) COMM ...

  8. PowerDesigner,如何将Oracle数据库建表语句转化成Mysql数据库建表语句。

    在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表.表中每个字段的数据类型.中文注释.是否可为NULL 问题,非常影响我们建表的效率.本篇文章,以Oracle数 ...

  9. Mysql表结构转Postgresql建表语句快速操作

    Mysql转Postgresql 文章目录 Mysql转Postgresql 写在前面 操作 写在前面 在系统重构中,需要把Mysql的表结构转成pgsql,明显的是,这两个数据库的函数.标识符等都不 ...

  10. 使用java代码编写脚本,把oracle建表语句变成hive建表语句

    使用java代码编写脚本,把oracle建表语句变成hive建表语句 java代码 测试oracle.sql 生成hive创表语句 java代码 import java.io.File; import ...

最新文章

  1. 资源 | 一文读懂深度学习(附学习资源)
  2. oracle视图能增删改,oracle视图的增删改
  3. Matlab学习笔记——find()函数
  4. sql性能分析(explain关键字)
  5. tomcat 随windows启动
  6. 风格迁移应用_进展丨图像也能做情感迁移?罗切斯特大学团队提出计算机视觉新任务...
  7. Job for mariadb.service failed because the control process exited with error code. Se
  8. hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统
  9. 图表样式无法实现个性化定制?这个ECharts插件解锁多图表样式
  10. linux top功能,[每日一题]说说Linux top命令的功能和用法
  11. java8的新特性详解-----------Lamda表达式
  12. 公司里面用的iTextSharp(教程)---关于PDF的属性设置
  13. Linux -lvm -扩容、缩容逻辑卷(针对xfs)
  14. 全网最详细的纪录片观看&下载指南
  15. 抓包工具Fiddler下载安装
  16. C# 重写(override)
  17. mybatis拦截器实现数据脱敏拦截器使用
  18. JSRUN 对比 jsfiddle,jsbin,codepen
  19. 二叉树存储结构及实现
  20. spring项目如何升级mysql包_SpringBoot项目版本升级:从1.5.3升级到2.1.8版本

热门文章

  1. 阿里架构师直言:“没有实战都是纸上谈兵”,Redis实战PDF分享
  2. 安装cmsv7的具体方法
  3. oracle中日期转换格式,oracle日期格式转换 to_date()
  4. 2016服务器系统驱动,windows sever2016驱动大家是怎么装的啊
  5. matlab 矩阵转置
  6. 免费开源的中文语音数据集
  7. 曼昆《经济学原理》-微观经济学-随记(一)
  8. 怎么修改探索者服务器地址,探索者可不可以修改快捷键???
  9. PS中标尺工具在哪里
  10. REST及RESTful原则