Hive学习之函数DDL和Show、Describe语句
创建/删除函数
创建暂时函数
以下的语句创建由class_name实现的暂时函数,该函数被创建后仅仅能够在当前会话中使用。会话结束后函数失效。
实现函数的类能够是Hive类路径中的随意类。能够使用Add Jar语句向Hive类路径加入类。
CREATE TEMPORARY FUNCTION function_name AS class_name
删除暂时函数
使用以下的语句能够删除当前会话中的暂时函数:
DROP TEMPORARY FUNCTION [IF EXISTS] function_name
创建永久函数
在Hive-0.13版本号及之后的版本号中,自己定义函数能够被注冊到元存储中,这样用户能够在每次会话中都引用函数而不必每次都创建函数。以下是创建永久函数的语句:
CREATE FUNCTION[db_name.]function_name AS class_name [USINGJAR|FILE|ARCHIVE 'file_uri' [, JAR|FILE|ARCHIVE 'file_uri'] ]
在该语句中能够使用USING从句加入Jar文件、普通文件或者归档文件,当函数第一次使用时,这些文件将会加入到Hive环境中。
若Hive不是以本地模式执行,file_uri是非本地URI,比方能够使HDFS路径。
能够使用參数hive.exec.mode.local.auto设置本地模式,将该參数的值设置为true则为本地模式,默觉得false。假设指定了db_name,则函数将加入到指定的数据库,否则加入到当前数据库。引用当前数据库中的函数仅仅需指定函数名,引用非当前数据库中的函数则须要使用全限定函数名db_name.
function_name。
删除永久函数
删除永久函数的语句为:
DROP FUNCTION[IF EXISTS] function_name
Show语句
在前面学习各种DDL语句时,已经或多或少的使用了一些show语句。比方show databases、show tables等。以下将会系统全面地学习各种show语句。
Show Databases
完整的show databases语句例如以下,还能够使用LIKE从句利用正則表達式对数据库进行过滤,只是通配符仅仅能是*(随意字符)或者|(其他选择),通配符须要使用单引號。
SHOW (DATABASES|SCHEMAS) [LIKE identifier_with_wildcards];
演示代码例如以下:
hive> show databases like 'lea*';
OK
learning
Time taken:0.304 seconds, Fetched: 1 row(s)
hive> show schemas like 'lea*';
OK
learning
Time taken:0.223 seconds, Fetched: 1 row(s)
Show Tables
Show Tables
SHOW TABLES [IN database_name] [identifier_with_wildcards];
该语句列出当前数据库中全部的表和视图。若使用IN从句则列出指定数据库中的全部表和视图,还能够使用正則表達式进行过滤,通配符和show databases中的通配符使用同样的规则,即仅仅能使用*和|。表和视图依照字母顺序列出。
show Partitions
SHOW PARTITIONS table_name [PARTITION(partition_desc)]
该语句以字母顺序列出指定表中的全部分区。还能够通过指定部分分区来过滤结果集:
hive> show partitions people;
OK
department=1/sex=0/howold=23
Time taken: 4.75seconds, Fetched: 1 row(s)
hive> show partitions people partition(department='1');
OK
department=1/sex=0/howold=23
Time taken:0.716 seconds, Fetched: 1 row(s)
hive> show partitions people partition(department='2');
OK
Time taken:0.376 seconds
从Hive-0.13版本号開始还能够指定数据库:
hive> show partitions learning.people;
OK
department=1/sex=0/howold=23
Time taken: 0.25seconds, Fetched: 1 row(s)
Show Table/Partition Extended
SHOW TABLE EXTENDED[IN|FROM database_name] LIKE identifier_with_wildcards [PARTITION (partition_desc)]
该语句列出匹配正則表達式的全部表的信息。假设指定了PARTITION从句则不能使用正則表達式。该语句的输出包含基础表信息和文件系统信息,如totalNumberFiles,totalFileSize, maxFileSize, minFileSize,lastAccessTime和 lastUpdateTime。假设使用了PARTITION则输出指定分区的文件系统信息。
Show Table Properties
SHOW TBLPROPERTIES table_name;
SHOW TBLPROPERTIES table_name (‘属性名’);
上面的第一个语句以每行一个的格式列出表table_name全部属性,属性和属性值之间以tab分隔。第二个语句输出指定属性的值。
hive> show tblproperties table_properties;
OK
numFiles 0
last_modified_by hadoop
last_modified_time 1402456050
COLUMN_STATS_ACCURATE false
transient_lastDdlTime 1402456050
comment learning alter properties
numRows -1
totalSize 0
telephone 1234567
rawDataSize -1
Time taken:0.247 seconds, Fetched: 10 row(s)
hive> show tblproperties table_properties('telephone');
OK
1234567
Time taken:0.355 seconds, Fetched: 1 row(s)
Show Create Table
SHOW CREATETABLE ([db_name.]table_name|view_name)
该语句输出创建指定表或者视图的语句。例如以下:
hive> show create table people;
OK
CREATE TABLE `people`(
`name` string,
`age` int,
`mobile` string COMMENT 'change column name',
`birthday` date,
`address` string)
PARTITIONED BY (
`department` string,
`sex` string,
`howold` int)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED ASINPUTFORMAT
'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.mapred.SequenceFileOutputFormat'
LOCATION
'hdfs://hadoop:9000/user/hive/warehouse/learning.db/people'
TBLPROPERTIES (
'last_modified_by'='hadoop',
'last_modified_time'='1402539133',
'transient_lastDdlTime'='1402539133')
Time taken:0.477 seconds, Fetched: 22 row(s)
Show Indexes
SHOW [FORMATTED](INDEX|INDEXES) ON table_with_index [(FROM|IN) db_name]
该语句输出特定表上的全部索引信息,包含索引名称、表名、被索引的列名、保存索引的表名、索引类型和凝视。假设使用FORMATTED。会为上述信息加入列标题,例如以下图所看到的:
Show Columns
SHOW COLUMNS(FROM|IN) table_name [(FROM|IN) db_name]
该语句输出给定表中包括分区列的全部列:
hive> show columns in people;
OK
name
age
mobile
birthday
address
department
sex
howold
Time taken:0.493 seconds, Fetched: 8 row(s)
Show Functions
SHOW FUNCTIONS"a.*"
该语句输出匹配正則表達式的自己定义和内置的函数,使用’.*’输出全部函数。
需要注意的是正則表達式中必需要有点号,否则不会匹配成功,见以下的样例:
hive>show functions 'av*';
OK
Timetaken: 0.022 seconds
hive>show functions 'av.*';
OK
avg
Timetaken: 0.039 seconds, Fetched: 1 row(s)
Show Locks
SHOW LOCKS<table_name>;
SHOW LOCKS<table_name> EXTENDED;
SHOW LOCKS<table_name> PARTITION (<partition_desc>);
SHOW LOCKS<table_name> PARTITION (<partition_desc>) EXTENDED;
上述语句显示表或者分区上的锁,当使用Hive事务时,上述语句返回以下的信息:
- 数据库名称
- 表名称
- 分区名称(若表存在分区)
- 锁的状态,能够是以下的一种:
- 获得:请求者拥有锁
- 等待:请求者等待锁
- 终止:锁已经超时但还未被清理
- 锁的类型。能够是以下的一种:
- 独占锁:其他不论什么用户不可在同一时间拥有该锁(大多数DDL语句使用该锁。如删除表)。
- 共享读锁:随意数量的共享读锁能够同一时候锁定同样的资源(读操作取得该锁,令人困惑的是,插入操作也取得共享读锁)。
- 共享写锁:随意数量的共享读锁能够同一时候锁定同样的资源。但其他共享写锁不同意锁定已经被共享写锁定的资源(更新和删除使用共享写锁)。
- 若存在与锁关联的事务,则显示其ID
- 锁的持有者最后一次发送心跳(表明其还存活)的时间
- 假设锁被获得,则显示获得锁的时间
- 请求锁的用户
- 用户执行的主机
Show Transactions
SHOW TRANSACTIONS
事务是在Hive-0.13版本号中引进的。管理员使用该语句查询当前打开或者终止的事务。包含例如以下信息:
- 事务ID
- 事务状态
- 启动事务的用户
- 事务启动时所在的主机
Show Compactions
SHOW COMPACTIONS
该语句显示当Hive事务被使用时,全部正在被压缩或者预定压缩的表和分区,包含以下的信息:
- 数据库名称
- 表名
- 分区名称(假设存在分区)
- 主压缩还是次要压缩
- 压缩的状态:
- 初始化:在队列中等待压缩
- 工作:正在被压缩
- 准备清除:压缩已经结束。旧文件被安排清除
- 假设处于工作状态,显示压缩线程的线程ID
- 假设处于工作状态或者准备清除状态。显示压缩開始的时间
Describe语句
Describe Database
DESCRIBE DATABASE db_name
该语句显示给定数据库的凝视(假设设置的话),在HDFS上的路径和数据库的拥有者。例如以下所看到的:
hive>describe database learning;
OK
learning hdfs://hadoop:9000/user/hive/warehouse/learning.db hadoop
Time taken:0.088 seconds, Fetched: 1 row(s)
hive>describe database default;
OK
default Default Hive database hdfs://hadoop:9000/user/hive/warehouse public
Time taken:0.216 seconds, Fetched: 1 row(s)
Describe Table/View/Column
DESCRIBE [EXTENDED|FORMATTED] [db_name.]table_name[DOT col_name ( [DOT field_name] |[DOT '$elem$'] | [DOT '$key$'] | [DOT '$value$'] )* ]
该语句显示给定表包含分区列在内的全部列,假设使用了extendedkeyword,则以Thrift序列化形式显示表的元数据,假设使用formattedkeyword,则以表格形式显示元数据。
假设表拥有复合类型的列,能够通过使用表名.复合列名('$elem$'用于数组,'$key$'用于map的键,'$value$'用于map的键值)查看该列的属性。对于视图DESCRIBE EXTENDED or FORMATTED能够用来获取视图的定义。两个相关的属性被提供:由用户指定的原始视图定义和由Hive内部使用的扩展定义。
Describe Partition
DESCRIBE [EXTENDED|FORMATTED] [db_name.]table_name PARTITION partition_spec
该语句显示指定分区列的元数据。
Hive学习之函数DDL和Show、Describe语句的更多相关文章
- hive学习笔记之七:内置函数
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习笔记之十:用户自定义聚合函数(UDAF)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...
- Hive学习笔记【转载】
本文转载自:http://blog.csdn.net/haojun186/article/details/7977565 1. HIVE结构 Hive 是建立在 Hadoop 上的数据仓库基础构架. ...
- 【大数据】Hive学习笔记
第1章 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表, ...
- Hive学习详细版
一.概述 1.Hadoop的开发问题 只能用java语言开发,存在语言门槛 需要对Hadoop底层原理,api比较了解才能做开发 开发调试比较麻烦 2.什么是Hive Hive是基于Hadoop的一个 ...
- Hive学习目录
大数据之Hive学习目录 第 1 章 Hive入门 1.1 什么是Hive 1.2 Hive的优缺点 1.2.1 优点 1.2.2 缺点 1.3 *Hive架构原理 1.4 Hive和数据库比较 第 ...
- hive学习笔记之三:内部表和外部表
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习
大数据的仓库Hive学习 10期-崔晓光 2016-06-20 大数据 hadoop 10原文链接 我们接着之前学习的大数据来学习.之前说到了NoSql的HBase数据库以及Hadoop中 ...
- Hive学习之路 (一)Hive初识
Hive 简介 什么是Hive 1.Hive 由 Facebook 实现并开源 2.是基于 Hadoop 的一个数据仓库工具 3.可以将结构化的数据映射为一张数据库表 4.并提供 HQL(Hive S ...
随机推荐
- Log 日志工具类 保存到文件 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- OkHttp 官方Wiki之【使用案例】
原文位置:https://github.com/square/okhttp/wiki/Recipes Recipes 食谱/知识点清单 We've written some recipes that ...
- layer和3D仿射变换
1.视图的显示基于图层,通过控制图层同样能控制显示效果,获取当前的视图的layer,并为其增加圆角边框. //设置layer边框的宽度为2 view.layer.borderWidth=; //如果需 ...
- Pylons架构网站开发从0到1
首先说明下这里的从0到1指的是从没有听说过pylons到开发出一个看上去还不错的网站.一个月前,我没有听说过也不知道什么是pylons,HTML只知道一些标签,JavaScript也不怎么懂,由于只倾 ...
- 2.6.33中关于at91sam9260的i2c controller驱动的问题
在为at91sam9260移植2.6.33内核的I2C时,直接用driver/bus/i2c-at91.c这个iic的adapter驱动是不能用的,而且在makemenuconfig时,在device ...
- MISRA-C 2012 Amendment 1
- PHPCMS V9 加密规则
PHPCMS V9 加密规则 相关表:v9_admin 加密方式: md5(md5(password)+encrypt) 第一步:对输入的密码32位小写 MD5 对输入的密码进行trim过滤 第二 ...
- UEFI是什么?与BIOS的区别在哪里?UEFI详解!
前几天在帮同事小何笔记本电脑安装64位 Windows 7 的时候,遇到一个从来没有碰到过的问题,使用光盘安装时,提示:Windows无法安装到这个磁盘.选中的磁盘具有MBR分区表.在EFI系统上,W ...
- vue 源码 断点调试
1.添加sourceMap sourceMap: true 2.npm run dev 会生成vue.js.map 3.断点调试 <!DOCTYPE html> <html> ...
- mysql 运行计划explain具体解释
explain主要是用来获取一个query的运行计划,描写叙述mysql怎样运行查询操作.运行顺序,使用到的索引,以及mysql成功返回结果集须要运行的行数.能够帮助我们分析 select 语句,让我 ...