zoukankan      html  css  js  c++  java
  • 数据仓库维度建模工具箱-第一章 数据仓库、商业智能及维度建模初步(2)

    1.维度建模被广泛应用所满足的需求(维度建模的优势):

    • 以商业用户更易理解的方式发布数据
    • 提高查询性能

    2.星型模型和OLAP多维数据

      在关系型数据库中实现的维度模型称为星型模型,因其结构类似星型结构。在多维数据库中实现的维度模型通常称为联机分析处理(OnLine Analytical Processing,OLAP)多维数据库。

    如何理解实体表、维度表、事实表?

    • 实体表:实体表就是一个实际对象的表,实体表它放的数据一定是一条条客观存在的事物数据,比如说设备 ,它就是客观存在的,所以可以将其设计一个实体表;
    • 事实表:事实表用于度量,它存放的是用于度量的值,其他字段用于保存维度信息的外键字段,物理世界的每一个度量事件对应事实表的一条数据。事实表的设计主要在于找到主干字段,以一个销售订单为例。

        原表字段:product_no,product_name,sale_time,sale_amount,sale_count,profit

        很明显该表的销售数量、销售金额、利润是该表的主干,所以可以将该表拆分为产品维度表和时间维度表

        产品维度表:product_key,product_no,product_name,color,size

        时间维度表:time_key,year,month,date,hour,minute(一般没必要)

        销售事实表:product_key,time_key,sale_amount,sale_count,profit

        若由需求和必要,同样可以将连续变量sale_amount,sale_count,profit离散化后,作为维度使用

        订单维度表:sale_count_key,section

              1      0-5

              2      0-5

              3      5-10

    • 维度表:维度是分析问题的角度,一个事实表一般关联多个维度表

    设计原则:

    • 文本型度量,设计者应尽量将文本字段放入纬度当中,除非该文本字段对每个行来说是唯一的,尽量避免在事实表存储冗余的文本信息,以节省存储空间;
    • 如果产品维度没有销售事实,不要试图以0来填充事实表
    • 维度表一般是含有主键的,作为该维度下单一个体,一行数据数据为单一维度,维度之间一般是层次结构的,例如:年-月-日
  • 相关阅读:
    线程实现的两种方式
    webhook功能概述
    Linux 常用高频命令
    Mac安装Homebrew的正确姿势
    Mac 环境变量配置
    详解k8s零停机滚动发布微服务
    详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana)
    白话kubernetes的十万个为什么(持续更新中...)
    一个典型的kubernetes工作流程
    k8s实战之从私有仓库拉取镜像
  • 原文地址:https://www.cnblogs.com/luweilehei/p/14271297.html
Copyright © 2011-2022 走看看