Mondrian系列(六)-星型和雪花模型(1)-概述

本文介绍了雪花模型在数据仓库中的应用,详细解释了如何通过<join>操作符将多个维度表连接到事实表上,以形成复杂的维度结构。以Product维度为例,展示了如何利用产品、产品类别及产品类型表构建多层次维度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们前面的教程中,我们看到了如何基于事实表和维表构建cube,以及事实表和维表如何关联。这就是一种最普通的映射,即星型模型 star schema.

但是一个维度可以基于超过一个表,通过定义良好的路径连接这些表到事实表上,这种维度称为雪花,使用<join> 操作符定义,例如:</join>

Cube name="Sales">

...

Dimension name="Product" foreignKey="product_id">

Hierarchy hasAll="true" primaryKey="product_id" primaryKeyTable="product">

Join leftKey="product_class_key" rightAlias="product_class" rightKey="product_class_id">

Table name="product"/>

Join leftKey="product_type_id" rightKey="product_type_id">

Table name="product_class"/>

Table name="product_type"/>

Join>

Join>

<!-- Level declarations ... -->

Hierarchy>

Dimension>

Cube>

在上面例子中的”Product”维度有三个表组成,事实表通过外键”product_id”连接到”product”表,通过外键“product_class_id”连接到产品类别,通过”product_type_id”连接到product_type。我们需要<join>元素嵌套。</join>

看上去表的排列很复杂,但实际上通过产品表关联,可以减少数据量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值