Hive知识

Posted 诸葛小四

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive知识相关的知识,希望对你有一定的参考价值。

HIVEQL

CREATE DATABASE financials(创建数据库)

SHOW DATABASES(显示数据库)

SHOW TABLES IN 数据库(列出数据库的所有表)

SHOW DATABASES LIKE \'h.*\';(显示类似h以后任意多个字符)

LOCATION \'/MY/preferred/directory\';(指定数据库存放的路径)

COMMENT \'**\';(添加一个说明表)

DESCRIBE DATABASE financials(显示finacials数据库的一些信息))

DESCRIBE EXTENDEN table(列出表table的详细属性))

WITH DBPROPERTIES(‘*’,‘*’,)(添加注释说明的信息)

USE financials(切换到某个数据库下)

DROP DATABASE financials;(删除数据库)

ALTER DATABASE financials (修改数据库)

外部表

CREATE EXTERNAL TABLE stocks(创建外部表)

ROW FORMAT DELIMITED FIELDS TERMINATED BY \',\'

LOCATION \'/data/stocks\';

分区表:

CREATE TABLE employees()

PARTITIONED BY(country STRING,state STRING);

一种有效减少io量的手段

//显示分区为us的所有字分区

SHOW PARTITIONS employees PARTITION(country=\'US\')

load data语句

LOAD DATA LOCAL INPATH \'${env:HOME}/california-employees\'

OVERWRITE INTO TABLE employees

PARTITION (country=\'us\',state=\'CA\');

Insert overwrite语句//把一个没有分区的表变成分区的表方式

INSERT OVERWRITE TABLE employees 

PARTITION (country=‘us’,state=‘or’)

SELECT * FROM STAGED_employees se

WHERE se.cnty=\'us\' AND se.st=\'or\';

Dynamic Partition inserts动态分区表

INSERT OVERWRITE TABLE employees

PARTITION (country,state)

SELECT ...., se.cty, se.st

FROM staged_employees se

WHERE se.cnty=\'us\';

Create table ...as select...

CREATE TABLE CA_employees

AS SELECT name,salary,address

FROM emplyees

WHERE se.state=\'CA\' ;

导出数据:

INSERT OVERWRITE LOCAL DIRECTORY\'/tmp/data\'

SELECT name,salary,address

FROM employees

WHERE se.state=\'CA\'

查询语句select

连接操作:

Hiveql支持大部分常见的关系代数连接方式(各种内连接,外连接,半连接)

连接是缓慢的操作

使用map-side joins来优化连接

25000000=25m;

排序:

以上是关于Hive知识的主要内容,如果未能解决你的问题,请参考以下文章

hive知识点总结

Hive基础知识 03

Day13:Hive优化及数据倾斜

hive 基础知识

Hive基础知识 01

Hive基础知识 02