Big Data编程技巧js css html

宽表、窄表、维度表、事实表

2023-02-08  本文已影响0人  AC编程

一、概念

二、宽表

2.1 宽表概念

宽表,顾名思义,就是比普通的数据表宽的表,比如数据库表一,在数据库中是五个字段,表二是四个字段,宽表就是把这两个有业务联系的表通过关联字段弄到一个大表中,这样列数自然就变多了,表也就宽了,所以就有了宽表。

2.2 为什么要用宽表

业务人员在做数据分析时,所需要的数据往往会存储在数据库的多张数据表中,比如订单表中存储了订单编号、商品编号、订购日期等,商品表中存储了商品名称、单价等商品信息,如果要同时查看订单和商品信息,业务人员不知道数据结构,也很难做表间关联,所以就要技术人员将两个表提前关联好形成宽表。

在olap技术发展过程中主要有MOLAP和ROLAP两种形式,MOLAP中的数据文件通常叫做“CUBE”,这个名字大家都比较熟悉了,一般是各个olap产品自己的数据文件格式。而随着数据库性能的提升,ROLAP 产品逐渐流行起来(本文后续用到的产品润乾报表就是一个典型的 ROLAP 产品),ROLAP 中数据保留在关系数据库的事实表中,在使用用途上来说宽表约等于 CUBE。

通过宽表的使用,既能解决多维分析时多表的关联问题又能提高数据查询的速度和分析操作的便捷性。

2.3 宽表的生成

要基于上述业务表生成如下宽表,用来分析销售数据:

宽表

此时业务数据通常来自同一个数据库,那么可以直接通过一个 sql 语句生成:

CREATE TABLE oders_analyse AS (SELECT o.orderid,
    o.amount,
    o.discount,
    p.proname,
    p.price,
    b.typename,
    s.sipname,
    s.linkname,
    k.stockamount FROM
    orders o
        LEFT JOIN
    product p ON o.proid = p.proid
        LEFT JOIN
    proctype b ON p.protype = b.typeid
        LEFT JOIN
    supplier s ON p.supid = s.supid
        LEFT JOIN
    stock k ON o.proid = k.proid)

如果是异构数据库,那么还需要 ETL 工具进行处理。

三、维度表

维度表

四、事实表

事实表
上一篇 下一篇

猜你喜欢

热点阅读