• 数据仓库理论


    1、数据库和数据仓库区别

    数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别。

    联机事务处理OLTP(On-Line Transaction Processing)

                  传统数据库的增、删、改、查。

    联机分析处理OLAP(On-Line Analytical Processing)

                数据仓库的数据分析。

     

    2、数仓建模的2套理论

    范式建模和维度建模

    范式建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。

    3NF建模:

    1)每个属性的值唯一,不具有多义性; 即数据不可分割

    2) 每个非主属性必须完全依赖于整个主键,而非主键的一部分。一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来,即不能存在部分依赖

    3)每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。即消除传递依赖.

    维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。

    3、星型模型与雪花模型区别

    星型模型:即由一个事实表和一组维度表组成,每个维表都有一个维度作为主键。事实表居中,多个维表呈辐射状分布在四周,并与事实表关联,形成一个星型结构

    雪花模型:在星型模型的基础上,基于范式理论进一步层次化,将某些维表扩展成事实表,最终形成雪花状结构

    星座模型:基于多个事实表,共享一些维度表

    星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下星型模型效率比雪花型模型要高。

    星型结构不用考虑很多正规化的因素,设计与实现都比较简单。

    雪花模型由于去除了冗余,有些统计就需要通过表的联接才能产生,所以效率不一定有星型模型高,但是设计上比较规范。

    正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的 ETL、以及后期的维护都要复杂一些。

    因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。

    4、数仓分层

    ODS(Operation Data Store)层:数据操作层,存储原始数据。

    DWD层:数据明细层,是由ODS层进行数据清洗而来的,一般是通过 MR/hive + UDF对这一层的数据时行脏数据的清先,并且将非结构化数据变成结构化数据。

    DWS层:数据汇总层,这里把DWD层的数据进行JOIN形成汇总的数据(轻度join),以便下一层进行统计,另外还可能涉及到写UDF做业务字段的转换。

    DWS层会形成宽表(带有数据冗余,字段多,维度多)

            如果在这层直接出指标,会查询多余的数据。

    ADSApplication Data Service)层:数据应用层,用于存储应用的数据。

             为了能快速出报表,可以在ADS层搞个DM(数据集市)

          DM(数据集市)

          以某个应用为出发点而建设的局部DW,在这里可以理解为 为分析指标建设跟指标相关的数据集合。

    5、数仓分层的好处

    清晰数据结构、数据来源追踪、减少重复开发、把复杂问题简单化等。

    6、数仓数据来源有哪些?

    业务库数据源:mysql,oracle,mongo

    日志数据:nginx日志,埋点日志

    爬虫数据

    7、全量表,增量表及拉链表的理解

    全量表: 每天的所有的最新状态的数据。

    1、全量表,有无变化,都要报

    2、每次上报的数据都是所有的数据(变化的 + 没有变化的)

    增量表:新增数据,增量数据是上次导出之后的新数据。

    1、记录每次增加的量,而不是总量;

    2、增量表,只报变化量,无变化不用报

    3、业务库表中需有主键及创建时间,修改时间

    拉链表:维护历史状态,以及最新状态数据

    适用情况:

    1.数据量比较大

    2.表中的部分字段会被更新

    3.需要查看某一个时间点或者时间段的历史快照信息

        查看某一个订单在历史某一个时间点的状态

        某一个用户在过去某一段时间,下单次数

    4.更新的比例和频率不是很大

        如果表中信息变化不是很大,每天都保留一份全量,那么每次全量中会保存很多不变的信息,对存储是极大的浪费

    优点

    1、满足反应数据的历史状态

    2、最大程度节省存储

    8、大数据私房菜数据仓库理论总结

  • 相关阅读:
    Solr7.2.1环境搭建和配置ik中文分词器
    LayUI table表格控件 如何显示 对象中的属性(针对Mybatis的级联查询--一对一情况)
    ajax传数组到后台,后台springmvc接收数组参数
    springMVC访问根路径问题
    SpringMVC拦截器(资源和权限管理)
    jquery ajax post请求实例
    SpringMVC对日期类型的转换
    SpringMVC数据绑定四(自定义的类型转换器)
    SpringMVC数据绑定三(JSON 、XML))
    SpringMVC数据绑定二(List、Set和Map类型)
  • 原文地址:https://www.cnblogs.com/yangms/p/14000942.html
Copyright © 2020-2023  润新知