hive常见操作
配置元数据存储到mysql数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <? xml version="1.0"?> <? xml-stylesheet type="text/xsl" href="configuration.xsl"?> < configuration > < property > < name >javax.jdo.option.ConnectionURL</ name > < value >jdbc:mysql://hadoop102:3306/metastore?createDatabaseIfNotExist=true</ value > < description >JDBC connect string for a JDBC metastore</ description > </ property > < property > < name >javax.jdo.option.ConnectionDriverName</ name > < value >com.mysql.jdbc.Driver</ value > < description >Driver class name for a JDBC metastore</ description > </ property > < property > < name >javax.jdo.option.ConnectionUserName</ name > < value >root</ value > < description >username to use against metastore database</ description > </ property > < property > < name >javax.jdo.option.ConnectionPassword</ name > < value >000000</ value > < description >password to use against metastore database</ description > </ property > </ configuration > |
基本数据类型
Hive数据类型 |
Java数据类型 |
长度 |
例子 |
TINYINT |
byte |
1byte有符号整数 |
20 |
SMALINT |
short |
2byte有符号整数 |
20 |
INT |
int |
4byte有符号整数 |
20 |
BIGINT |
long |
8byte有符号整数 |
20 |
BOOLEAN |
boolean |
布尔类型,true或者false |
TRUE FALSE |
FLOAT |
float |
单精度浮点数 |
3.14159 |
DOUBLE |
double |
双精度浮点数 |
3.14159 |
STRING |
string |
字符系列。可以指定字符集。可以使用单引号或者双引号。 |
‘now is the time’ “for all good men” |
TIMESTAMP |
|
时间类型 |
|
BINARY |
|
字节数组 |
|
集合数据类型
数据类型 |
描述 |
语法示例 |
STRUCT |
和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。 |
struct() |
MAP |
MAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素 |
map() |
ARRAY |
数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用。 |
Array() |
建表语句实例
1 2 3 4 5 6 7 8 9 10 | create table test( name string, friends array<string>, children map<string, int >, address struct<street:string, city:string> ) row format delimited fields terminated by ',' collection items terminated by '_' map keys terminated by ':' lines terminated by '\n' ; |
DDL语句
建表语法
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 | ALTER TABLE table_name CHANGE [ COLUMN ] col_old_name col_new_name column_type [COMMENT col_comment] [ FIRST | AFTER column_name] |
增加和替换列
ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
DML语句
数据导入
load导入数据
load data [local] inpath '/opt/module/datas/student.txt' overwrite | into table student [partition (partcol1=val1,…)];
insert导入数据
1 2 3 4 5 6 7 8 | insert into table student partition( month = '201709' ) values (1, 'wangwu' ); insert overwrite table student partition( month = '201708' ) select id, name from student where month = '201709' ; from student insert overwrite table student partition( month = '201707' ) select id, name where month = '201709' insert overwrite table student partition( month = '201706' ) select id, name where month = '201709' ;<br><br> |
创建表导入数据
1 2 3 4 5 6 7 | create table if not exists student5( id int , name string ) row format delimited fields terminated by '\t' location '/user/hive/warehouse/student5' ; dfs -put /opt/module/datas/student.txt / user /hive/warehouse/student5; |
import导入数据
1 2 | import table student2 partition( month = '201709' ) from '/user/hive/warehouse/export/student' ; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!