hive-version2.1.1

DDL操作

Create/Drop/Alter/Use Database

创建数据库
  1. //官方指导
  2. CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  3. [COMMENT database_comment]
  4. [LOCATION hdfs_path]
  5. [WITH DBPROPERTIES (property_name=property_value, ...)];

//示例 create database if not exists testdb;

删除数据库
  1. //官方指导
  2. DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

//示例 drop database testdb;

说明:restrict不跟参数为默认参数,如果数据库不为空,则会删除失败;

   cascade 如果数据库有表时也要删除。

修改数据库
  1. //官方指导
  2. ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...); -- (Note: SCHEMA added in Hive 0.14.0)
  3.  
  4. ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; -- (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)
  5.  
  6. ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later)
  1. //示例1 set dbproperties 设置数据库属性
  2. alter database testdb set dbproperties('name'='xiaoming'); 
  1. //示例2 set owner 修改所属者名字和类型
  2. alter database testdb set owner user root;

说明:SET LOCATION要2.2.1,2.4.0及更高版本才支持,不会更改数据库现有的内容的位置,创建新表时新表父目录会更改。

使用数据库
  1. //官方指导 USE database_name; USE DEFAULT;
  1. //示例USE testdb;

Create/Drop/Truncate Table

创建表

  1. //官方指导
  2. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)
  3. [(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
  4. [COMMENT table_comment]
  5. [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  6. [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  7. [SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)]
  8. ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
  9. [STORED AS DIRECTORIES]
  10. [
  11. [ROW FORMAT row_format]
  12. [STORED AS file_format]
  13. | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later)
  14. ]
  15. [LOCATION hdfs_path]
  16. [TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)
  17. [AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
  18.  
  19. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  20. LIKE existing_table_or_view_name
  21. [LOCATION hdfs_path];
  22.  
  23. data_type
  24. : primitive_type
  25. | array_type
  26. | map_type
  27. | struct_type
  28. | union_type -- (Note: Available in Hive 0.7.0 and later)
  29.  
  30. primitive_type
  31. : TINYINT
  32. | SMALLINT
  33. | INT
  34. | BIGINT
  35. | BOOLEAN
  36. | FLOAT
  37. | DOUBLE
  38. | DOUBLE PRECISION -- (Note: Available in Hive 2.2.0 and later)
  39. | STRING
  40. | BINARY -- (Note: Available in Hive 0.8.0 and later)
  41. | TIMESTAMP -- (Note: Available in Hive 0.8.0 and later)
  42. | DECIMAL -- (Note: Available in Hive 0.11.0 and later)
  43. | DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later)
  44. | DATE -- (Note: Available in Hive 0.12.0 and later)
  45. | VARCHAR -- (Note: Available in Hive 0.12.0 and later)
  46. | CHAR -- (Note: Available in Hive 0.13.0 and later)
  47.  
  48. array_type
  49. : ARRAY < data_type >
  50.  
  51. map_type
  52. : MAP < primitive_type, data_type >
  53.  
  54. struct_type
  55. : STRUCT < col_name : data_type [COMMENT col_comment], ...>
  56.  
  57. union_type
  58. : UNIONTYPE < data_type, data_type, ... > -- (Note: Available in Hive 0.7.0 and later)
  59.  
  60. row_format
  61. : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
  62. [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
  63. [NULL DEFINED AS char] -- (Note: Available in Hive 0.13 and later)
  64. | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
  65.  
  66. file_format:
  67. : SEQUENCEFILE
  68. | TEXTFILE -- (Default, depending on hive.default.fileformat configuration)
  69. | RCFILE -- (Note: Available in Hive 0.6.0 and later)
  70. | ORC -- (Note: Available in Hive 0.11.0 and later)
  71. | PARQUET -- (Note: Available in Hive 0.13.0 and later)
  72. | AVRO -- (Note: Available in Hive 0.14.0 and later)
  73. | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
  74.  
  75. constraint_specification:
  76. : [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ]
  77. [, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE
  1. //示例 外部分区表
  2. create external table if not exists testdb.test
  3. (id int COMMENT '这是主键',
  4. ad array<String>,
  5. bd map<string,String>,
  6. cd struct<a:String,b:string,c:string,d:String>)
  7. COMMENT '这是测试表'
  8. partitioned by(dd String,time String)
  9. row format delimited
  10. fields terminated by '\u0001'
  11. collection items terminated by ','
  12. map keys terminated by ':'
  13. lines terminated by '\n'
  14. location '/use/';
  1.  
  1.  

说明:external 创建一张表不使用hive默认位置,可以指向hdfs任何位置,也就是外部表

  partitioned 分区字段

  fields terminated by 字段分割方式

  collection items terminated by   array,map,struct特殊字段中数据分割方式

  map keys terminated by  map中key:value的分割方式

  stored as textfile location 指定外部表数据的位置

还可以创建排序表,倾斜表,临时表以及加约束条件

TEMPORARY临时表现在还不支持分区

分桶表

  1. create external table if not exists ods_db_poker.tb_player (`id` int COMMENT '主键',`playerName` string,updateTime bigint COMMENT '跟新时间') partitioned by(currentDate int COMMENT '当前日期') CLUSTERED BY(id) SORTED BY(updateTime) INTO 10 BUCKETS row format delimited fields terminated by '\u0001' lines terminated by '\n' location '/warehouse/tablespace/external/hive/ods_db_poker.db/tb_player'
  1. CLUSTERED BY 分桶字段,根据改字段取hash分桶
  1. SORTED BY 排序字段,根据该字段做升降序排序
  1. INTO 10 BUCKETS 分桶个数 10

RegEx/JSON/CSV/TSV

  1. //官方指导
  2. //正则表达式 regex
  3. CREATE TABLE apachelog (
  4. host STRING,
  5. identity STRING,
  6. user STRING,
  7. time STRING,
  8. request STRING,
  9. status STRING,
  10. size STRING,
  11. referer STRING,
  12. agent STRING)
  13. ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
  14. WITH SERDEPROPERTIES (
  15. "input.regex" = "([^]*) ([^]*) ([^]*) (-|\\[^\\]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\".*\") ([^ \"]*|\".*\"))?"
  16. )
  17. STORED AS TEXTFILE;
  18. //json字符串
  19.  
  20. ADD JAR /usr/lib/hive-hcatalog/lib/hive-hcatalog-core.jar;
  21.  
  22. CREATE TABLE my_table(a string, b bigint, ...)
  23. ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
  24. STORED AS TEXTFILE;
  25. // CSV / TSV格式
  26. CREATE TABLE my_table(a string, b string, ...)
  27. ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
  28. WITH SERDEPROPERTIES (
  29. "separatorChar" = "\t",
  30. "quoteChar" = "'",
  31. "escapeChar" = "\\"
  32. )
  33. STORED AS TEXTFILE;
  1. //示例 json
  2. //加入jar

  3. add jar /root/hive-json-serde-0.2.jar;
  4. add jar /root/hive-hcatalog-core-2.1.1.jar;
  5.  
  6. //sql
  7.  
  8. CREATE TABLE my_table(name string, url string) partitioned by(time String) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe';

删除表

  1. //官方指导
  2. DROP TABLE [IF EXISTS] table_name [PURGE]; -- (Note: PURGE available in Hive 0.14.0 and later)
  1. //示例
  2. drop table testdb.test;

说明:PURGE 在配置了垃圾回收站的情况下,如果指定此参数,数据将会直接删除。否则将移至垃圾回收目录。

截断表

  1. //官方指导
  2. TRUNCATE TABLE table_name [PARTITION partition_spec];
  3.  
  4. partition_spec:
  5. : (partition_column = partition_col_value, partition_column = partition_col_value, ...)
  1. //示例
  2. truncate table testdb.test partition(time=2017);

说明:删除该分区中所有数据,可以同时删除多个分区中的数据,分区依旧存在。

Alter Table/Partition/Column

重命名表

  1. //官方指导
  2. ALTER TABLE table_name RENAME TO new_table_name;
  1. //示例
  2. alter table testdb.test rename to testone;

更改表属性

  1. //官方指导
  2. ALTER TABLE table_name SET TBLPROPERTIES table_properties;
  3.  
  4. table_properties:
  5. : (property_name = property_value, property_name = property_value, ... )
  1. //示例
  2. alter table testdb.testone set tblproperties('propertyone'='第一个测试');

说明: 设置自己的元数据

添加serdo属性

  1. //官方指导
  2. ALTER TABLE table_name [PARTITION partition_spec] SET SERDE serde_class_name [WITH SERDEPROPERTIES serde_properties];
  3.  
  4. ALTER TABLE table_name [PARTITION partition_spec] SET SERDEPROPERTIES serde_properties;
  5.  
  6. serde_properties:
  7. : (property_name = property_value, property_name = property_value, ... )
  1. //示例
  2. alter table testdb.testone set serdeproperties('test'='test');

添加分区

  1. //官方指导
  2. ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location'][, PARTITION partition_spec [LOCATION 'location'], ...];
  3.  
  4. partition_spec:
  5. : (partition_column = partition_col_value, partition_column = partition_col_value, ...)
  1. //示例
    2  alter table testdb.test add partition (dd='10',time='2020') location '/root/a.txt';

向多分区表加分区时,必须指定在那个分区中;

动态分区

  1. //官方指导
  2. FROM page_view_stg pvs
  3. INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country)
  4. SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip, pvs.country
  1. //示例
  2. //修改配置文件hive-site
  3. //hive.exec.dynamic.partition=true;
  4. //hive.exec.dynamic.partition.mode=nonstrict;
  5. insert overwrite table test1 partition(dd,time) select id,ad,bd,cd,dd,time from test;

重命名分区

  1. //官方指导
  2. ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;
  1. //示例
  2. ALTER TABLE test PARTITION(dd='a',time='') RENAME TO PARTITION(dd='a',time='');

多个分区时必须指定不改变的分区,支持同时修改

删除分区

  1. //官方指导
  2. ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]
  3. [IGNORE PROTECTION] [PURGE]; -- (Note: PURGE available in Hive 1.2.0 and later, IGNORE PROTECTION not available 2.0.0 and later)
  1. //示例
  2. alter table testdb.test drop partition (dd = 'a');

修改分区或表文件格式

  1. //官方指导
  2. ALTER TABLE table_name [PARTITION partition_spec] SET FILEFORMAT file_format;
  1. // 示例 一般都用text
  2. alter table test partition (dd='b') set fileformat rcfile;

改变列

更改列名/类型/位置/注释

  1. //官方指导
  2. ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type
  3. [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];
  1. //示例 id 改为id1 类型int 放在第1位 first
  2. alter table test change id id1 int first;

添加或替换列

  1. //官方指导
  2. ALTER TABLE table_name
  3. [PARTITION partition_spec] -- (Note: Hive 0.14.0 and later)
  4. ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
  5. [CASCADE|RESTRICT] -- (Note: Hive 1.1.0 and later)
  1. //示例
  2. alter table test add columns(ed string);

视图、索引、权限等DDL操作请参考apache Hive官方文档

HiveQL DDL 常用QL示例资料的更多相关文章

  1. HiveQL DML 常用QL示例资料

    hive 2.1.1  DML操作 将文件加载到hive表 //官方指导 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tabl ...

  2. java8-lambda常用语法示例

    常用语法示例: public static void main(String[] args) { List<OrderInfo> orderInfoList = Lists.newArra ...

  3. Lambda表达式常用代码示例

    Lambda表达式常用代码示例 2017-10-24 目录 1 Lambda表达式是什么2 Lambda表达式语法3 函数式接口是什么  3.1 常用函数式接口4 Lambdas和Streams结合使 ...

  4. Python3 urllib.parse 常用函数示例

    Python3 urllib.parse 常用函数示例 http://blog.51cto.com/walkerqt/1766670  1.获取url参数. >>> from url ...

  5. node操作mongdb的常用函数示例

    node操作mongdb的常用函数示例 链接数据库 var mongoose = require('mongoose'); //引用数据库模块 mongoose.connect('mongodb:// ...

  6. iptables 常用命令示例

    一.常用命令示例: 1.命令 -A, --append 范例:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 说明 :新增规则到INPUT规则链中,规则时接 ...

  7. Linux find常用用法示例

    在此处只给出find的基本用法示例,都是平时我个人非常常用的搜索功能.如果有不理解的部分,则看后面的find运行机制详解对于理论的说明,也建议在看完这些基本示例后阅读一遍理论说明,它是本人翻译自fin ...

  8. Spring常用配置示例

    Spring 是一款Java平台的开源框架,是为解决企业级应用程序开发的复杂性而创建的,通过良好的分层架构让开发人员能够专注于业务逻辑的开发. Spring框架是一个分层架构,由不同的模块组成,构成s ...

  9. Java8中时间日期库的20个常用使用示例

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API.Java对日期, ...

随机推荐

  1. python小方法 随笔记

    1. 元组和列表的接收 s1,s2 = [,] print(s1,s2) # 执行结果: 1 2 s3,s4 = (,) print(s3,s4)# 执行结果: 3 4 2. 变量值的交换 a = b ...

  2. Apple官文中的KVO 与 FBKVOController

    前言 本文将主要介绍以下内容: 详细列出Apple官文中KVO的注意事项(Apple KVO相关的引用皆摘自Apple官文). 介绍FBKVOController,以及它如何避免系统提供的KVO坑点. ...

  3. 使用Jenkins部署.Net Core遇到的几个坑

    搞过CI/CD的同学一定吃过不少苦头,或者说遇到不少坑,但是对自动化的执着住挡不了前进的步伐,如果你缺少了运维这一块知识,那么你的流水线总是不那么完美,本文记录的是自己躺过的坑,希望对你有所帮助. 一 ...

  4. decimal.ToString()问题

    decimal dt = 1.00M;            decimal dt1 = 1M;                         bool d = dt == dt1;         ...

  5. js生成动态树状结构及排序

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Codeforces 777D:Cloud of Hashtags(水题)

    http://codeforces.com/problemset/problem/777/D 题意:给出n道字符串,删除最少的字符使得s[i] <= s[i+1]. 思路:感觉比C水好多啊,大概 ...

  7. 基于C#的机器学习--深层信念网络

    我们都听说过深度学习,但是有多少人知道深度信念网络是什么?让我们从本章开始回答这个问题.深度信念网络是一种非常先进的机器学习形式,其意义正在迅速演变.作为一名机器学习开发人员,对这个概念有一定的了解是 ...

  8. js常用设计模式实现(三)建造者模式

    创建型模式 创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离 关于创建型模式,已经接近尾声了,还剩下建造者模式和原型模式,这一篇说一说建造者模式 建造者模式的定义 将一个 ...

  9. 嵊州D2T3 玛利亚∙多斯普拉泽雷斯 完美配对

    嵊州D2T3 玛利亚∙多斯普拉泽雷斯 公墓一共有 n 个墓地,通过 n − 1 条通道相连. 每次,推销员可以在选择一个墓地推销给玛利亚. 但是,考虑很多的玛利亚会尽量否决这个提议. 她会选择一个墓地 ...

  10. happy and angry day! 2019-07-05

    2019-07-05 01:59:51 现在我是挺开心的哈! 直面困难!迎难而上!毫无畏惧! 现在我的结果,少不了大家给我的支持与鼓励! 鸣谢 章香涛老师---------在各个方面鼓舞了我,激发了我 ...