Hive入门概念

文章介绍了Hive数据仓库的架构,包括其基于MapReduce的执行器和HDFS的数据存储。详细阐述了DDL操作,如库表操作、内部表与外部表的区别,以及分区表的概念,包括二级分区和动态分区。此外,还讨论了分桶表的作用和数据的导入导出方法,如INSERT、LOAD、EXPORT和IMPORT。
摘要由CSDN通过智能技术生成

数据仓库 Hive

  • 基于:
    执行器 Mapreduce
    数据存储 HDFS
    元数据存储 关系型数据库

* 架构原理

在这里插入图片描述

  • Meta
    表定义,表与HDFS映射
    元数据包括:表名、字段名、字段类型、关联HDFS文件路径等这些数据库的Meta信息

  • 数据存储
    数据:存储在HDFS

  • 查询过程
    接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。

DDL

库、表操作

内部表&外部表
  • 管理表、内部表
    删除:元数据与HDFS都会删除

  • 外部表
    删除:只删除元数据

* 分区表

(多个文件归类在不同目录)

  • 背景
    表数据量太大,对存储路径进行分区存放,查询时就能避免全量扫描

  • 原理:
    hive分区 就是进行 分目录。把数据分目录存放。

  • 常见用法:
    根据日期分区, 建一些日期目录, 每个目录下都是当天的数据

二级分区

按天分区后再按小时分区

动态分区
分桶表

(一个文件拆分成多个文件存放)

表、分区 单个数据文件过大
进行更加细粒度的数据范围划分, 对数据文件分桶

数据导入、导出

  • AS SELECT
    建表时导入select数据
create table 'table_name1' 
as select xxx from 'table_name2'
  • LOCATION
    建表时加载数据路径
create table 'table_name' (field)
location '/data_path'
  • INSERT 插入数据
-- 追加
insert into table 'table_name' values('value');
-- 覆盖
insert overwrite table 'table_name' values('value');


-- 插入到本地 = 导出
insert overwrite local directory 'local_path' select * from 'table_name'
-- 插入到HDFS
insert overwrite directory 'hdfs_path' select * from 'table_name'
  • LOAD 加载数据路径
load data [local] inpath '/data_path' [overwrite] into table 'table_name' [partition] 
  • EXPORT, IMPORT

DML

SELECTS and FILTERS
GROUP BY

join

multitable insert
streamin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xyc1211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值