hive+hadoop架构数仓使用

前言

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 delimited
        fields 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值