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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hive表定义(3种方式)

發(fā)布時間:2025/3/11 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive表定义(3种方式) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


創(chuàng)建表

方式一

建表語法

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]

?

說明:

1、?CREATE TABLE 創(chuàng)建一個指定名字的表。如果相同名字的表已經(jīng)存在,則拋出異常;用戶可以用 IF NOT EXISTS?選項來忽略這個異常

2、?EXTERNAL關(guān)鍵字可以讓用戶創(chuàng)建一個外部表,在建表的同時指定一個指向?qū)嶋H數(shù)據(jù)的路徑(LOCATION),Hive 創(chuàng)建內(nèi)部表時,會將數(shù)據(jù)移動到數(shù)據(jù)倉庫指向的路徑;若創(chuàng)建外部表,僅記錄數(shù)據(jù)所在的路徑,不對數(shù)據(jù)的位置做任何改變。在刪除表的時候,內(nèi)部表的元數(shù)據(jù)和數(shù)據(jù)會被一起刪除,而外部表只刪除元數(shù)據(jù),不刪除數(shù)據(jù)。

3、?LIKE 允許用戶復(fù)制現(xiàn)有的表結(jié)構(gòu),但是不復(fù)制數(shù)據(jù)。

4、?ROW FORMAT

DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]

????????[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]

???| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]

用戶在建表的時候可以自定義 SerDe 或者使用自帶的 SerDe。如果沒有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,將會使用自帶的 SerDe。在建表的時候,用戶還需要為表指定列,用戶在指定表的列的同時也會指定自定義的 SerDe,Hive通過 SerDe 確定表的具體的列的數(shù)據(jù)。

5、?STORED AS

SEQUENCEFILE|TEXTFILE|RCFILE

如果文件數(shù)據(jù)是純文本,可以使用 STORED AS TEXTFILE。如果數(shù)據(jù)需要壓縮,使用 STORED AS SEQUENCEFILE。

?

6、CLUSTERED BY

對于每一個表(table)或者分區(qū), Hive可以進一步組織成桶,也就是說桶是更為細粒度的數(shù)據(jù)范圍劃分。Hive也是 針對某一列進行桶的組織。Hive采用對列值哈希,然后除以桶的個數(shù)求余的方式?jīng)Q定該條記錄存放在哪個桶當(dāng)中。

把表(或者分區(qū))組織成桶(Bucket)有兩個理由:

1)獲得更高的查詢處理效率。桶為表加上了額外的結(jié)構(gòu),Hive 在處理有些查詢時能利用這個結(jié)構(gòu)。具體而言,連接兩個在(包含連接列的)相同列上劃分了桶的表,可以使用 Map 端連接 (Map-side join)高效的實現(xiàn)。比如JOIN操作。對于JOIN操作兩個表有一個相同的列,如果對這兩個表都進行了桶操作。那么將保存相同列值的桶進行JOIN操作就可以,可以大大較少JOIN的數(shù)據(jù)量。

2)使取樣(sampling)更高效。在處理大規(guī)模數(shù)據(jù)集時,在開發(fā)和修改查詢的階段,如果能在數(shù)據(jù)集的一小部分?jǐn)?shù)據(jù)上試運行查詢,會帶來很多方便。



顯示所有表

hive>SHOW TABLES [in 數(shù)據(jù)庫名];


hive>CREATE TABLE t2 LIKE t1;

實際開中,擔(dān)心影響原來的表,可以用like命令,復(fù)制個表,然后再對復(fù)制表操作。


hive>DESC/DESCRIBE [formatted] t2;


hive (zmgdb)> describe formatted t1;
OK
col_name ? ? ? ?data_type ? ? ? comment
# col_name ? ? ? ? ? ? ?data_type ? ? ? ? ? ? ? comment ? ? ? ? ? ??
? ? ? ? ? ? ? ? ?
str ? ? ? ? ? ? ? ? ? ? string ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?
# Detailed Table Information ? ? ? ? ? ??
Database: ? ? ? ? ? ? ? zmgdb ? ? ? ? ? ? ? ? ? ?
Owner: ? ? ? ? ? ? ? ? ?hadoop ? ? ? ? ? ? ? ? ??
CreateTime: ? ? ? ? ? ? Wed Sep 14 21:27:59 CST 2016 ? ??
LastAccessTime: ? ? ? ? UNKNOWN ? ? ? ? ? ? ? ? ?
Retention: ? ? ? ? ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ?
Location: ? ? ? ? ? ? ? hdfs://hello110:9000/user/hive/warehouse/zmgdb.db/t1 ? ??
Table Type: ? ? ? ? ? ? MANAGED_TABLE ? ? ? ? ? ?
Table Parameters: ? ? ? ? ? ? ? ?
? ? ? ? numFiles ? ? ? ? ? ? ? ?1 ? ? ? ? ? ? ? ? ??
? ? ? ? numRows ? ? ? ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ??
? ? ? ? rawDataSize ? ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ??
? ? ? ? totalSize ? ? ? ? ? ? ? 209 ? ? ? ? ? ? ? ??
? ? ? ? transient_lastDdlTime ? 1473860579 ? ? ? ? ?
? ? ? ? ? ? ? ? ?
# Storage Information ? ? ? ? ? ?
SerDe Library: ? ? ? ? ?org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe ? ? ??
InputFormat: ? ? ? ? ? ?org.apache.hadoop.mapred.TextInputFormat ? ? ? ??
OutputFormat: ? ? ? ? ? org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat ? ? ??
Compressed: ? ? ? ? ? ? No ? ? ? ? ? ? ? ? ? ? ??
Num Buckets: ? ? ? ? ? ?-1 ? ? ? ? ? ? ? ? ? ? ??
Bucket Columns: ? ? ? ? [] ? ? ? ? ? ? ? ? ? ? ??
Sort Columns: ? ? ? ? ? [] ? ? ? ? ? ? ? ? ? ? ??
Storage Desc Params: ? ? ? ? ? ??
? ? ? ? serialization.format ? ?1 ? ? ? ? ? ? ? ? ??
Time taken: 0.065 seconds, Fetched: 29 row(s)



方式二

通過create......as........select

[html]?view plain?copy
  • CREATE?TABLE?default.weblog_comm??
  • AS?select?ip,?time,?req_url?from?default.weblog;???

  • 方式三

    通過like 復(fù)制。

    [html]?view plain?copy
  • CREATE?TABLE?IF?NOT?EXISTS?default.weblog_20150923??
  • ????LIKE?default.weblog?;?

  • 上面三種方式和關(guān)系型數(shù)據(jù)庫的sql是一樣的,除了第一種有點區(qū)別。




    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的hive表定义(3种方式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。