数据仓库技术与Hive入门

news2024/11/15 23:42:31

文章目录

  • 数据仓库
    • 基本概念
    • 场景案例
    • 主要特征
    • 主流开发语言-SQL
      • 数仓开发语言概述
      • SQL语言介绍
      • 结构化数据
      • SQL语法分类
  • Apache Hive入门
  • Apache Hive 安装部署
    • 元数据
  • Hive SQL语言

数据仓库

基本概念

在这里插入图片描述
数据仓库(Data Warehouse,简称数仓、DW),是一个用于存储,分析,报告的数据系统

数据仓库的目的是构建面向分析的集成化数据环境,分析结构为企业提供决策支持

数据仓库与数据库不同,数据仓库专注分析

  • 数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统
  • 同时数据仓库自身不需要“消费”任何数据,其结果开放给各个外部应用使用

这也是为什么叫做数仓,而不是工厂的原因
在这里插入图片描述

场景案例

业务数据的存储问题

数据仓库是为了分析数据而来,分析结果给企业决策提供支持。以中国人寿保险公司发展为例,中国人寿保险公司有许多业务线:人寿险,财险、车险等。
联机事务处理系统(OLTP)

在这里插入图片描述
关系型数据库是OLPT典型应用,比如:Oracle、MySQL、SQL Server等

在这里插入图片描述

分析性决策的制定

但随着业务数据越来越多,产生了许多运营相关的困惑:理赔欺诈识别、险种恶化等,为了能够正确认识这些问题

为了能够正确认识这些问题,指定相关的解决措施,基于业务数据开展数据分析,基于分析的结果给决策提供支持,也就是所谓的数据驱动决策的指定
在这里插入图片描述
OLTP系统的核心是面向业务,支持业务,支持事务,所有的约为操作可以分为读、写两种操作,一般来说读的压力大于写的压力,利用OLTP环境进行分析,存在如下问题:

  1. 数据分析对数据进行读取操作,会让读取压力倍增
  2. OLTP仅存储数周或数月的数据
  3. 数据分布在不同系统不同表中,字段类型数据不同意

数据仓库构建
在这里插入图片描述

主要特征

在这里插入图片描述
数据仓库是分析数据的平台,而不是创造数据的平台

数据仓库的数据反映的是相当长的时间历史数据的内容

数据仓库中一般有大量的数据查询操作,但修改和删除操作很少

主流开发语言-SQL

数仓开发语言概述

在理论上,任何一款编程序言只要具备读写数据、处理数据的能力,都可以用于数仓的开发,例如:Python,JAVA、C等

关键在于编程语言是否易学、好用、功能是否强大,不论从学习成本还是开发效率,上述的编程语言不是很友好,在数据分析领域,不得不提的就是SQL,分析领域主流开发语言

SQL语言介绍

SQL:结构化查询语言(Structured Query Language),是一种数据据库查询和程序设计语言,用于存储数据已经更新和管理数据
SQL语言功能强大,核心功能秩序用9个动词,语法接近英语口语,用户很容易学习和使用
在这里插入图片描述
虽然SQL本身是为了数据库软件设计的,但在数据仓库领域,尤其是大数据仓库领域,很多数仓软件都会去支持SQL语法,原因在于用户学习SQL成本低,并且SQL对数据分析友好
在这里插入图片描述

结构化数据

在这里插入图片描述

SQL语法分类

SQL主要语法分为两个部分:数据定义语言(DDL)和数据操作语言(DML)

DDL:创建和删除表,以及数据库、索引等各种对象,但不涉及标中具体数据操作

create database --创建新数据库
create  table   -- 创建新表

DML:对表中的数据进行插入、更新、删除、查询等操作

select -- 获取数据
update  -- 更新数据
delete --删除数据
insert -- 插入数据

Apache Hive入门

在这里插入图片描述

Hive是一款建立在Hadoop之上的开源 数据仓库系统,可以存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集

Hadoop核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop集群执行
Hadoop由Facebook实现并开源

使用Hive处理数据的好处:

  1. 操作接口类SQL语法,提供快速开发的能力
  2. 避免直接写MapReduce,减少开发人员的学习成本
  3. 支持自定义函数,功能扩展很方便
  4. 背靠Hadoop,擅长存储分析海量数据集

映射信息记录

映射在数学上称为一种对应关系,在Hive中能够写sql处理的前提是针对表,而不是针对文件,因此需要将数据和表之间的对应关系描述记录清楚。映射信息专业的叫法称为元数据信息(metadata)
在这里插入图片描述

SQL语法解析、编译

用户写完sql之后,hive需要针对sql进行语法校验,并且根据记录的元数据信息进行读取sql背后的含义,指定执行计划,并且把执行计划转换成MapReduce程序来具体执行,把执行的结果封装返回给用户

最终效果
在这里插入图片描述

Apache Hive 安装部署

元数据

元数据(Metadata),又称中介数据、中继数据,位描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置,历史数据,资源查找,文件记录等功能
在这里插入图片描述
Metastore即元数据服务,用来管理metadata元数据。就可以多个客户端同时连接,而且这些客户端不需要指导MySQL数据库的用户名和密码,只需要链接metastore服务即可,某种程度上保证了hive元数据的安全
在这里插入图片描述

启动Hive之前必须先启动Hadoop集群,特别需要注意,需要等待HDFS安全模式关闭之后再启动运行Hive,Hive不是分布式安装运行的软件,其分布式的特性主要由Hadoop完成,包括分布式存储、分布式计算。

Hive SQL语言

DDL建库建表
Hive数据模型总览
在这里插入图片描述
DDL(数据定义语言)语法核心由Create、alter和drop组成,DDL并不是恶疾表内部数据的操作
在这里插入图片描述

查看数据库、表结构

show databases; # 查看某个数据库
use 数据库;      # 进入某个数据库
show tables;    # 展示所有表
desc 表名;            # 显示表结构
show partitions 表名; # 显示表名的分区
show create table_name;   # 显示创建表的结构

建表

# 建表语句
# 内部表
use xxdb; create table xxx;
# 创建一个表,结构与其他一样
create table xxx like xxx;
# 外部表
use xxdb; create external table xxx;
# 分区表
use xxdb; create external table xxx (l int) partitoned by (d string)
# 内外部表转化
alter table table_name set TBLPROPROTIES ('EXTERNAL'='TRUE'); # 内部表转外部表
alter table table_name set TBLPROPROTIES ('EXTERNAL'='FALSE');# 外部表转内部表

表结构修改

# 表结构修改
# 重命名表
use xxxdb; alter table table_name rename to new_table_name;
# 增加字段
alter table table_name add columns (newcol1 int comment ‘新增’);
# 修改字段
alter table table_name change col_name new_col_name new_type;
# 删除字段(COLUMNS中只放保留的字段)
alter table table_name replace columns (col1 int,col2 string,col3 string);
# 删除表
use xxxdb; drop table table_name;
# 删除分区
# 注意:若是外部表,则还需要删除文件(hadoop fs -rm -r -f  hdfspath)
alter table table_name drop if exists partitions (d=‘2016-07-01');

# 字段类型
# tinyint, smallint, int, bigint, float, decimal, boolean, string
# 复合数据类型
# struct, array, map

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FMC128:具有出色的同步性能-8通道同步采集

板卡概述 FMC128 是一款 8 通道 250MHz 采样率 16 位 AD 采集 FMC子卡,符合 VITA57 规范,可以作为一个理想的 IO 模块耦合至 FPGA 前端,8 通道 AD 通过高带宽的 FMC 连接器(HPC)连接至 FPGA 从 而大大降低了系统信号…

八、vue_options之computed、watch属性选项

一、computed计算属性使用 (1)复杂data的处理方式 (2)computed 计算属性 computed计算属性初体验: 在我们通过Vue调用createApp方法传入一个对象的时候,我们之前写了data属性、methods属性,这…

关于一个C++项目的总结与反思:bosot搜索引擎

文章目录 写在前面关于这个项目的收获简单的项目介绍整体逻辑与第三方库每一步的具体细节util.hppparser.ccindex.hppsearcher.hpphttp_server.hpp其他模块 项目地址:boost_searcher: 项目:boost站内搜索 (gitee.com) 写在前面 这个项目是用C写的&…

聚焦能源 | 赛宁网安亮相2023年中国能源网络安全大会

​​4月21日,2023年中国能源网络安全大会(以下简称“大会”)在江苏南京成功落幕!为贯彻国家网络强国战略,加强能源网络安全技术创新、成果应用、人才培养与技术交流,大会推出主旨论坛、案例交流、展览展示等…

python:根据灰度值检查成像是否存在黑图情况

一、需求描述 1、摄像机在拍照的时候,会打开闪光灯进行拍照,假如闪光灯在拍照之后打开,就会产生黑图 2、因此,我们需要摄像机采集很多图片,检查是否每次拍照都是正常的 3、我们可以通过人眼进行查看,但是…

SpringCloud入门实战(七)-Hystrix服务熔断入门案例

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 。 💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看&…

Mysql 学习(七)独立表结构存储 一

独立表空间结构 InnoDB有很多类型表空间,这边主要是介绍独立表空间结构,因为这种会用的比较多讲之前我们先思考一个问题,如果我们以页为单位来分配存储空间的话,那两个页之间的物理距离可能很远,因为这是随机的&#…

2023有哪些适合学生用蓝牙耳机?300左右最好的蓝牙耳机推荐

2023年了,蓝牙耳机常常伴随手机出现在人们的日常生活当中,不管是听歌、运动、甚至玩游戏,大多数人都会选择戴蓝牙耳机。那么,有哪些适合学生用的蓝牙耳机?针对这个问题,我来给大家推荐几款300左右最好的蓝牙…

故障分析 | 从 Insert 并发死锁分析 Insert 加锁源码逻辑

作者:李锡超 一个爱笑的江苏苏宁银行 数据库工程师,主要负责数据库日常运维、自动化建设、DMP平台运维。擅长MySQL、Python、Oracle,爱好骑行、研究技术。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得…

Python初学小知识(十四):数据分析处理库Pandas

Python初学小知识(十四):数据分析处理库Pandas 十八 Pandas1 文件读取1.1 读取csv1.2 读取txt1.3 读取excel(xlsx) 2 内容读取2.1 读取行2.2 读取列 3 数据处理3.1 加减乘除3.1.1 列 与 元素3.1.2 列 与 列 3.2 最值、…

React-Native 热更新实践

以下是基于CodePush的热更新方案的实践,有需要的可以参考一下: 一、配置appcenter 1.1 安装appcenter 安装appcenter的命令如下: npm install -g appcenter-cli /** 安装完成后 */ appcenter help /** 如果出现帮助指令说明安装成功 */安装成功之后,登录appcenter,涉…

Python——线性回归、梯度下降、正则化(原理)

目录 1 线性回归-最小二乘法(LSM) 2 梯度下降 3 数据归一化/标准化 4 过拟合和欠拟合 4.1 过拟合的处理 4.2 欠拟合的处理 5 正则化 一种通过属性的线性组合来进行预测的 线性模型 ,其目的是找到一条直线或者一个平面或者更高维的超平面, 使得预…

FPGA学习笔记(三):PLL 锁相环

在 FPGA 芯片内部集成了 PLL(phase-locked loop,锁相环),可以倍频分频,产生其它时钟类型。PLL 是 FPGA 中的重要资源,因为一个复杂的 FPGA 系统需要不同频率、相位的时钟信号,一个 FPGA 芯片中 PLL 的数量是衡量 FPGA …

CAN总线网络中为什么需要安装终端电阻?

摘要: 为什么CAN总线网络中为什么需要安装终端电阻? ​在详解CAN总线:高速CAN总线和低速CAN总线的特性​文章中,高速CAN网络和低速CAN网络都需要安装终端电阻。 详解CAN总线:高速CAN总线和低速CAN总线的特性 高速CA…

HTB_Netmon CVE-2018-9276 RCE漏洞复现

文章目录 信息收集解题创建用户exppowershell脚本 信息收集 扫描结果还是很丰富的 nmap -sC -sV -p- -T4 ip ftp服务直接允许匿名登录了,直接连接,翻目录,在 Users/Public/里就看到了 user flag,get命令保存到本地查看&#xff0…

Vue3父组件向子组件传值之ArticleItem组件的封装与使用

组件概念 官方文档:组件基础 本节核心内容:组件的封装与传值 组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构: 这和我们嵌套 HTML 元素的方式类似,Vue 实现了自己的组件模型,使我们…

易点易动固定资产管理平台如何帮助高校精准管理海量固定资产

高校拥有大量的固定资产,如教室、实验室、办公设备、体育设备等,这些资产数量庞大,分布广泛,管理难度大。传统的管理方式效率低下,难以实现精准和动态管理。易点易动固定资产管理平台利用现代信息技术,为高校提供一套智能化的资产管理解决方案,实现固定资产全流程的精准管理。 …

马云上三路和下三路

马云的上三路、下三路,马云最牛搭档总结 马云刚最牛搭档:蔡崇信,关明生 《关乎天下》是关明生写的一本书 趣讲大白话:没有方法走不远 【趣讲信息科技143期】 **************************** 马云上三路:使命&#xff0c…

为什么要选择付费SSL证书?免费和付费SSL证书的区别是什么?

近几年,由于互联网的发展与新冠疫情的影响,线上教育、线上办公、线上学习等逐渐融入我们的生活。但与此同时,信息数据泄露等网络安全问题也日益突出,为了保护企业与用户的隐私信息,越来越多的公司选择安装SSL证书来保护…

渲染02-内置Uniform

参考: CesiumJS 源码杂谈 - 从光到 Uniform 渲染02-内置Uniform 1 Unifrom 的接口 路径: pacaages/engin/Source/Renderer/AutomaticUniforms.js AutomaticUniforms 实际上是 Cesium 暴露给着色使用的接口集合。 AutomaticUniforms┖ AutomaticUniform(czm_projection/czm…