內錶:刪表刪資料 (hdfs上的檔案資料)外表外表:刪表不刪資料(hdfs上的檔案資料)
包含external 的表叫外部表
分割槽表
加入分割槽避免hive select查詢中掃瞄整個表內容,會消耗很多時間做沒必要的工作。(例如每一天的日誌存放在乙個分割槽中,這樣根據特定的日期查詢)
乙個表可以擁有乙個或者多個分割槽,每個分割槽以資料夾的形式單獨存在表資料夾的目錄下。
桶表
對於每乙個表(table)或者分割槽, hive可以進一步組織成桶,也就是說桶是更為細粒度的資料範圍劃分。hive也是 針對某一列進行桶的組織。hive採用對列值雜湊,然後除以桶的個數求餘的方式決定該條記錄存放在哪個桶當中。
桶是以檔案的形式存放在表或者分割槽的目錄下。
把錶(或者分割槽)組織成桶(bucket)有兩個理由:
(1)獲得更高的查詢處理效率。桶為表加上了額外的結構,hive 在處理有些查詢時能利用這個結構。具體而言,連線兩個在(包含連線列的)相同列上劃分了桶的表,可以使用 map 端連線 (map-side join)高效的實現。比如join操作。對於join操作兩個表有乙個相同的列,如果對這兩個表都進行了桶操作。那麼將儲存相同列值的桶進行join操作就可以,可以大大較少join的資料量。
(2)使取樣(sampling)更高效。在處理大規模資料集時,在開發和修改查詢的階段,如果能在資料集的一小部分資料上試執行查詢,會帶來很多方便。
Hive知識之內外部表和分割槽表
2 分割槽表 1 內外部表create external table ifnot exists 表名.1.1 內部表 1.2 外部表 2 分割槽表create external table ifnot exists 表名.partitioned by 列名 資料型別 comment 本列注釋 2.1...
Hive分割槽表與分桶
在hive select查詢中,一般會掃瞄整個表內容,會消耗很多時間做沒必要的工作。分割槽表指的是在建立表時,指定partition的分割槽空間。分割槽語法 分割槽表操作增加分割槽 刪除分割槽 alter table employees drop ifexists partition country...
hive表型別 桶表 分割槽表
hive表型別 桶表 桶表是對資料進行雜湊取值,然後放到不同檔案中儲存。建立表create table t bucket id string clustered by id into 3 buckets 載入資料 set hive.enforce.bucketing true insert into...