Hive客戶端基本操作


一:DDL

  1:創建數據庫

     CREATE DATABASE [IF NOT EXISTS] database_name

      [COMMENT database_comment]                                                   //對數據庫的描述

 

      [LOCATION hdfs_path]                   //手動設置數據庫存儲路徑

 

      [WITH DBPROPERTIES (property_name=property_value, ...)];    //增加數據庫的屬性(鍵值對)
    

 

  2:創建表  

    CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
    [(col_name data_type [COMMENT col_comment], ...)]                
    [COMMENT table_comment]
    [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
    [CLUSTERED BY (col_name, col_name, ...)
    [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
    [ROW FORMAT row_format]
    [STORED AS file_format]
    [LOCATION hdfs_path]
    [TBLPROPERTIES (property_name=property_value, ...)]
    [AS select_statement]

 

   字段說明:

        (1)CREATE TABLE 創建一個指定名字的表。如果相同名字的表已經存在,則拋出異 常;用戶可以用 IF NOT EXISTS 選項來忽略這個異常。
        (2)EXTERNAL 關鍵字可以讓用戶創建一個外部表,在建表的同時可以指定一個指向 實際數據的路徑(LOCATION),在刪除表的時候,內部表的元數據和數據會被一起刪 除,而外部表只刪除元數據,不刪除數據。
        (3)COMMENT:為表和列添加注釋。
        (4)PARTITIONED BY 創建分區表
        (5)CLUSTERED BY 創建分桶表
        (6)SORTED BY 不常用,對桶中的一個或多個列另外排序

 

        (8)STORED AS 指定存儲文件類型 常用的存儲文件類型:SEQUENCEFILE(二進制序列文件)、TEXTFILE(文本)、 RCFILE(列式存儲格式文件) 如果文件數據是純文本,可以使用 STORED AS TEXTFILE。如果數據需要壓縮,使

 

           用 STORED AS SEQUENCEFILE。

 

        (9)LOCATION :指定表在 HDFS 上的存儲位置。

 

        (10)AS:后跟查詢語句,根據查詢結果創建表。

 

        (11)LIKE 允許用戶復制現有的表結構,但是不復制數據。
    
    (1)創建普通表
      
 
    (2)創建分區表
      
 
    (3)創建分桶表

 

       

 

 

二:DML

    1:數據導入

         (1)

          

        (2)

····        

        (3)

          

     2:數據導出

         

    3:清除表中數據

       truncate table student;    //只能清除管理表數據

 

三:DQL

  練習

    

    

    

 

四:其他常用查詢函數

  1:

    NVL:給值為 NULL 的數據賦值,它的格式是 NVL( value,default_value)。它的功能是

 

    如果 value 為 NULL,則 NVL 函數返回 default_value 的值,否則返回 value 的值,如果兩個

 

    參數都為 NULL ,則返回 NULL。
 
  2:
    CASE WHEN
 
  3:
    行轉列:CONCAT
 
  4:
    列轉行:EXPLODE
 
  5:開窗函數
    OVER():指定分析函數工作的數據窗口大小,這個數據窗口大小可能會隨着行的變而變化。
    CURRENT ROW:當前行
    n PRECEDING:往前 n 行數據
    n FOLLOWING:往后 n 行數據
    UNBOUNDED:起點,UNBOUNDED PRECEDING 表示從前面的起點,
    UNBOUNDED
    FOLLOWING 表示到后面的終點
    LAG(col,n,default_val):往前第 n 行數據
    LEAD(col,n, default_val):往后第 n 行數據

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM