自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL-Hive中常用的表格操作

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
今天我們來(lái)講講Hive中常用的表格操作指令及相關(guān)效果。Hive系列文章預(yù)計(jì)10-20篇,主要講數(shù)據(jù)分析中最基礎(chǔ)的SQL技能。

[[393843]]

本文轉(zhuǎn)載自微信公眾號(hào)「巡山貓說(shuō)數(shù)據(jù)」,作者巡山貓。轉(zhuǎn)載本文請(qǐng)聯(lián)系巡山貓說(shuō)數(shù)據(jù)公眾號(hào)。

今天我們來(lái)講講Hive中常用的表格操作指令及相關(guān)效果。

Hive系列文章預(yù)計(jì)10-20篇,主要講數(shù)據(jù)分析中最基礎(chǔ)的SQL技能。

01-最基礎(chǔ)的建表語(yǔ)句

Hive建表的全部建表語(yǔ)法如下:

  1. CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名 
  2. (列名 data_type [COMMENT 列注釋], ...) 
  3. [COMMENT 表注釋] 
  4. [PARTITIONED BY (列名 data_type [COMMENT 列注釋], ...)] 
  5. [CLUSTERED BY (列名, 列名, ...)  
  6. [SORTED ,BY (列名 [ASC|DESC], ...)] INTO num_buckets BUCKETS] 
  7. [ROW FORMAT row_format] 
  8. [STORED AS file_format] 
  9. [LOCATION hdfs_path] 

所有[ ]中的內(nèi)容都是可選項(xiàng),即可有可無(wú),下面我們分別詳細(xì)介紹。

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名

(列名 data_type)

是建表語(yǔ)句必須有的,舉個(gè)例子,我們要建立一個(gè)用戶啟動(dòng)表:

  1. CREATE TABLE t_od_use_cnt ( 
  2.       date_8 INT 
  3.       ,platform string 
  4.       ,app_version string 
  5.       ,user_id BIGINT 
  6.       ,use_cnt INT 
  7.       ,is_active TINYINT 
  8.       ); 

首先我們建一個(gè)庫(kù)app,然后使用并在其中建表,執(zhí)行效果如下:

  1. hive> create database app; 
  2. OK 
  3. Time taken: 0.899 seconds 
  4. hive> use app; 
  5. OK 
  6. Time taken: 0.03 seconds 
  7. hive> create table t_od_use_cnt( 
  8.     >       date_8 int 
  9.     >       ,platform string 
  10.     >       ,app_version string 
  11.     >       ,user_id bigint 
  12.     >       ,use_cnt int 
  13.     >       ,is_active tinyint 
  14.     >       ); 
  15. OK 
  16. Time taken: 0.389 seconds 

備注:Hive中的關(guān)鍵字大小寫是不區(qū)分的,所有關(guān)鍵字均可使用小寫。

02-查看表結(jié)構(gòu)

執(zhí)行語(yǔ)句:

  1. DESC 表名; 

查詢上一步新建表的字段及字段對(duì)應(yīng)的數(shù)據(jù)類型,運(yùn)行效果如下:

  1. hive> desc t_od_use_cnt; 
  2. OK 
  3. date_8                int                                    
  4. platform              string                     
  5. app_version           string                               
  6. user_id               bigint                                
  7. use_cnt               int                                
  8. is_active             tinyint                                
  9. Time taken: 0.28 seconds, Fetched: 6 row(s) 

03-刪除表

刪除表的語(yǔ)句和刪除庫(kù)的類似,只是把database換成了table,都是使用drop關(guān)鍵字進(jìn)行刪除操作,慎重操作:

  1. DROP TABLE 表名; 

04-建分區(qū)表

Hive中有分區(qū)表的概念,分區(qū)表改變了Hive對(duì)數(shù)據(jù)存儲(chǔ)的組織方式。查詢時(shí)如果我們限定了分區(qū)范圍,Hive就可以直接去相應(yīng)的目錄下查詢數(shù)據(jù),而不需要掃描整個(gè)表,所以當(dāng)數(shù)據(jù)量很大時(shí)可以顯著提高查詢性能。

建立分區(qū)表要使用關(guān)鍵字[PARTITIONED BY (col_name data_type[COMMENT col_comment], ...)] ,注意分區(qū)的字段不可在普通字段中重復(fù)出現(xiàn)。分區(qū)表在工作中十分常見(jiàn),一般來(lái)說(shuō)公司所有的表都會(huì)以日期進(jìn)行分區(qū),以便提高查詢效率。

我們還是以t_od_use_cnt為例,建表語(yǔ)句如下:

  1. CREATE TABLE t_od_use_cnt ( 
  2.       platform string comment '平臺(tái) android,ios' 
  3.       ,app_version string comment 'app版本' 
  4.       ,user_id BIGINT comment '用戶id' 
  5.       ,use_cnt INT comment '當(dāng)日使用次數(shù)' 
  6.       ,is_active TINYINT comment '是否活躍' 
  7.       ) partitioned BY (date_8 INT comment '日期'); 

05-查詢既有建表語(yǔ)句

在公司中需要查詢既有表的建表格式時(shí)使用以下語(yǔ)句即可:

  1. show create table tablename; 

查詢上文已建表格效果如下:

  1. hive> show create table t_od_use_cnt; 
  2. OK 
  3. CREATE TABLE `t_od_use_cnt`( 
  4.   `platform` string COMMENT '平臺(tái) android,ios',  
  5.   `app_version` string COMMENT 'app版本,',  
  6.   `user_id` bigint COMMENT '用戶id',  
  7.   `use_cnt` int COMMENT '當(dāng)日使用次數(shù)',  
  8.   `is_active` tinyint COMMENT '是否活躍'
  9. PARTITIONED BY (  
  10.   `date_8` int COMMENT '日期'
  11. ROW FORMAT DELIMITED  
  12.   FIELDS TERMINATED BY ','  
  13. STORED AS INPUTFORMAT  
  14.   'org.apache.hadoop.mapred.TextInputFormat'  
  15. OUTPUTFORMAT  
  16.   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 
  17. LOCATION 
  18.   'hdfs://hadoop:9000/usr/hive/warehouse/t_od_use_cnt' 
  19. TBLPROPERTIES ( 
  20.   'transient_lastDdlTime'='1556161316'

 

責(zé)任編輯:武曉燕 來(lái)源: 巡山貓說(shuō)數(shù)據(jù)
相關(guān)推薦

2021-05-28 07:36:18

MySQLWhereHive

2021-04-30 08:01:36

SQLHiveSelect

2011-05-26 14:31:57

Oracle數(shù)據(jù)庫(kù)

2010-07-13 10:43:26

SQL Server數(shù)

2019-08-07 16:50:38

SQLjoingroup

2023-03-30 08:00:56

MySQL日期函數(shù)

2021-11-26 09:41:50

繪圖工具軟件工具開(kāi)發(fā)

2019-10-11 08:41:18

JavaMemcached數(shù)據(jù)庫(kù)

2022-06-30 08:31:54

排序函數(shù)SQL

2023-04-11 08:49:42

排序函數(shù)SQL

2010-03-22 10:27:28

Python常用模塊I

2011-01-06 09:28:19

SQL語(yǔ)句

2010-07-05 12:40:56

SQL Server

2018-05-10 16:02:48

Android程序贈(zèng)工具

2010-04-01 09:46:04

Oracle日期函數(shù)

2022-08-30 21:01:17

開(kāi)發(fā)Java框架

2023-03-17 16:49:42

開(kāi)發(fā)Java框架

2024-07-11 11:07:41

2014-11-04 10:34:27

JavaCache

2010-04-06 16:50:07

Oracle數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)