大數據之hiveSQL
最近增加了學習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