• 了解数据仓库


    一.数据仓库定义

    数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向主题,与传统关系数据库面向应用相对应。

    二.数据仓库与传统数据的区别

     数据仓库是用于分析的数据库,传统的关系型数据库是面向业务的,为具体的业务提供支撑。

    数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出进行加工与集成,统一与综合之后才能进入数据仓库.

    数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询

    随着时间的增长,数据仓库数据量会很大

    与关系型数据库相比,数据仓库的设计允许冗余

    为了更好的为业务决策服务,数据仓库的设计要求如下:

    1.效率足够高,尽量的低延迟,隔天能看到历史的数据分析数据

    2.数据质量,在ETL过程中,避免脏数据或者代码有误导致的数据不准确误导决策者

    3.扩展性,考虑到随着时间的推移,以及业务的变动,数据量增大,数据仓库要合理建模,适度增加中间层(olap,cube),缓冲数据量增大带来的压力

    4.根据决策者重点关心的方向,提取主题,排除无用的主题

     三 数据仓库系统的组成

        数据源,ETL,数据仓库,应用

    四.数据仓库建模

       维度建模(dimensional modeling)是数据仓库建设中的一种数据建模方法。

       维度表:表示对分析主题所属类型的描述。就是你观察该事务的角度,是从哪个角度去观察这个内容的。

       事实表:表示对分析主题的度量。

       维度建模的模式:星形模式,雪花模式,星系模式(星座模式)

       星形模式:维表只和事实表关联,维表之间没有关联;以事实表为核心,维表围绕核心呈星形分布;

      雪花模式:是星形模式的扩展,每个维表可继续向外连接多个子维表

    星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,每次查询需要太多关联,而数据冗余问题在数据仓库里并不严重。

       星座模式:一个维表也可能被多个事实表用到

    在业务发展后期,绝大部分维度建模都采用的是星座模式。

     共享维度

    细节/聚集事实表

    细节事实表(detailed fact tables)中每条记录表示单一事实,而聚集事实表(aggregated fact tables)中每条记录则聚合了多条事实。

     两种事实表各有优缺点,细节事实表查询灵活但是响应速度相对慢,而聚集事实表虽然提高了查询速度,但使查询功能受到一定限制。

    一个常见的做法是使用星座模型同时设置两种事实表(可含多个聚集事实表)。

    缓慢变化维度

    五 数据仓库系统的实现和使用

    数据仓库系统以前通常是建在关系型数据库基础上,随着大数据的发展,使用SPARK SQL,hive创建数据仓库逐渐成为趋势,建模与实现分开,先用建模工具建模,然后用HIVE或者spark sql实现,ETL工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载填充数据到数据仓库维度建模后的表中

    抽取(Extract):根据数据仓库的设计要求,从各个数据源搜集数据

    转换(Transform):对提取好了的数据的结构进行转换清洗,以满足目标数据仓库模型的过程

    加载(Load)将转换好的数据加载的数据仓库

    然后就是olap,维度建模,展示维度建模分析与SQL查询相比,设计好后简单但不够灵活

    cube的架构模式通常有三种:MOLAP(Multidimensional Online Analytical Processing)ROLAP(Relational Online Analytical Processing)HOLAP(Hybrid Online Analytical Processing)

    cube的常用操作:切片,切块,旋转,上卷,下钻

     

    ETL通过清洗和转换最后将数据加载到数据模型中

    ETL的主要任务是在交付过程中划分维度和事实

  • 相关阅读:
    asp.net mvc让我告诉你请求从哪里来
    我也要学iOS逆向工程--函数
    我也要学iOS逆向工程--全局变量
    我也要学C语言-第十九章:命令行参数
    使用docker搭建nfs实现容器间共享文件
    Golang控制goroutine的启动与关闭
    我是如何用Go语言搭建自己的博客的
    让我们一起Go(十三)
    让我们一起Go(十二)
    让我们一起Go(十一)
  • 原文地址:https://www.cnblogs.com/playforever/p/9117141.html
Copyright © 2020-2023  润新知