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
Hadoop生态是开源大据处理框架Hadoop所形成的一系列相关技术的集合,它包括了Hadoop分布式存储系统HDFS、分布式计算框架MapReduce、分布式调度器YARN等关键组件,以及一些配套工具和项目(如Hive、HBase等),用于构建和管理大规模据处理引擎。 而库建模(Data Warehouse Modeling)则是指根据业务需求和据分析目标,将企业或组织的据整合、清洗并转化为可供分析和决策支持的结构化据模型(通常采用维度建模或者规范化建模方法)的过程。库建模的目标是提供高性能、高可用性和易于维护的据分析环境,为企业提供准确、可信赖的决策支持。 Hadoop生态和库建模之间存在一定的关系。由于Hadoop具备存储海量据和并行处理大规模据的能力,因此可以作为库的底层存储系统。同时,Hadoop生态中的组件和工具(如Hive)也提供了对据的清洗、转换和查询等功能,可以支持库的构建和维护。通过将库与Hadoop生态相结合,可以建立起一个大规模的、高性能的据处理平台,实现更快速、更灵活的库建模和分析。 值得注意的是,库建模并非只依赖于Hadoop生态,还有其他架构和技术可供选择,如传统关系型据库、商用库平台等。因此,在具体实施库建模时,需要根据实际需求和技术成本进行选择,权衡各种方案的优劣,并结合Hadoop生态的特点和能力,合理规划和设计库建模方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值