创建/删除函数

创建暂时函数

以下的语句创建由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语句的更多相关文章

  1. hive学习笔记之七:内置函数

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. hive学习笔记之十:用户自定义聚合函数(UDAF)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...

  3. Hive学习笔记【转载】

    本文转载自:http://blog.csdn.net/haojun186/article/details/7977565 1.  HIVE结构 Hive 是建立在 Hadoop 上的数据仓库基础构架. ...

  4. 【大数据】Hive学习笔记

    第1章 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表, ...

  5. Hive学习详细版

    一.概述 1.Hadoop的开发问题 只能用java语言开发,存在语言门槛 需要对Hadoop底层原理,api比较了解才能做开发 开发调试比较麻烦 2.什么是Hive Hive是基于Hadoop的一个 ...

  6. Hive学习目录

    大数据之Hive学习目录 第 1 章 Hive入门 1.1 什么是Hive 1.2 Hive的优缺点 1.2.1 优点 1.2.2 缺点 1.3 *Hive架构原理 1.4 Hive和数据库比较 第 ...

  7. hive学习笔记之三:内部表和外部表

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. hive学习

    大数据的仓库Hive学习  10期-崔晓光 2016-06-20  大数据   hadoop   10原文链接 我们接着之前学习的大数据来学习.之前说到了NoSql的HBase数据库以及Hadoop中 ...

  9. Hive学习之路 (一)Hive初识

    Hive 简介 什么是Hive 1.Hive 由 Facebook 实现并开源 2.是基于 Hadoop 的一个数据仓库工具 3.可以将结构化的数据映射为一张数据库表 4.并提供 HQL(Hive S ...

随机推荐

  1. Android实现仿qq侧边栏效果

    最近从github上看到一个关于侧边栏的项目,模仿的是qq侧边栏. Github地址是https://github.com/SpecialCyCi/AndroidResideMenu ,这个项目是一个 ...

  2. NTP Server

    Network Time Protocol互联网时间协议 NTP is intended to synchronize all participating computers to within a ...

  3. Font Awesome使用简介

      Font awesome是一种用字体来实现图标的CSS插件. 使用方法: 到http://fortawesome.github.io/Font-Awesome/ 下载代码包. 代码包解压到本地后, ...

  4. Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layou

    android无法静态显示ui效果. Missing styles. Is the correct theme chosen for this layout? Use the Theme combo ...

  5. STL与多线程+写时拷贝

    http://blog.csdn.net/liuxuejiang158blog/article/details/13251379 STL并不是线程安全的,当多个线程同时读取STL时没什么问题.当多个线 ...

  6. 将 Shiro 作为应用的权限基础 二:shiro 认证

    认证就是验证用户身份的过程.在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法.最常见的“实体/凭证”组合便是“用户名/密码”组合. 一. ...

  7. UVA 10700 Camel trading 无括号的表达式 贪心

    题意:给出只包含数字和+*的表达式,你可以自己安排每一个运算的顺序,让你找出表达式可能得到的最大值和最小值. 很明显,先乘后加是最小值,先加后乘能得到最大值. 其实不是很明显... 证明下: 数字的范 ...

  8. webstorm激活+汉化教程

    1.安装教程+激活 输入的激活网址: http://idea.imsxm.com/ 2.汉化教程 软件适用于:webstorm2017.2以及以上,如有需要可直接加本人QQ 1940694428.

  9. iOS多线程与网络开发之多线程NSThread

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  10. margin 负边距应用

    margin-right:负值,在没有设置DOM元素宽度的前提下,DOM元素宽度变宽. <!DOCTYPE html> <html lang="zh-CN"> ...