热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

数据仓库知识点梳理(1)camash

近几年随着「大数据」、「数据驱动」、「数据中台」等概念在互联网界的热炒,懂数据的获取、处理到算法推荐、模型预测等人才也得到热捧。观感上,这些技能领域是随着大数据时代而来的。而实际上

数据仓库知识点梳理(1)

近几年随着「大数据」、「数据驱动」、「数据中台」等概念在互联网界的热炒,懂数据的获取、处理到算法推荐、模型预测等人才也得到热捧。观感上,这些技能领域是随着大数据时代而来的。而实际上,早在上世纪80年到90年代初数据仓库和数据决策支持系统概念已经提出,本质上都是将多源头的数据集中起来,采用统计学的方法来进行数据分析以支持企业的各种决策。

既然换汤不换药,我们可以通过数据仓库知识来指导在大数据工程的实践。本文将对数据仓库的发展历史和背景进行介绍,作为「数据仓库知识梳理」系列的第一篇文章。

01 数据存储的发展历程

从狭义上讲,数据仓库也是一种数据的存储形式。从电子计算机出现以来,数据的数字化存储大致经历了下面的几个阶段。

  • 1950s
    打孔卡(Punch cards),首个存储数据的介质
  • 1960s
    磁性存储(磁带、磁盘)
  • 1970s
    首个数据库管理软件(IMS), 层次型数据库
    DBTG,网状数据库
  • 1980s早期
    关系数据模型,RDBMS的实现
  • 1980s末-1990s
    数据挖掘,数据仓库(W. H. Inmon)
    95年数据仓库流行:IBM的dw方案,Oracle/SQL Server绑定OLAP服务
  • 2000s
    随着线上数据增长,成为BI解决方案的一部分
    与大数据,NoSQL系统的结合

02 企业的决策层级

企业中部署数据仓库,其目的还是要用数据来说明现在的情况,并对下一步的动作计划提供支持。企业的决策可以分成三个层级,如下图所示。

底层可能有操作员就可以执行,比如一个电商订单物流长期处于「发出」状态,可能是出现丢件异常,就需要联系物流进行处理。中层的销售预测,需要根据历史的销售记录为主对未来一段时间的销售进行预测,这一层级可能在特定部门内使用。顶层的新市场识别或者店铺选址等动作,需要考虑整个公司的数据甚至是外部的数据,如地理、人口、经济数据等结合起来而作出决策。

因此,在建立数据仓库或者数据中台的时候,不是说越复杂的系统就越好,关键是看需要支持怎么样的决策层级。其次还要考虑实施难度和建设周期等多个方面的因素。

03 数据库技术的限制

上一小节中的「异常订单处理」,如果单纯考虑超时提醒功能,可以直接在关系型数据库中实现。但是上层的决策,在关系型数据库上开发可能会遇到以下的3个问题。

1.性能限制:
1.不能同时保证事物处理和BI决策类型的统计查询;

2.集成度不够:
1.C/S,B/S架构,数据库独立服务特定应用,数据是分散的
2.还有外部数据源的数据
3.各系统间的名称、单位口径的统一

3.方法工具的缺失
1.统计查询的优化
2.数据建模的方法论
3.配套的统计查询和统计分析工具

基于以上原因,数据仓库与业务数据库有不同的底层设计。

04 数据仓库的定义

数据仓库是一个面向主题的、集成的、非易失的,随时间变化的用来支持管理人员决策的数据集合。

​ ——《数据仓库(第4版)》

  • 面向主题,是指对应企业中某一宏观分析领域所涉及的分析对象

    • 例如:"销售分析"就是一个分析领域

    • 这个"销售分析"所涉及到的分析对象为商品、供应商、顾客、仓库等,那么数仓主题可以确定为商品主题、供应商主题、顾客主题、仓库主题

    • 数据层面来说,主题之间可能存在数据重叠关系

  • 集成

    • 数据来自于多个异构数据源
    • 标准化的数据集成方法
  • 非易失

    • 与数据源的数据分离保存
    • 一旦数据写入数据仓库,不进行更新
    • 数据仓库的数据只支持数据的初次加载和访问
  • 随时间变化

    • 保留历史数据(数据的快照)

    • 数据仓库的数据包含时间元素(记录时间戳)

    • 数据追加方式通过不同时间上数据的变化实现

05 数据建模方式

既然数据仓库最基本的功能是存储数据,数据如何存储就是下一个问题了。数据建模方式即对数据的存储方式进行设计,目前的主流的方式为维度建模,相对而言业务数据库通常采用关心建模的方式。

上图中,左边是业务数据库模型,订单、顾客、产品表等都对于与业务中的实体,方面业务系统的数据查询和新增,减少sql的查询。其通常符合「范式」建模要求。

右边是数仓的星型模型,以一个销售主题,通过一个fact表,对接其他维度表信息。其特点是数据冗余小,大量的属性都存放在维度表中,结构清晰,便于使用相关的工具做数据分析。这里先提一下,数据仓库查询语言的工业标准其实不是sql,而是mdx,后面会单独出一篇讲下mdx的工具和简单语法。

06 架构设计

数据仓库架构设计有自顶向下构建和自底向上构建两种方式。

其中自顶向下构建方式需要从企业总体需求开始设计出整体的数据模型,然后将所有需要的数据汇集起来ETL到相应的模型对象之中,这是一种大一统的方式。最后再通过特定的权限设置,将数据的访问提供给企业下面的部门。

自底向上的方式,可以在子部门中获得特定主题的小型数据模型,建立服务于特定部门的数据仓库,它们也被称为数据集市。

至于如何选择自己的架构,可以从以下两个方面进行考虑。

  • ROI

    • 项目风险:自顶向下方式可能周期较长,部门间数据的流转必然成为制肘
    • 商业价值:数据更集中更有可能发现其中蕴含的关系
  • IT部分角度

    • 资金政策的来源:明确项目的出资方和收益方
    • 数据信息的来源:明确谁能够提供出数据

07 总结

本文简要介绍了数据储存的发展历史,数据仓库产生的原因,数据仓库的定义、数据建模方式和数仓的架构设计。

欢迎扫描二维码关注公众号


推荐阅读
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 创邻科技成功举办Graph+X生态合作伙伴大会,30余家行业领军企业共聚杭州
    9月22日,创邻科技在杭州举办“Graph+X”生态合作伙伴大会,汇聚了超过30家行业头部企业的50多位企业家和技术领袖,共同探讨图技术的前沿应用与发展前景。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • 本文详细介绍了在 MySQL、SQL Server 和 Oracle 数据库中如何使用分组和排序功能。涵盖了聚集函数的应用、HAVING 子句的作用以及特定数据库中的独特方法,如 SQL Server 的 ROW_NUMBER() 函数和 Oracle 的相关特性。 ... [详细]
  • Oracle中NULL、空字符串和空格的处理与区别
    本文探讨了在Oracle数据库中使用NULL、空字符串('')和空格('_')时可能遇到的问题及解决方案。重点解释了它们之间的区别,以及在查询和函数中的行为。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 江苏启动鲲鹏生态产业园首批应用孵化项目
    2019年9月19日,在华为全联接大会上,江苏鲲鹏生态产业园正式启动了首批鲲鹏应用孵化项目。南京市委常委、江北新区党工委专职副书记罗群等多位嘉宾出席并见证了这一重要时刻。 ... [详细]
  • 为何我选择了华为云GaussDB数据库
    本文分享了作者选择华为云GaussDB数据库的理由,详细介绍了GaussDB(for MySQL)的技术特性和优势,以及它在金融和互联网行业的应用场景。 ... [详细]
author-avatar
徐大总统_584
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有