91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hive如何創建內部表

發布時間:2021-12-10 09:25:08 來源:億速云 閱讀:269 作者:小新 欄目:大數據

這篇文章主要介紹Hive如何創建內部表 ,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

之前說的是外部表,當把EXTERNAL關鍵字去掉的時候就是內部表了。為什么叫內部表,因為這種表,Hive會(或多或少地)控制著數據的生命周期。

如果你熟悉Hive那你一定知道,Hive默認情況下會將這些表的數據存儲在由配置項 hive.metastore.warehouse.dir (例如,/user/hive/warehouse)所定義的目錄的子目錄下。

當我們刪除一個內部表時,Hive也會刪除這個表中數據。相應的,內部表不方便和其他工作共享數據。例如,有一份數據正在被其他程序使用,同時我們還想使用Hive在這份數據上執行一些查詢,可是并沒有給予Hive對數據的所有權,我們可以創建一個外部表指向這份數據,而并不需要對其具有所有權。那內部表如果想要這份數據怎么辦呢,用LOAD。

LOAD DATA LOCAL INPATH /data/ OVERWRITE INTO TABLE ods_login PARTITION (dt='2020-03-01');
  • OVERWRITE:覆蓋

如果用戶指定了 OVERWRITE關鍵字,那么目標文件夾中之前存在的數據將會被先刪 除掉。如果沒有這個關鍵字,僅僅會把新增的文件增加到目標文件夾中而不會刪除之 前的數據。如果目標文件夾中已經存在和裝載的文件同名的文件,那么舊的同 名文件將會被覆蓋重寫。

  • PARTITION:導入分區

如果分區目錄不存在的話,這個命令會先創建分區目錄,然后再將數據拷貝到該目錄下。如果目標表是非分區表,那么語句中應該省略PARTITION子句。

通常情況下指定的路徑應該是一個目錄,而不是單個獨立的文件。Hive會將所有文件 都拷貝到這個目錄中。這使得用戶將更方便地組織數據到多文件中,同時,在不修改 Hive腳本的前提下修改文件命名規則。不管怎么樣,文件都會被拷貝到目標表路徑下 而且文件名會保持不變。

如果使用了 LOCAL這個關鍵字,那么這個路徑應該為本地文件系統路徑。數據將會被 拷貝到目標位置。如果省略掉LOCAL關鍵字,那么這個路徑應該是HDFS的路徑。這種情況下,數據是從這個路徑轉移到目標位置的。

之前提到過Hive的schema on read,這種模式的優勢是load data 非常迅速,因為它不需要讀取數據進行解析,僅僅進行文件的復制或者移動。Mysql的寫時模式的優勢是提升了查詢性能,因為預先解析之后可以對列建立索引,并壓縮,但這樣也會花費要多的加載時間。

需要注意的是:

  • 如果加載的文件在HDFS上,此文件會被移動到表路徑中;

  • 如果加載的文件在本地,此文件會被復制到HDFS的表路徑中;

  • 會為每一個待導入的文件,啟動一個MR任務進行導入。

如同內部表一樣,外部表在創建表時也需要指定數據表所在的數據文件的路徑——以下簡稱為表路徑。如果沒有指定,Hive會自動分配一個。自動分配的目錄是hive主目錄下的以表名命名目錄;

如果創建外部表時,指定表的數據存儲目錄。Hive會將此目錄下已有的所有文件作為表的數據文件,在查詢時進行解析。此時,Hive仍會在hive的目錄下創建以表名命名的目錄,但目錄內的內容為空。


以上是“Hive如何創建內部表 ”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富阳市| 霍邱县| 卫辉市| 桃江县| 昌图县| 德化县| 阳泉市| 五河县| 二连浩特市| 东城区| 彭州市| 界首市| 唐山市| 赤壁市| 霍林郭勒市| 土默特右旗| 洪江市| 嘉黎县| 昔阳县| 高密市| 正蓝旗| 泽州县| 上饶市| 嘉峪关市| 磐安县| 阿克苏市| 仁化县| 贺州市| 茂名市| 比如县| 当阳市| 广水市| 买车| 金平| 定结县| 收藏| 基隆市| 澄江县| 乌鲁木齐市| 亚东县| 周宁县|