Hive数仓

Hive数仓分层 hive数仓分层知识点整理 阅读详情

一、分层

理论上分为三层:ODS数据运营层,DW数据仓库层,ADS数据服务层.

数据运营层(ODS):原始数据:

  ODS:Operation Data Store 数据准备区,也称为贴源层。数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,是后续数据仓库加工数据的来源。

数据仓库层(DW):数据清洗:

  1. DWD:data warehouse details 细节数据层,是业务层与数据仓库的隔离层。主要对ODS数据层做一些数据清洗和规范化的操作。
    数据清洗:去除空值、脏数据、超过极限范围的
  2. DWB:data warehouse base 数据基础层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。
  3. DWS:data warehouse service 数据服务层,基于DWB上的基础数据,整合汇总成分析某一个主题域的服务数据层,一般是宽表。用于提供后续的业务查询,OLAP分析,数据分发等。

数据服务层/应用层(ADS):出报表

  ADS:applicationData Service应用数据服务,该层主要是提供数据产品和数据分析使用的数据,一般会存储在ES、mysql等系统中供线上系统使用。

二、内部表vs外部表

1、内部表

内部表,也叫托管表,是Hive在创建表时的默认表。
特点:在内部表被删除后,表的元数据和表数据都从HDFS中完全删除
建表代码:

create table if not exists 表名(
字段名称 字段类型,
...
字段名称 字段类型
)
comment 表的注释
raw format delimited
fields terminated by '分隔符'  #列以'分隔符'分割
line terminated by '分隔符'   #此分隔符只能是‘\n’,目前hive只支持‘\n’,行分割也是默认‘\n’
stored as 文件存储类型 #常用的存储文件类型:SEQUENCEFILE(二进制序列文件)、      #TEXTFILE(文本)、RCFILE(列式存储格式文件)如果文件数据是纯文本,可以使用STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCEFILE。

适用场景:
ETL数据清理是用内部表做中间表,清理时HDFS上的文件同步删除
查看所建的表的全部信息----其中Table Type 表示表的类型
(内部表Internal TABLE/Managed TABLE,外部表EXTERNAL TABLE)
在这里插入图片描述
内部表数据存储的位置是hive.metastore.warehouse.dir,如果创建内部表时没有指定location,就会在/user/hive/warehouse/下新建一个表目录

2、外部表

特点:表中的数据在删除后仍然在HDFS中。
如果我们创建一个外部表,在删除表之后,只有与表相关的元数据被删除,而不会删除表的内容。
声明外部表的关键字:external
声明外部表的基本语法:

create external table if not exists 表名(
字段名称 字段类型,
...
字段名称 字段类型
)
raw format delimited

fields terminated by '分隔符'

将数据加载至hive表中

hive> load data local inpath '/opt/student.txt' into table student2;

将外部表删除

hive> drop table student2;

查看HDFS路径下是否保留表数据

[root@master ~]# hadoop fs -cat /data/hive/warehouse/student2/student.txt

在这里插入图片描述
外部表适用场景:
对于恢复误删的数据困难的情况,例如:实时采集的数据
外部表的优点:
可以共享数据,且不加载到hive中,减少数据加载,落地

3、管理表(内部表)与外部表互相转换

查询已有表的类型

hive> desc formatted student;

修改内部表student为外部表

hive> alter table student set tblproperties('EXTERNAL'='TRUE');

修改外部表student为内部表

hive> alter table student set tblproperties('EXTERNAL'='FALSE');

三、分区

静态分区

创建分区表语法

create table stu(id string,name string) partitioned by (month string) row format delimited fields terminated by '\t';

加载数据

hive> load data local inpath '/home/test/stu.txt' into table student partition(classroom='002');
Loading data to table default.student partition (classroom=002)
OK
Time taken: 1.102 seconds

查看分区

hive> show partitions student;
OK
classroom=002
Time taken: 0.071 seconds, Fetched: 1 row(s)

新增分区

alter table salary add partition(data_dt = '2021-07-22');

向分区表插入数据:

insert into salary partition(data_dt='2021-07-19') values ('10001','Eric',150000);

动态分区

启用hive动态分区(之前博客也写过)
在hive会话中设置两个参数:

hive> set hive.exec.dynamic.partition=true;
hive> set hive.exec.dynamic.partition.mode=nonstrict;

不指定具体的学校和班级,让系统自动分配;

hive> insert overwrite table stu01 partition(school,classroom) 
    > select * from stu;

插入数据时字段要对应分区名

insert into student partition(address,school) select name,age,'shanghai' as address,school from stu; 
Hive数仓导入导出 Hive数仓导入导出,分隔符 ​首先看下导出吧,我们准备sql。那么首先我们看到,两张表给运营提供数据。另一方面,让我们看看hive的强大。 先看一下两张表数据量:  select count(dt) from d.d_safedata_base_day             数据量:10836008  select count(dt) from d.d 阅读详情

相关推荐

Hive - 数仓的分层理论

Hive - 数仓的分层理论 大数据职业规划 数据仓库 --> 数据开发 --> 数据挖掘 --> 全栈架构 数据仓库的用途 整合公司所有业务数据,建立统一的数据中心 产生业务报表,用于作出决策 为网站运营提供运营上的数据支持 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果 开发数据产品,直接或间接地为公司盈利 数仓运行简图 数仓分层 1. 分层原因 把复杂问题简单化:将复杂的任务分解成多层来完成,每一层只处理

MiaoSO的博客 4002

Hive数据仓库简介

Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日志数据查询分析的工具,而Hive就诞生于此,只要懂SQL语言,就能够胜任大数据分析方面的工作,还节省了开发人员的学习成本。

W_chuanqi的博客 5638

Hive分层数仓的处理

Hive分层数仓的处理(代码层面) 分层处理 五层分层设计 ODS DWD DWS DWT ADS ODS层 1、创建支持LZO压缩的分区表 2、数据加载 3、脚本语句 DWD层 1、建表 drop table if exists dwd_xxx create external table dwd_xxx( `表字段` 字段类型 COMMENT '字段注释' ) COMMENT '表注释' partitioned by (dt string) --按照时间创建分区 stored as pa

东 982

Hive 数据仓库

Hive 是由 Facebook 开源的一个数据仓库工具,它允许用户使用类 SQL 语句来进行数据的查询、分析以及管理,将结构化的数据文件映射为数据库中的表,并提供了一套完整的机制用于数据的抽取、转换和加载(ETL)操作。本质上,Hive 是把 HQL 语句转化为 MapReduce、Tez 或者 Spark 等计算引擎可执行的任务,从而在 Hadoop 集群上进行数据处理。

szwzwwww的博客 3413

hive+hadoop架构数仓使用

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

花菜回锅肉的博客 2065

[离线数仓] 总结三、Hive数仓DIM层开发

DIM层设计要点:(1)DIM层的设计依据是维度建模理论,该层存储维度模型的维度表。(2)DIM层的数据存储格式为orc列式存储+snappy压缩。(3)DIM层表名的命名规范为dim_表名_全量表或者拉链表标识(full/zip)。

weixin_44428807的博客 1249

【Hive】数仓概念介绍和Hive入门操作

数据仓库数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基 于它产出供分析挖掘的数据,或者数据应用需要的数据,如企业的分析性报告和各类报表 等。数据仓库是面向主题的数据仓库通过一个个主题域将多个业务系统的数据加载到一起,为了 各个主题(如:用户、订单、商品等)进行分析而建,操作型数据库是为了支撑各种业务而 建立。数据仓库会将不同源数据库中的数据汇总到一起数据仓库中的综合数据不能从原有的数据库 系统直接得到。

康师傅没有眼泪 980

三边定位的最小二乘法运用

已知:条件基站到移动台的距离D,基站的坐标(xi,yi,zi) 求:移动台的坐标(x,y,z) 运用最小二乘法的核心是找到最小二乘法的矩阵形式即 Ax=B 在本次实验中通过三边定位计算得到 A=[A;2*(xi-x1),2*(yi-y1),2*(zi-z1]; %系数矩阵A b=[b;D1^2-Di^2+xi^2+yi^2+zi^2-x1^2-y1^2-z1^2]; %增广矩阵b

qq_26250141的博客 1万+

Hive数据仓库

基本使用 sql语言show databases; 查看数据库 ; 不能省略优点:缺点:HIve架构设计特别说明:hive2.2以后版本变化较大,去掉了HWI模块,HiveCLI模式也直接采用了beeline链接从上图可以看出,Hive的体系结构分为以下几部分:Hive 基础应用1。Hive基础概念1.hive 数据模型2。HiveSqlDDL建表说明1 元数据:描述数据的数据2.表分类:主要分内表和外表 1.内表:元数据和数据本身均被Hive管理。删除表则全部删除 2.外表:元数据被hive管理,数据本身

weixin_46579297的博客 6744

告别环境报错:Qt Creator里配置Android SDK/NDK/JDK路径的完整避坑指南

本文详细解析了在Qt Creator中配置Android SDK/NDK/JDK路径的完整避坑指南,深入探讨了路径检测的内部机制、构建套件配置的隐藏逻辑以及项目级与全局配置的优先级。通过实际案例和高级排查技巧,帮助开发者解决常见的环境报错问题,提升Qt安卓开发效率。

weixin_42548829的博客 238

FoundationPose复现及Realsense应用

FoundationPose是一个统一的基础模型,用于6D对象姿态估计和跟踪,支持基于模型和无模型的设置。在测试时可以立即应用于未见过的新对象,无需微调,只要给出其CAD模型,或者捕获少量RGBD参考图像。得益于统一框架,下游姿态估计模块在两种3D模型设置中都是相同的,当没有CAD模型时,使用神经隐式表示进行高效的新视角合成。通过大规模合成训练,辅以大型语言模型(LLM)、一种基于transformer的新架构和对比学习公式,实现了强大的泛化能力。

m0_56661101的博客 1万+

初识Hive数仓——超级详细版

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建==面向分析的集成化数据环境,为企业提供决策支持它出于分析性报告和决策支持目的而创建。MySQL数据库 => 面向事务的集成化数据环境;但是DW则是面向分析的集成化数据环境,主要实现数据的写入与数据分析,很少有数据的修改操作!数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。Hive是基于Hadoop。

m0_66925868的博客 1790

3D Gaussian Splatting环境配置和运行

使用conda命令根据environment.yml文件创建虚拟环境时,安装的pytorch是使用conda install 命令来安装的,实际上并不能成功安装带有gpu的pytorch,而这两个模块的安装依赖于带gpu的pytorch。如果不注释掉这三行,直接安装会报错

m0_46360757的博客 3326

Hive数仓:导入、导出表数据

Hive数仓:导入、导出表数据 文章目录Hive数仓:导入、导出表数据实验环境实验内容实验步骤1.点击"命令行终端",打开新窗口2.启动MySQL3.指定元数据数据库类型并初始化Schema4.启动Hadoop5.启动hive6.创建名为dolphin的数据库7.创建表8.导入方式一:本地文件导入到Hive表9.查看数据10.导入方式二:Hive表导入到Hive表11.查看此时testA表的信息12.导入方式三:HDFS文件导入到Hive表13.导入方式四:创建表的过程中从其他表导入14.导出方式一:导出到

shenhao-stu的博客 1552

Imatest-Star模块(西门子星图)

星图分析指南:基于ISO12233标准的MTF测试方法,通过放射状射线和正弦灰度变化评估相机SFR性能。

weixin_64706696的博客 1565

电机系列(1) - foc最基本原理、clark变换 、park变换、附代码

什么是FOC? FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制 (VC,Vector Control) ,是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。 简单来说就是,FOC是一种对无刷电机的驱动控制方法,它可以让我们对无刷电机进行 “像素级” 控制,实现很多传统电机控制方法所无法达到的效果。 因为所谓的“矢量控制”其实就是

nepqiu的博客 7万+

11、Hive+Spark数仓环境准备

1)把hive-3.1.3.tar.gz上传到linux的/opt/software目录下2)解压hive-3.1.3.tar.gz到/opt/module/目录下面3)修改hive-3.1.3-bin.tar.gz的名称为hive4)修改/etc/profile.d/my_env.sh,添加环境变量添加内容重启Xshell对话框或者source一下 /etc/profile.d/my_env.sh文件,使环境变量生效。5)解决日志Jar包冲突,进入/opt/module/hive/lib目录。

赞的心路历程 1493

【AIZ智能体】Codex 全能AI助手从部署到使用实战操作详解

Codex 全能AI助手从部署到使用实战操作详解

congge 2982

hive数仓乱码MySQL配置问题

hive数仓乱码MySQL配置问题 我使用的是MySQL-server-5.6.45-1.el7.x86_64.rpm MySQL-client-5.6.45-1.el7.x86_64.rpm 安装的mysql。 /usr/share/mysql/my-default.cnf 或者 /usr/my.cnf 拷贝到/etc/etc/my.cnf 1. 编辑/my.cnf配置文件 [client...

weixin_43888899的博客 272

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

灵境引路人 3227

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

hive数仓要点总结

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、数据集成的(Integrated)、相对稳定(非易失)的(Non-Volatile)、反映历史变化(时变)(Time Variant)的数据集合,用于支持管理决策3.1什么是维度维度就是看问题的角度,给你一个数据表,怎么分析,怎么看就是属于维度范畴比如2025年的订单数据,怎么分析,可以从时间(月份)分析,商品质量分析,用户分析,这个就是维度维度分为定性维度和定量维度。

m0_72898512的博客 880

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Hive数仓操作(十七)

一、Hive 四种存储格式 在 Hive 中,支持四种主要的数据存储格式,每种格式有其特点和适用场景,不过一般只会使用Text 和 ORC 二、Hive 行列存储三、Hive 压缩格式 1. TEXTFILE 压缩算法:可使用 Gzip、Bzip2 等压缩算法。四、Hive 建表手册 创建表的基本语法

m0_58076578的博客 6473

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HIve数仓新零售项目DWS层的构建(Grouping sets)模型

HIve数仓新零售项目DWS层的构建(Grouping sets)模型

Allen_人工智能与大数据 1919

hive数仓建模使用拉链表的好处及如何构建拉链表

综上所述,Hive数仓建模中使用拉链表的主要原因包括历史数据追踪与快照查询、节省存储空间、查询性能优化、支持复杂的数据分析需求以及易于维护和管理等方面。这些优点使得拉链表成为数据仓库设计中不可或缺的一部分,特别是在处理大规模、高频率更新的数据集时。

qq_58355375的博客 1105

银行HIve 数仓业务承载哪些数据

作为一名经验丰富的开发者,我很高兴能帮助你了解如何实现“银行Hive数仓业务承载哪些数据”。以下是你需要了解的整个流程,以及每一步需要执行的操作和代码。 银行Hive数仓业务承载数据流程 首先,我们来了解整个流程的步骤。以下是一个表格,展示了实现银行Hive数仓业务承载数据的关键步骤: 步骤 描述 代码 1 ...

weixin_37063103的博客 151

Hive数仓ETL过程

Hive数仓ETL过程

qq_35824427的博客 1326
上一篇: LINUX命令之sed
下一篇: 大数据集群启动各种命令
hadoop的大象
博客等级 码龄7年 62粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值