1.数据仓库是什么?
2.数据仓库特点
3、数据库VS数据仓库
3.1、从公司业务的角度理解 数据库和数据仓库
数据库 Database (Oracle, Mysql, PostgreSQL)主要用于事务处理。
数据仓库 Datawarehouse (Amazon Redshift, Hive)主要用于数据分析。
3.2 数据库和数据仓库的特点:
数据库(Database)的特点是:
(1)相对复杂的表格结构,存储结构相对紧致,少冗余数据。
(2)读和写都有优化。
(3)相对简单的read/write query,单次作用于相对的少量数据。
数据仓库(Datawarehouse)的特点是:
(1)相对简单的(Denormalized)表格结构,存储结构相对松散,多冗余数 据。
(2)一般只是读优化。
(3)相对复杂的read query,单次作用于相对大量的数据(历史数据)。
4.数据仓库架构
4.1数仓架构介绍
(1)整体架构设计目标为中台指标标签体系及各类应用提供稳定高效的数据使用环境,采用大数据平台。
(2)经由各种采集工具及手段,高质高效接入各式数据;
(3)通过建仓建模手段提供四层(贴源层、基础层、汇聚层、应用层)数据架构,保障数据合理存储及流转;提供数据集成、任务调度、数据质量、标准化规范等管理机制,提升数据规范化能力的同时,提供数据应用服务。
数仓架构
技术架构图
4.2大数据体系架构主件
HDFS:Hadoop分布式文件系统,解决分布式存储问题
MapReduce(离线):解决分布式计算/处理问题
Spark(准实时):解决分布式计算/处理问题(批处理)
Flink(实时):解决分布式计算/处理问题(流处理)
Kafka:实时的消息队列
5.数仓的分层
5.1数仓分层的介绍
数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了数据建模、ETL(数据抽取、转换、加载)、作业调度等在内的完整的理论体系流程。数据仓库在构建过程中通常都需要进行分层处理。业务不同,分层的技术处理手段也不同。
分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控。详细来讲,主要有下面几个原因:
- 清晰的数据结构:
- 将复杂的问题简单化:
- 将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的问题,比较简单和容易理解。
而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问
题的地方开始修复。
- 减少重复开发:
- 屏蔽原始数据的异常:
- 数据血缘的追踪:
- 最终给业务呈现的是一个能直接使用业务表,但是它的来源很多,如果有一张来源表出问题
了,借助血缘最终能够快速准确地定位到问题,并清楚它的危害范围。
数仓的常见分层一般为3层,分别为:数据操作层、数据仓库层和应用数据层(数据集市层),
当然有时候根据业务和不同的使用场景,可以分为更多不同的层,只要能达到流程清晰、方便查数即可
5.2 数据仓库为什么要分层
1、把复杂问题简单化 将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题;
2、减少重复开发 规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性;
3、隔离原始数据 不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开;