数据库(DB)是按照数据结构来组织、存储和管理数据的创建在计算机存储设备上的仓库数据库
数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以必定的数据模型组织、描述和储存在一块儿、具备尽量小的冗余度、较高的数据独立性和易扩展性的特色并可在必定范围内为多个用户共享markdown
数据仓库是面向主题的,集成的,相对稳定的,反映历史变化的数据集合,用于支持管理决策。数据结构
面向主题:在较高层次上将企业信息系统的数据综合归并进行分析利用的抽象的概念。每一个主题基本上对应一个相应的分析领域。架构
集成的:企业级数据,同时数据要保持一致性、完整性、有效性、精确性。并发
稳定性:从某个时间段来看是保持不变的,没有更新操做、删除操做,以查询分析为主。框架
变化的:反映历史变化。机器学习
功能 | 数据仓库 | 数据库 |
---|---|---|
数据范围 | 存储历史的、完整的、反应历史变化的 | 当前状态数据 |
数据变化 | 可添加、误删除、无变动的、反映历史变化 | 支持频繁的增、删、改、查操做 |
应用场景 | 面向分析、支持战略决策 | 面向业务交易流程 |
设计理论 | 违范式、适当冗余 | 遵守范式(1NF、2NF、3NF等范式)、避免冗余 |
处理量 | 非频繁、大批量、高吞吐、有延迟 | 频繁、小批次、高并发、低延迟 |
面向业务的数据库常称做OLTP,面向分析的数据仓库称为OLAP。高并发
数据仓库概念最先可追溯到20世纪70年代,但愿经过一种架构将业务处理系统和分析处理分为不一样的层次。工具
20世纪80年代,简历TA2(Technical Architecture2)规范,该明肯定义了分析系统的四个组成部分:数据获取、数据访问、目录、用户服务。oop
1988年,IBM第一次提出信息仓库的概念:一个结构化的环境,能支持最终用户管理其所有的业务,并支持信息技术部门保证数据质量;抽象出基本组件:数据抽取、转换、有效性验证、加载、cube开发等,基本明确了数据仓库的基本原理、框架结构,以及分析系统的主要原则。
[敲黑板,说重点]:
转换:Sqoop进行简单的数据转换,更多的转化操做是经过ETL来实现的
有效性验证:牵扯到数据质量的问题
那么如何去建设数据仓库呢?
2)Ralph Kimball则主张自下而上(bottom-up)的方式创建DW,极力推崇创建数据集市,认为DW是企业内全部DM的集合,信息老是被存储在多维模型中。
3)Bill Inmon提出了新的BI架构CIP(Corporation information factory),把DM包含了进来。CIP的核心是将DW架构划分为不一样的层次以知足不一样场景的需求,好比常见的ODS、DW(e g: DWD, DWS等)、DM等,每层根据实际场景采用不一样的建设方案,该思路也是目前DW建设的架构指南,但究竟是以top-down仍是bottom-up方式进行DW建设,并未统一。
[敲黑板,说重点]:
不少人说Hadoop时代维度建模已经不是必须的了,其实否则,在整个Hadoop时代建模依然是有用的,并且是很是有意义的。Hadoop为整个大数据应用提供了技术的基础,包括Hive、Spark,只是技术架构。而咱们谈及大数据的时候,更多的关注的是大数据的价值,因此在组织梳理数据内容的时候依然会有数据建模的概念。
只不过不少公司作大数据多是刚起步阶段,更在乎与流量方面,因此不须要建模,可是等数据体量达到必定程度后,若是没有数据建模,那么数据质量也就没法保障,数据也就会废掉、烂掉。
数据仓库分层架构图:
核心简述:
为何要对数据仓库进行分层?
说了这么多,那么数据仓库的创建步骤呢?
鉴于互联网行业的“要么变化,要么去死”的影响,决定了在互联网领域,基于大数据的数据仓库建设是没法按照原有的项目流程、开发模式进行,更多的是须要结合新的技术体系、业务场景进行灵活的调整,以快速响应需求为导向。
传统的数仓 | 基于大数据的数仓 |
---|---|
建设周期长 | 要求快速响应需求 |
需求稳定 | 需求灵活、多变 |
时效性要求不高 | 对实时性有不一样程度的要求 |
面向DSS、CRM、BI等系统 | 除了面向DSS、BI等传统应用外,还要响应用户画像、个性化推荐(好比你看了一遍文章,再给你推荐十片同类型文章)、及其学习、数据分析等各类复杂的应用场景 |
阿里系:OneData(公司级别全部数据应用都基于我这一个数据,只有一个数据出口,不论实时仍是离线都是统一的惟一出口),OneService(数据服务也是统一的)
不少时候,咱们提供到数仓,就会以为是离线
的、至少也是T+1
的,可是这是传统的数据仓库,而基于大数据的数据仓库不该该这么理解,实时也应该概括到数据仓库中。
技术栈总图:
综上,在互联网领域,数仓模型是必需要存在(不必定是维度建模,可是至少须要一个建模),且数仓模型的设计更关注灵活、快速响应和应对多变的市场环境,更加以快速解决业务、运营问题为导向,快速数据接入、快速业务接入,更不存在一劳永逸。
数仓存在的意义
基于大数据的数据仓库在互联网行业应用:
1)数据分析、数据挖掘、人工智能、机器学习、风险控制、无人驾驶
2)数据化运营、精准运营
3)广告精准、智能投放