1. 程式人生 > >大數據之hiveSQL

大數據之hiveSQL

apr write other 復制 creat 支持 new 描述 rect

最近增加了學習java基礎算法,包括幾種排序算法,二叉樹(前序,後序,中序),隊列和棧,bmp搜索,廣義搜索算法,叠代等等一些技巧(自己動手絕對比單純的理論要強的多,多練練)

HIVE是hadoop生態圈的重要一環,降低了hadoop的開發難度,將復雜冗余的代碼綜合成一個個簡單的SQL語句。但是,很明顯不如傳統的MapReduce靈活,但是提高了項目的開發效率,學習成本低。

主要通過學習視頻加上各種博客和其它資料,學習基礎的入門SQL語句可以從菜鳥教程上面,hive語法的我主要看的是--> https://www.cnblogs.com/HondaHsu/p/4346354.html

HiveSQL主要分為DDL 和DML

DDL

1.創建表

create [local] table table_name (column_name column_type [commet ‘描述‘],...)

partitioned by (column_name,...)

clustred by (column_name,..)

order by(column_name) // 註意與sort by 的區別 前者是全局 後者是當前主機

row format delimited

field terminated by char;

stored as ...

localtion hdfs_path

復制一個表結構

create table table_name like like_table_name;

2.修改表

alter table table_name/column_name rename to new_table_name/column_new_name; //修改表名

alter table table_name change [column] column_name column_new_name column_new_name_type [commet] //修改列名

alter table table_name drop cloumn_name/partition_sec;

alter table table_name add column(column_name column_type)

alter table table_name set fileformat new_format;

3刪除表,分區

drop table table_name;

alter table table_name drop partition_sec;

4創建數據庫

create database database_name;

show databases;

DML

hive 沒有insert into 不支持一條一條的插入,可以使用insert overwrite , load data [local]

insert overwrite table table_name

select * from other_table;

local data [local] path ‘url‘ into table table_name [partition]

hive 不支持等值連接 類似

select * from table1 a and table b where a.cloumn = b.column;

可以使用 left semi join 代替

insert overwrite 可以直接導出去

insert overwrite [LOCAL] directory ‘ ‘ select * from table;

另外hive中 join只支持等值查詢

select a.column b.column from table_name1 a join table_name2 b on a.column = b.column;

DQL

select [column_name1,..] from table_name

[where where_condition] /[join .. on .. ]

[group by]

[order by]/[sort by]

[partition]

[limit num]

可能有些地方有些問題,還有很多需要補充。

大數據之hiveSQL