hive+hadoop架构数仓使用

embedded/2024/12/28 15:37:00/

文章目录

    • 前言
    • 分析数据
    • 建表
    • 上传数据
    • 查看
    • 其他复杂数据类型建表
      • 默认分割符
    • 指定数据存储路径
    • 内部表和外部表
    • 分区表
      • 数据文件
      • 静态分区
      • 动态分区
      • 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

http://www.ppmy.cn/embedded/145382.html

相关文章

SNN学习(3):Brain2Loihi,基于brain2实现的Loihi模拟器

目录 一、基础参考内容 二、Brian2安装与测试 1、brian2安装 (1)安装软件包 (2)安装brian2 (3)测试 三、简单入门 1、神经元Neurons (1)单神经元 (2&#xff09…

HTML零基础教学(REAL)

什么是HTML 一种超文本标记语言: HyperText Markup Language 常见误区:HTML 不是一种编程语言,而是一种标记语言 标记语言是一套标记标签 HTML文档的别名web 页面 HTML 使用标记标签来描述网页 HTML 文档包含了HTML 标签及文本内容 入门 新建一个…

线段树模板

单点修改 #include <bits/stdc.h> using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(nullptr); #define rep(i, x, y) for(int i(x), _(y);i<_;i) #define rrep(i, x, y) for(int i(x), _(y);i>_;i--) #define all(x) x.begin(),x.end() #d…

汽车保养系统+ssm

摘 要 由于APP软件在开发以及运营上面所需成本较高&#xff0c;而用户手机需要安装各种APP软件&#xff0c;因此占用用户过多的手机存储空间&#xff0c;导致用户手机运行缓慢&#xff0c;体验度比较差&#xff0c;进而导致用户会卸载非必要的APP&#xff0c;倒逼管理者必须改…

在C#中编程绘制和移动线段

这个示例允许用户绘制和移动线段。它允许您根据鼠标下方的内容执行三种不同的操作。 当鼠标位于某个线段上时&#xff0c;光标会变成手的形状。然后您可以单击并拖动来移动该线段。当鼠标位于线段的终点上时&#xff0c;光标会变成箭头。然后您可以单击并拖动以移动终点。当鼠…

云原生后端详解

云原生后端&#xff08;Cloud-Native Backend&#xff09;是指在云计算环境中&#xff0c;利用云原生技术&#xff08;如容器、微服务、服务网格等&#xff09;构建和部署后端应用程序的一种方法。以下是对云原生后端的详细解释&#xff1a; 一、云原生后端的核心技术 容器技术…

用Python开发数独游戏

本文将带你一步步实现一个简单的数独游戏,玩家可以自己解谜或生成数独谜题进行挑战,提升逻辑思维能力。 一、功能描述 随机生成数独棋盘:生成一个可解的数独谜题。玩家交互:玩家可以在界面上输入数字进行解答。解谜验证:自动判断玩家输入的答案是否正确。二、开发环境 语言…

Kudu 源码编译-aarch架构 1.17.1版本

跟着官方文档编译 第一个问题&#xff1a;在make阶段时会报的问题&#xff1a; kudu/src/kudu/util/block_bloom_filter.cc:210:3: error: ‘vst1q_u32_x2’ was not declared in this scope kudu/src/kudu/util/block_bloom_filter.cc:436:5: error: ‘vst1q_u8_x2’ was no…