数据仓库概念总结

0x00 前言

整理一些数据仓库中的常用概念。大部分概念不是照搬书上的准确定义,会加入很多自己的理解。

0x01 概念

数据仓库(Data Warehouse)

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。

个人理解,数据仓库不单单是一个概念,其实算是对数据管理和使用的一种方法论,它包括了如何合理地收集数据、如何规范的管理数据、如何优雅地使用数据,以及任务调度、数据血统分析等一系列内容。 在大数据时代这些概念依旧没有过时,相反,它更加重要。

利用数据仓库的方式存放的资料,具有一旦存入,便不会随时间发生变动的特性,此外,存入的资料必定包含时间属性,通常一个数据仓库中会含有大量的历史性资料,并且它可利用特定的分析方式,从其中发掘出特定的资讯。

联机分析处理(OLAP, Online Analytical Process)

OLAP(Online Analytical Process),联机分析处理,以多维度的方式分析数据,而且能够弹性地提供 上卷(Roll-up)下钻(Drill-down) 和透视分析(Pivot)等操作,它是呈现集成性决策信息的方法,多用于决策支持系统、商务智能或数据仓库。其主要的功能在于方便大规模数据分析及统计计算,可对决策提供参考和支持。与之相区别的是联机交易处理(OLTP),联机交易处理,更侧重于基本的、日常的事务处理,包括数据的增删改查。

OLAP需要以大量历史数据为基础,再配合上时间点的差异,对多维度及汇整型的信息进行复杂的分析。

OLAP的概念,在实际应用中存在广义和狭义两种不同的理解方式。广义上的理解与字面上的意思相同,泛指一切不会对数据进行更新的分析处理。但更多的情况下OLAP被理解为其狭义上的含义,即与多维分析相关,基于立方体(Cube)计算而进行的分析。

商务智能(BI, Business Intelligence)

BI(Business Intelligence),即商务智能,指用现代数据仓库技术、在线分析技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。

大致上来讲,BI就是利用各种技术来辅助于商业决策,它需要以数据仓库的数据为基础,通过Olap系统来做分析,必要时还需要一些数据挖掘的方法来挖掘更深层次的价值。

元数据(Metadata)

管理元数据的系统。网上没找到定义,个人对它的理解如下:

一个管理元数据信息的系统 能够提供方便的元数据的操作和查询操作

详细的内容请参照这篇博客别人家的元数据系统是怎么设计的

数据分层

其实数据分层的意思就是对数据按照一定的层级来存储,这样做的好处很多,在下面列了几个,详细的请参考这篇博客:如何优雅地设计数据分层

  1. 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
  2. 数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  3. 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  4. 把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  5. 屏蔽原始数据的异常。
  6. 屏蔽业务的影响,不必改一次业务就需要重新接入数据。

维度建模

维度建模是一种数据仓库的建模方法,这样讲吧,它的作用就是帮你更好的组织和使用数据。 详细的讲解请看这篇博客:详解维度建模

维度模型是数据仓库领域大师Ralph Kimall所倡导,他的《The DataWarehouse Toolkit-The Complete Guide to Dimensona Modeling,中文名《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

典型的代表是我们比较熟知的星形模型,以及在一些特殊场景下适用的雪花模型。

ETL (Extract-Transform-Load)

ETL 在数据开发的工作中主要是数据清洗,它包括数据的接入,初步的清洗,数据导入Hive或者Mysql中等一系列操作,目前比较火的大数据技术在很大程度上就是解决了大数据量下的数据清洗工作。

另外,很多写sql的任务也可以理解是数据清洗,比如使用sql对原始数据做一部分的业务处理、过滤掉一些特殊记录等,因此ETL的范围相对来讲比较广,很多数据开发的工作都可以归结到ETL中。

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

大数据人工智能词汇索引S大数据人工智能词汇索引S

大数据人工智能词汇索引S S ---- 流处理(Stream processing):流处理被设计来用于持续地进行流数据的处理。与流分析技术(指的是能够持续地计...

3797
来自专栏Crossin的编程教室

爆款游戏《贪吃蛇大作战》的 Python 实现

感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核。媒体们除了之前竞相追捧《Pokemon Go》热闹了一把,似乎也听不到什么声音了。...

4387
来自专栏大数据

大数据架构最佳实践

原文地址:https://dzone.com/articles/big-data-architecture-best

2484
来自专栏跨界架构师

[译文]Domain Driven Design Reference(七)—— 大型战略设计结构

上周末电脑硬盘文件莫名丢失,狼狈了大半周才缓过来 T_T 。《Domain Driven Design Reference》的原版pdf也丢了,好在这篇文章提...

902
来自专栏腾讯大数据的专栏

Hermes-大数据利器中的白富美

1Why:Hermes为什么会诞生? 传统的关系型数据库,在大数据面前显得势单力薄,无论数据处理、数据分析上都力不从心。TDW(腾讯数据仓库,Tencent D...

2995
来自专栏java一日一条

记一次架构设计的经验--数据质量监控

在工作中跟同事沟通很重要,有多重要呢,一个月前,领导给分派了一个工作:要做一套针对线上实时数据的质量监控。监控这种工作首先第一点也是最重要的一点要跟生产流程解耦...

1923
来自专栏DevOps时代的专栏

基于 Jenkins Log 秒级数据的研发效能改进

2692
来自专栏java一日一条

程序员如何提一个好问题

提出好的问题是在编写软件时的一个非常重要的技能。这么多年来我对此也算略有小成。这里有一些我用着觉得很棒的指导方针!

1273
来自专栏jianhuicode

420小时学习代码之后:如何教你免费自学Python

1733
来自专栏AI研习社

如何设计与实现 SuperScript 交互式会话引擎(附PPT)

SuperScript 是一款开源的交互式会话引擎,它带有弱AI、自然语言理解、简单易用和灵活可扩展的特点。SuperScript 也是目前开源领域内最优秀的聊...

5848

扫码关注云+社区

领取腾讯云代金券