数据仓库的概述

数据仓库的概述

1. 数据仓库是面向主题的
2. 数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,
3. 提供特定主题的类名视图。

数据仓库层级

数据运营层ODS
数据运营层:Operation Data Store 数据准备区,也称为贴源层。数据源中的数据,经过抽取、洗净、传输,也就是ETL过程之后进入本层。该层的主要功能:
ODS是后面数据仓库层的准备区
为DWD层提供原始数据
减少对业务系统的影响
为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可。

数据仓库层
数据仓库层从上到下,又可以分为3个层:数据细节层DWD、数据中间层DWM、数据服务层DWS。

数据细节层DWD
数据细节层:data warehouse details,DWD
该层是业务层和数据仓库的隔离层,保持和ODS层一样的数据颗粒度;主要是对ODS数据层做一些数据的清洗和规范化的操作,比如去除空数据、脏数据、离群值等。
为了提高数据明细层的易用性,该层通常会才采用一些维度退化方法,将维度退化至事实表中,减少事实表和维表的关联。

数据中间层DWM
数据中间层:Data Warehouse Middle,DWM;
该层是在DWD层的数据基础上,对数据做一些轻微的聚合操作,生成一些列的中间结果表,提升公共指标的复用性,减少重复加工的工作。

简答来说,对通用的核心维度进行聚合操作,算出相应的统计指标
数据服务层DWS
数据服务层:Data Warehouse Service,DWS;
该层是基于DWM上的基础数据,整合汇总成分析某一个主题域的数据服务层,一般是宽表,用于提供后续的业务查询,OLAP分析,数据分发等。
一般来说,该层的数据表会相对较少;一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

数据应用层ADS
数据应用层:Application Data Service,ADS;
该层主要是提供给数据产品和数据分析使用的数据,一般会存放在ES、Redis、PostgreSql等系统中供线上系统使用;也可能存放在hive或者Druid中,供数据分析和数据挖掘使用,比如常用的数据报表就是存在这里的。


事实表 Fact Table
事实表是指存储有事实记录的表,比如系统日志、销售记录等。事实表的记录在不断地增长,比如电商的商品订单表,就是类似的情况,所以事实表的体积通常是远大于其他表。

维表层Dimension
维度表(Dimension Table)或维表,有时也称查找表(Lookup Table),是与事实表相对应的一种表;它保存了维度的属性值,可以跟事实表做关联,相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。维度表主要是包含两个部分:

高基数维度数据:一般是用户资料表、商品资料表类似的资料表,数据量可能是千万级或者上亿级别
低基数维度数据:一般是配置表,比如枚举字段对应的中文含义,或者日期维表等;数据量可能就是个位数或者几千几万。
常见的维度表有:日期表(存储与日期对应的周、月、季度等的属性)、地点表(包含国家、省/州、城市等属性)等。

1、数据库

数据库(Database)是按照一定格式和数据结构在计算机保存数据的软件,属于物理层。

2、数据集市

数据集市是一种微型的数据仓库,它通常是有更少的数据,更少的主题区域,以及更少的历史数据,
如果数据仓库是企业级的,那数据集市就是部门级的,一般数据集市只能为某个局部范围内的管理人员服务。

3、数据仓库(Data Warehouse),可简写为DW或DWH。

它是为企业所有级别的决策制定过程,
提供所有类行数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。
为需要业务只能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

一句话总结: 数据仓库存在的意义在于对企业的所有数据进行汇总,为企业各个部门提供统一的,规范的接口数据。
数据仓库相比与数据库,主要有以下两个特点:
数据仓库是面向主题集成的。数据仓库是为了支撑各种业务而建立的,数据来自于分散的操作型数据。
因此需要从多个异构的数据源中抽取出来,进行加工与继承,按照主题进行重组,最终进入数据仓库。

数据仓库主要用于支撑企业决策分析,所涉及的数据操作主要是数据查询。因此数据仓库通过表结构优化、存储方式优化等方式提高查询速度、降低开销。

4、数据湖

在现在这个时代,数据对与企业而言,已经是一种重要资产,随着企业不断发展,数据不断堆积,企业希望吧生产经营中的所有相关数据都完整保存下来,进行有效管理与集中治理,挖掘和深索数据价值。
而数据湖就营运而生.

数据湖是一个集中存储各类结构化和非结构化数据的大型数据仓库,它可以存储来自多个数据源、多种数类型的原始数据,
数据无需经过结构化处理,就可以进行存取\处理\分析和传输.数据湖能帮助企业快速完成异构数据源的联邦分析,
挖掘和探索数据价值.

数据湖的本质,是由"数据存储架构+数据处理工具"组成的解决方案.
数据存储架构: 要有足够的扩展性和可靠性,可以存储海量的任意类型的数据,包括结构化,半结构化和非结构化数据.
数据处理工具,测分为两大类:
第一类工具,聚焦如何把数据"搬到"湖里.包括定义数据源,指定数据同步策略,移动数据,编制数据目录等。
第二类工具,关注如何对湖中的数据进行分析、挖掘、利用。数据湖需要具备完善的数据管理能力、多样化的数据分析能力、
全面的数据生命周期管理能力、安全的数据获取和数据发布能力。如果没有这些数据治理工具,元数据缺失,湖里的数据质量就没法保障,最终会由数据湖变质为数据沼泽。

数据仓库和数据湖的不同类比于仓库和湖泊: 仓库存储着来自特定来源的货物;而湖泊的谁来自河流、溪流和其他来源,并且是原始数据。

数据主题

主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念。对不同业务模块分类管理
待整理

数据模型

常用模型 星型,雪花模型
表设计遵守的关系模型范式

待整理

数据库操作

	1.查看库:show databases;
	2.创建库:create databse  库名;
	3.删除库:drop database  库名;
	4.选择库:use 库名;
	5.查看数据库的创建信息:show create database  库名;

数据库定义语言DDL、DML、DCL、TCL

DDL:表级操作

查看当前数据库中所有的表:show tables;
查看指定的表的信息:desc table table_name;
查看表的创建信息:show create table table_name;
显示MySQL支持的所有字符集:show character set;

1. 创建表:
create table table_name
(id int not null
,name varcahr(80),primary key(id)) engine=Innodb default charset=utf8;

说明:engine=InnodbInnodb是默认的存储引擎,设置表的字符集:charset=utf8
查看MySQL所支持的存储引擎:show engines;
配置MySQL的配置文件:windows:在MySQL目录下的my.ini
字段约束:
unsigned:无符号数
zerofill:高位0填充,防止出现负数。
auto_increment:自动增加,用于整数,一般主要用于主键。
default:默认值null
not null:非空,即:不准许为空。

索引:
普通索引:index,最基本的,应该也是默认的,不需要进行设置。
唯一索引:unique,保证字段唯一不可重复,一个表可以有多个唯一索引。
主键索引:primary key,特殊的唯一索引,一个表中只能有一个主键索引。
全文索引:fulltext,对全局数据进行添加索引,很少用,效率低。 

2. 修改表:
alter table table_name modify id int(11) auto_increment; -- 修改表类型
注意:modify不同于change的是不能修改表名,同样至少也要修改到字段修饰的typealter table table_name change oldfield newfield type; -- 修改字段名
alter table table_name change oldfield newfield type first; -- 修改字段名放在第一列
或者
alter table table_name change oldfield newfield type after field2; -- 修改字段名并修改字段位置 
注意:使用change必须要修改字段名,而且必须至少要修改到字段修饰的type否则会报错。

alter table table_name add index(name); -- 给表字段添加索引
alter table table_name drop index index_name name; -- 删除表字段索引

alter table table_name add column_name int(4); -- 给表添加字段
alter table user add table_name int first;     -- 在第一列添加一个字段
alter table user add table_name int after id;  -- 在列(id)后面添加一个字段
alter table table_name drop field; -- 删除字段 

DML:行级操作

有SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言

1、查询数据:select * from 表名
2、添加数据:insert into (字段)values(值),(值)
3、修改数据:update 表名 set 字段=值 [where 条件]
4、删除数据:delete from 表名 [where 条件]
5、如果没有[where 条件]语句,是对所有字段进操作

DCL:权限控制

dcl英文缩写是 data control language(数据控制语言),主要的命令有grant、deny、revoke等,dcl主要用来设置或者更新数据库用户或者角色权限

常用的语句关键字有:GRANT,REVOKE

TCL:事务(提交与回滚)

tcl英文缩写是 Transaction Control language,主要的作用是用来控制事务的,常用的关键字有commit、rollback、setpoint等

常用的语句关键字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青鸟遇鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值