跳到主要内容 跳到补充内容

数据建模的最佳实践

本部分介绍根据数据构建方式和需要实现的数据模型将数据加载到 Qlik Sense 应用程序中的各种不同方式。

将数据列转变为行

我的数据可能形式如此,我希望让销售数字位于单独的字段

初始数据表
Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

建议的操作  

在您加载表格时,使用 Crosstable 前缀。

结果会如下所示:

在应用交叉表前缀后的表格
Year Quarter Sales
2013 Q1 34
2013 Q2 54
2013 Q3 53
2013 Q4 52
2014 Q1 47
... ... ...

要了解有关交叉表的更多信息,请参阅在数据加载脚本中使用交叉表Crosstable

将数据行转变为字段

我具有带三个与此相似的字段的通用表格,我希望让每个属性采用单独表格的形式:

带三个字段的一般表格
Object Attribute Value
ball color red
ball diameter 25
ball weight 3
box color 56
box height 30
box length 20
box width 25

建议的操作  

使用通用加载前缀创建通用数据模型。

您将得到与此类似的数据模型:

一般数据模型。

要了解有关一般数据的更多信息,请参阅通用数据库Generic

加载以层次级别(例如组织体系)组织的数据

我的数据存储在与此类似的相邻节点表中:

相邻节点表
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

建议的操作  

加载具有层次结构前缀的数据,创建扩展的节点表:

展开的节点表
NodeID ParentNodeID Title Level1 Level2 Level3
1 - General manager General manager - -
2 1 Country manager General manager Country manager -
3 2 Region manager General manager Country manager Region manager

要了解有关层次级别的更多信息,请参阅加载层次结构数据Hierarchy

仅从大型数据库加载新的或更新的记录

我拥有具有大量记录的数据库,我不希望重新加载整个数据库来刷新我应用程序中的数据。我只想加载新的或更新的记录,并移除已从数据库删除的记录。

建议的操作  

使用 QVD 文件实施增量加载解决方案。

有关更多信息,请参阅加载新的和更新的记录与增量加载

将来自两个表格的数据和公共字段整合

Qlik Sense 将自动把表格和通用字段关联,但是我希望控制组合表格的方式。

建议的操作 : Join / Keep

您可将两个表格组合为具有 JoinKeep 前缀的单个内部表格。

有关更多信息,请参阅使用 Join 和 Keep 合并表格

建议的操作 : Mapping

接合两个表格的备选方法为使用映射,由此在映射表中自动查找相关值。这样可减少要加载的数据量。

有关更多信息,请参阅将映射用作联接的替代

将离散值和间隔匹配

我有离散数值表 (Event),我希望将其和一个或多个间隔(Start End)匹配。

离散数值表 (Event)
时间 事件 注释
00:00 0 班次 1 开始
01:18 1 生产线停止
02:23 2 生产线重新启动 50%
04:15 3 生产线速度 100%
08:00 4 班次 2 开始
11:43 5 结束或生产
带间隔的表格(Start End
开始 结束 排序
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

建议的操作  

使用 IntervalMatch 前缀将 Time 字段和间隔关联,该间隔由 Start End 定义。

有关更多信息,请参阅离散数据的匹配间隔

如果间隔未明确定义开头和结尾,只有类似下表中的更改时间戳,您将需要创建间隔表。

带更改时间戳的表格
货币 更改数据 Rate
EUR - 8.59
EUR 28/01/2013 8.69
EUR 15/02/2013 8.45
USD - 6.50
USD 10/01/2013 6.56
USD 03/02/2013 6.30

有关更多信息,请参阅根据一个日期创建日期间隔

处理不一致的字段值

我的数据包含在不同表格中命名不一致的字段值。例如,一个表格在“国家/地区”字段包含值 US,而另一个表格则包含 United States。这种情况将阻止关联。

表格 1
国家/地区 区域
US Maryland
US Idaho
US New York
US California
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

建议的操作  

使用映射表执行数据清理,由此将比较字段值并实现正确关联。

有关更多信息,请参阅数据清理

处理不一致的字段值首字母大写

我的数据包含在不同表格中格式不一致的字段值例如,一个表格包含值 singleType 中,而另一个表格在相同字段包含 Single。该情况将阻止关联,因为 Type 字段将包含 singleSingle 值、首字母大写的内容。

表格 1
类型 价格
23
39
表格 2
类型 颜色
单色 红色
单色 蓝色
白色
Black

建议的操作  

如果您通过添加数据来加载数据,则可在数据管理器中解决该问题。

  1. 在数据管理器中,在表格编辑器中打开 Table2
  2. Type 字段重命名为 Table2.Type

    如果在启用数据分析后通过添加数据添加了表格,字段可能已命名为 Table2.Type 以防止自动关联。在该情况下,该程序将关联两个表格。

  3. 使用表达式 Lower(Table2.Type) 创建计算的字段并将其命名为 Type
  4. 单击加载数据

Table1Table2 现在应当已通过字段 Type 关联,该字段仅包含小写的值,例如 singledouble

如果您希望使用不同的首字母大写,则也可通过相似的程序完成操作,但是要记住表格将使用具有相同名称的字段关联。

  • 要让所有值大写,例如 Single,可改为创建计算的 Type 字段于 Table1 中,并使用表达式 Capitalize(Table1.Type)
  • 要让所有值为大写形式,例如 SINGLE,可在两个表格中创建计算的 Type 字段,并相应使用表达式 Upper(Table1.Type)Upper(Table2.Type)

要了解有关计算的字段的更多信息,请参阅使用已计算字段

要了解有关大写的更多信息,请参阅Capitalize - 脚本和图表函数Lower - 脚本和图表函数Upper - 脚本和图表函数

加载地理空间数据以使用地图将数据可视化

我有希望用地图可视化的数据,例如按国家/地区或按商店划分的销售数据。要使用地图可视化,我需要加载区域或点数据。

建议的操作  

您可从 KML 文件或 Excel 文件加载和您的数据值位置匹配的区域或点数据。此外,您需要加载实际地图背景。

有关更多信息,请参阅加载您自己的地图数据

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!