欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > hive+hadoop架构数仓使用

hive+hadoop架构数仓使用

2025/2/23 1:28:36 来源:https://blog.csdn.net/hubuwch/article/details/144431248  浏览:    关键词:hive+hadoop架构数仓使用

文章目录

    • 前言
    • 分析数据
    • 建表
    • 上传数据
    • 查看
    • 其他复杂数据类型建表
      • 默认分割符
    • 指定数据存储路径
    • 内部表和外部表
    • 分区表
      • 数据文件
      • 静态分区
      • 动态分区
      • hive起到的作用
    • hive和MySQL的区别
    • 问题自查

前言

hive数仓里的表有两个维度,元数据(数据表结构)和数据文件,其中元数据存储到MySQL上,数据文件存储到hdfs上

分析数据

user.txt 人口数据示例

1	张三	男	湖北省	武汉市	27	联投花山郡	
2	李四	女	湖北省	宜昌市	23	联投瑞园
3	王五	男	湖南省	长沙市	28	长方云西府
4	赵六	女	湖南省	岳阳市	32	中建大公馆
5	刘二	男	湖北省	咸宁市	46	步步高广场

数据采用tab符分隔,数据列依次是 编号 姓名 性别 省 市 年龄 居住小区

建表

create table t_user(id int comment "ID",name string comment "名称",sex string comment "性别",provice string comment "所处省",city string comment "所处市",age int comment "年龄",house string comment "居住小区"
) comment "人口信息"row format delimitedfields terminated by "\t";

查看表

# 该指令查询的是元数据
show tables;

上传数据

将user.txt数据上传到所建t_user表下,由于建的表都会在hdfs文件系统中生成一个文件夹,可以直接将数据文件上传到hdfs文件夹中

[root@yd-ss data]# su hadoop
[hadoop@yd-ss data]$ hdfs dfs -put ./user-xueli.txt  /home/datahouse/hive/warehouse/test.db/t_user

上传数据时,是可以上传多个文件的,但结构得是一样的。上传多个文件后,执行sql查询的结果会像操作一张表一样。

这里也可以使用load来加载数据到表里。参见hiveSQL常用语法。

查看

hive建的表数据是存储在hdfs上的,网页查看地址

http://xxx.xx.xx.xx:9870/explorer.html?user.name=test

可以清楚展示分布式存储系统上的文件目录及其权限。和使用hdfs dfs 命令看到的一样。

在这里插入图片描述

可以看到上传的数据文件

下面通过hiveSQL去查询访问

select * from t_user;

在这里插入图片描述

可以看到,只要将数据文件上传到建的表下面,hive 就可以对应解析数据,进行查询分析,但前提是建的表结构必须是依赖于已有的数据文件,否则解析会出错。

其他复杂数据类型建表

数据文件如下:

1,张三,男,湖北省,武汉市,27,联投花山郡,本科:武汉大学-硕士:武汉大学-博士:华中科技大学
2,李四,女,湖北省,宜昌市,23,联投瑞园,本科:华中师范大学-硕士:武汉理工大学,
3,王五,男,湖南省,长沙市,28,长方云西府,本科:湖北大学-硕士:武汉大学
4,赵六,女,湖南省,岳阳市,32,中建大公馆,本科:武汉科技大学-硕士:武汉理工大学
5,刘二,男,湖北省,咸宁市,46,步步高广场,本科:武汉理工大学-硕士:清华大学

分隔符换成了逗号,然后增加了学历字段,学历字段先使用-分割,再使用:分割成键值对

create table t_user_xueli(id int comment "ID",name string comment "名称",sex string comment "性别",provic

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词