QlikView - 星型模式



星型模式是一种数据模型,其中多个维度链接到一个事实表。当然,在更大的模型中,可以有多个事实表链接到多个维度和其他事实表。此模型的实用性在于执行快速查询,并在各种表之间进行最少的连接。事实表包含数据,这些数据是度量,并且具有数值。计算应用于事实表中的字段。维度表的唯一键用于将其链接到事实表,事实表通常也具有相同字段名称的键。因此,事实表包含来自整个维度表的键,并形成用于各种查询的连接主键。

输入数据

下面列出了包含来自各种供应商和地区的不同产品的数据的表。供应也发生在不同的时间间隔内,这些时间间隔在时间维度表中捕获。

产品维度

它包含产品类别和产品名称。产品 ID 字段是唯一键。

ProductID,ProductCategory,ProductName
1,Outdoor Recreation,Winter Sports & Activities
2,Clothing,Uniforms
3,Lawn & Garden	Power, Equipment
4,Athletics,Rugby
5,Personal Care,Shaver
6,Arts & Entertainment,Crafting Materials
7,Hardware,Power Tool Batteries

区域维度

它包含供应商所在的区域名称。RegionID 字段是唯一键。

RegionID,Continent,Country
3,North America, USA
7,South America, Brazil
12,Asia,China
2,Asia,Japan
5,Europe,Belgium

供应商维度

它包含供应上述产品的供应商名称。SupplierID 字段是唯一键。

SupplierID,SupplierName
3S12,Supre Suppliers
4A15,ABC Suppliers
4S66,Max Sports
5F244,Nice Foods
8A45,Artistic angle

时间维度

它包含供应上述产品的时间段。TimeID 字段是唯一键。

TimeID,Year,Month
1,2012,Feb
2,2012,May
3,2012,Sep
4,2013,Aug
5,2014,Jan
6,2014,Nov

供应商数量事实

它包含所供应数量的值及其缺陷百分比。它通过与名称相同的键连接到上述每个维度。

ProductID,RegionID,TimeID,SupplierID,Quantity, DefectPercentage
1,3,3,5F244,8452,12
2,3,1,4S66,5124,8.25
3,7,1,8A45,5841,7.66
4,12,2,4A15,5123,1.25
5,5,3,4S66,7452,8.11
6,2,5,4A15,5142,3.66
7,2,1,4S66,452,2.06

加载脚本

上述数据通过使用脚本编辑器加载到 QlikView 内存中。从“文件”菜单打开脚本编辑器或按Control+E。从“来自文件的数据”选项卡中选择表文件选项,并浏览包含上述数据的文件。单击确定并按Control+R将数据加载到 QlikView 的内存中。以下是读取每个上述文件后出现的脚本。

LOAD ProductID, 
     ProductCategory, 
     ProductName
FROM
[C:\Qlikview\images\StarSchema\Product_dimension.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

LOAD TimeID, 
     Year, 
     Month
FROM
[C:\Qlikview\images\StarSchema\Time.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

LOAD SupplierID, 
     SupplierName
FROM
[C:\Qlikview\images\StarSchema\Suppliers.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

LOAD RegionID, 
     Continent, 
     Country
FROM
[C:\Qlikview\images\StarSchema\Regions.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

LOAD ProductID, 
     RegionID, 
     TimeID, 
     SupplierID, 
     Quantity, 
     DefectPercentage
FROM
[C:\Qlikview\images\StarSchema\Supplier_quantity.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

星型模式数据模型

将上述数据读入 QlikView 内存后,我们可以查看数据模型,该模型以星型模式的形式显示所有表、字段和关系。

starschema_model
广告