【hive】Hive对数据库,对表的操作(一)

知识点看ppt,以下进行个人瞎编的模拟实践:

要求:创建一个数据库名为 weather 的数据库。

此时你为了展示你的专业程度,不选择使用 create database weather ,而是为了充分向老板展示专业,选择 if not exists 避免重复建库,用 comment 关键字添加注释说明,用 with dbproperties 指定数据库的属性配置,本来还想用 location 指定数据库在 hdfs 的存储位置,因为默认位置在 /user/hive/warehouse/dbname.db,想了想算了,于是写下:

复制代码
create database if not exists weather comment "this is tianqi" with dbproperties ('creator' = 'zhangsan','data'='2025-04-17');

要求:向老板展示你的成果。

于是你输入 describe database extended 用于查看数据库信息的命令。

复制代码
describe database extended weather;

要求:检查当前会话是否使用 weather 数据库。

当你 use weather 准备开始对数据表工作时,面对这无趣的要求,知道这是老板想考验你,你知道 show databases 是查看所有的数据库的你,于是输入 select current_database() 来查看当前正在使用的数据库。

复制代码
select current_database();

要求:随便创建一个 temp 表

复制代码
create table temp(id string);

此时你已经想删库跑路了,你知道 drop database weather 只能针对空白数据库,于是你加上关键字 CASCADE 就可以删除带有表的数据库了

复制代码
drop database if exists weather CASCADE;

删完后老板决定重视你,找你升职加薪,布置新任务了,于是你又把 weather 数据库搞回来。

要求:创建 temperature 表,相应的字段有 id,year,temperature

你知道要导入的数据是以逗号分割,于是你果断再后面加上 row format delimited fields terminated by ',';

复制代码
create table if not exists temperature(id string,year string,temperature int) row format delimited fields terminated by ',';

要求:备份一份表

你知道 like temperature 可以复制表结构,虽然表里面没有数据,但你还是选择更专业的 as select * from temperature 同时复制结构和数据。甚至不忘在新的表设置分隔符 row format delimited fields terminated by ','

复制代码
create table temperature_back row format delimited fields terminated by ',' as select * from temperature;

要求:将对应的数据集,station.log 和 temperature.log 导入到表中

你知道有 本地路径 和 hdfs 路径两种方式通过 hive 的 load data 导入,于是你 temperature.log 使用hdfs路径, station.log 使用本地路径

复制代码
hadoop fs -mkdir /hive-data
hadoop fs -put ~/hadoop-2.9.2/study-hive-data/* /hive-data
hive
hive> load data inpath '/hive-data/temperature.log' into table temperature;

hive
hive> create table if not exists station(id string,latitude string,longitude string,state string) row format delimited fields terminated by ',';
hive> load data local inpath '/home/hadoop/hadoop-2.9.2/study-hive-data/station.log' overwrite into table station;

最后,你还想说,你还会数据导出和备份与恢复:

数据导出:

使用 INSERT OVERWRITE LOCAL DIRECTORY 'filepath' 语句,

把数据从Hive表中导出到本地文件系统或HDFS

备份与恢复:

EXPORT TABLE table_name to 'filepath'

使用 EXPORT 命令,对表中的数据进行备份,表的结构也会一并导出;

相关推荐
不可求~3 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
Lumistory3 小时前
城市建筑照明的落地与长效运营观察
大数据·数据库·中间件·光照贴图
围炉聊科技5 小时前
长期免费的数据库方案——零成本基建系列
数据库
AC赳赳老秦6 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
梁辰兴7 小时前
软件工程:数据结构设计
数据库·软件工程·设计原则·设计方法·梁辰兴·数据库结构设计·数据库结构类型
AC赳赳老秦8 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
灯澜忆梦9 小时前
【MySQL18】进阶篇 | MySQL管理
数据库·mysql
zcmodeltech9 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
AI多Agent协作实战派9 小时前
AI多Agent协作系统实战(四十):AI说“没有错误“,系统判了“测试失败“——一个正则的误判
数据库·人工智能
隔窗听雨眠10 小时前
OceanBase接入DeepSeek:数据库与AI的深度融合如何改写企业数据规则
数据库·人工智能·oceanbase