大数据实习认知学习笔记Day3

本文详细介绍了ApacheHive的使用语法,包括数据仓库的概念、与数据库的区别,以及数仓的分层架构。涵盖了数据库操作、数据表创建、数据类型、内部和外部表管理、数据加载和快速映射等关键知识点。
摘要由CSDN通过智能技术生成

目录

Apache Hive使用语法与概念原理

数据仓库和数据库

数仓和数据库的区别

数仓的分层架构

ETL和ELT

数据库操作

数据表操作

创建数据库表语法

数据类型

​编辑

内部表和外部表

•  内部表

•  外部表

查看表操作

修改表操作

快速映射表

数据加载


Apache Hive使用语法与概念原理

数据仓库和数据库

操作型处理(数据库):联机事务处理OLTP(增删改查操作)

分析型处理(数据仓库):联机分析处理OLAP(查询分析操作)

数仓和数据库的区别

数据库是面向事务的设计,数据仓库是面向主题设计的。

数据库一般存储业务数据,数据仓库存储的一般是历史数据。

数据库是为捕获数据而设计,数据仓库是为分析数据而设计数据库设计是尽量避免冗余。

数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。

数仓的分层架构

源数据层(ODS):临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。

数据仓库层(DW):对源系统数据进行了清洗(去除了杂质)后的数据。

数据应用层(DA或APP):根据报表、专题分析需求而计算生成的数据。

ETL和ELT

数据库操作

•  创建数据库

create database if not exists myhive;

use myhive;

•  查看数据库详细信息

desc database myhive;

•  创建数据库并指定hdfs存储位置

create database myhive2 location '/myhive2';

•  删除一个空数据库

drop database myhive;

•  强制删除数据库

drop database myhive2 cascade;

数据表操作

创建数据库表语法

数据类型

内部表和外部表

•  内部表

删除内部表:直接删除元数据和存储的业务数据

•  创建内部表:

create table [if not exists]内部表名(

字段名字段类型, ...

)...;

 • 复制内部表:

复制表结构:CREATE TABLE表名like存在的表名;

复制表结构和数据:CREATE TABLE表名as select语句;

 •  删除内部表:

drop table内部表名;

 •  查看表格式化信息:

desc formatted表名;

 •  truncate清空内部表数据:

truncate table内部表名;

•  外部表

 •  创建外部表:

createexternaltable [if not exists]内部表名(

字段名字段类型, ...

)...;

 •  复制外部表:

CREATE EXTERNAL TABLE表名like存在的表名;

 •  删除外部表:

drop table外部表名;

 •  查看格式化信息:

desc formatted表名;

删除外部表:仅仅是删除元数据,存储的业务数据并不会被删除

查看表操作

 •  查看所有表:

show tables;

 • 查看建表语句:

show create table表名;

 • 查看表结构信息:

desc表名;

 • 查看表格式化信息:

desc formatted表名;

修改表操作

 •  修改表名:

alter table 旧表名 rename to 新表名;

 •  修改表路径:

alter table 表名 set location 'hdfs中存储路径';

 •  修改表属性:

alter table 表名 set tblproperties ('属性名'='属性值');

 •  内部表转外部表:

alter table stu set tblproperties('EXTERNAL'='TRUE');

 •  外部表转内部表:

alter table stu set tblproperties('EXTERNAL'='FALSE');

快速映射表

1.创建表:

create table [if not exists]表名(

字段名字段类型,

...,

字段名 字段类型

)row format delimited

fields terminated by '分隔符'

...;

2.加载数据:

load data [local] inpath '数据文件路径'

into table表名;

3.验证数据:

select字段名from表名

...;

数据加载

 •  加载数据的语法:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE表名;

INSERT INTO|OVERWRITE TABLE表名SELECT...

  • 59
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值