Hive 03_DML、SerDe、Beeline、JDBC
Hive DML
——LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
——移動數據文件到Hive表相應的位置。
——FROM from_statement
INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 [INSERT OVERWRITE TABLE tablename2 [PARTITION ... [IF NOT EXISTS]] elect_statement2]
[INSERT INTO TABLE tablename2 [PARTITION ...] select_statement2] ...;
?Delete
Update
Deletes can only be performed on tables that support ACID. See Hive Transactions for details?
?
?
Hive SerDe - Serializer and Deserializer
SerDe 用于做序列化和反序列化。
構建在數據存儲和執行引擎之間,對兩者實現解耦。
Hive通過ROW FORMAT DELIMITED以及SERDE進行內容的讀寫。
row_format
: DELIMITED
??????????[FIELDS TERMINATED BY char [ESCAPED 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, ...)]
?
Hive正則匹配
?CREATE TABLE logtbl (
????host STRING,
????identity STRING,
????t_user STRING,
????time STRING,
????request STRING,
????referer STRING,
????agent STRING)
??ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
??WITH SERDEPROPERTIES (
????"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) \\[(.*)\\] \"(.*)\" (-|[0-9]*) (-|[0-9]*)"
??)
??STORED AS TEXTFILE;
?
Beeline
Beeline 要與HiveServer2配合使用
服務端啟動hiveserver2 ???啟動元數據服務
客戶的通過beeline兩種方式連接到hive
1、beeline -u jdbc:hive2://localhost:10000/default -n root
2、beeline
beeline> !connect jdbc:hive2://<host>:<port>/<db>;auth=noSasl root 123
默認 用戶名、密碼不驗證
?
Hive JDBC運行方式
服務端啟動hiveserver2后,在java代碼中通過調用hive的jdbc訪問默認端口10000進行連接、訪問
?
總結
以上是生活随笔為你收集整理的Hive 03_DML、SerDe、Beeline、JDBC的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 异常处理——Logging initia
- 下一篇: Hive 05_hive变量、动态分区
