日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive的HQL(2)

發布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive的HQL(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hive基礎(1)

Hive的HQL(2)

1. HQL的數據定義,HQL是一種SQL方言,支持絕大部分SQL-92標準。但是和SQL的差異為:不支持行級別的操作,不支持事務等。HQL的語法接近于MySQL。

2. Hive的數據庫,本質僅僅是個表的目錄或者命名空間。一般用數據庫將生產表組織成邏輯組。

3. Hive中的表–管理表,創建表時未指定的話為默認為管理表。當刪除管理表時,Hive將刪除管理表中的數據和元數據。

CREATE TABLE IF NOT EXISTS test.student ( name STRING COMMENT 'student name', age INT COMMENT 'student age', cource ARRAY<STRING>, body MAP<STRING,FLOAT>, address STRUCT<STRING,CITY:STRING,STATE:STRING>) COMMENT 'the info of student' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' COLLECTION ITEMS TERMINATED BY '\002' MAP KEYS TEMINATED BY '\003' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/user/hive/warehouse/test.db/student';
  • COMMENT注釋作用
  • ROW FORMAT DELIMITED等指定數據格式和文件存儲格式。
  • LOCATION子句指定該表的存儲位置,若不寫存儲在Hive默認的數據倉庫目錄中。

4. Hive中的表–外部表,當數據需要被多個工具(如Pig、Hive)共享時,創建一個外部表明確數據的所有權,Hive只會刪除該表的元數據信息,而不會刪除該表的數據。

CREATE EXTERNAL TABLE IF NOT EXISTS test.student( name STRING COMMENT, age INT COMMENT, cource ARRAY<STRING>, body MAP<STRING,FLOAT>, address STRUCT<STREET:STRING,CITY:STRING,STATE:STRING>) LOCATION '/user/test/x'
  • EXTERNAL TABLE 創建一個外部表

5. Hive中的表–分區表(partition),分區表可以進行水平切分,將表數據按照某種規則進行存儲。

CREATE TABLE student_info( student_ID STRING, name STRING, age INT, sex STRING, father_name STRING, mother_name STRING) PARTITIONED BY (province STRING,city STRING);
  • PARTITIONED BY 子句指定表按照學生家庭住址的city和province字段進行分區。
  • /user/hive/warehouse/student_info/province=hebei/city=handan
  • 分區的作用相當和索引類似。
  • Hive安全措施,設置“strict”模式,這樣如果針對一個分區表的查詢沒有對分區進行限制的話,改作業將會被禁止提交。
  • 單獨為外部表的分區指定值和存儲位置
ALTER TABLE student_info ADD PARTITION (province = hebei,city = handan) LOCATION 'hdfs://master:9000/student/hebei/handan'
  • 外部分區表被刪除,數據不會被刪除。

6. 刪除表 DROP TABLE test 或者 DROP TABLE IF EXISTS test

7. 修改表

  • 表重命名 ALTER TABLE test RENAME TO test2
  • 增加、修改、刪除分區
    • 增加分區 ALTER TABLE test ADD PARTITION (x = x1, y = y2) LOCATION ‘/user/test/x1/y1’
    • 修改分區 ALTER TABLE test ADD PARTITION (x = x1, y = y2) SET LOCATION ‘/user/test/x1/y1’
    • 刪除分區 ALTER TABLE test ADD DROP PARTITION (x = x1, y = y2)
  • 修改列信息
    ALTER TABLE test
    CHANGE COLUMN id uid INT
    COMMENT ‘the unique id’
    AFTER name;
  • 增加列
    ALTER TABLE test ADD COLUMNS (new_col INT, new_col2 STRING);
  • 刪除或者替換列
    ALTER TABLE test REPLACE COLUMNS (new_col INT, new col2 STRING);

8. HQL的數據操作 LOAD DATA

轉載于:https://www.cnblogs.com/lanzhi/p/6467709.html

總結

以上是生活随笔為你收集整理的Hive的HQL(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。