查看和转换数据模型
数据模型查看器是应用程序数据结构的概述。您可以查看有关表和字段的详细元数据。还可以通过数据字段创建维度和度量。
单击导航栏中准备标签下的数据模型查看器以打开“数据模型查看器”。
用方框表示每个数据表格,将表格名称用作标题并包含表格中列出的所有字段。用线表示表格关联,并用虚线表示循环引用。当选择一个表格或字段时,高亮显示的关联立即能够让您明白字段和表格的关联方式。您可通过单击 搜索特定表格以及字段。
您可以更改缩放级别,方法是单击 , 或使用滑块。单击 可将缩放级别恢复为 1:1。
在预览中,可以检查表格或字段的内容。如果选择字段,还可以将维度和度量快速添加到应用程序。有关更多信息,请参阅预览数据模型查看器中的表格和字段。
移动表格
可以移动表格,只需在背景上拖动它们即可。当保存应用程序时,将保存表格位置。
您可以锁定表格布局(位置和大小),只需单击背景右部分的 即可。要解锁表格布局,请单击 。
还可以使用工具栏中 下的选项自动排列布局:
UI 项目 | 名称 | 描述 |
---|---|---|
网格布局 | 用于在网格中排列表格。 | |
自动布局 | 用于排列表格以适应窗口大小。 | |
还原布局 | 最后打开数据模型查看器时,还原为布局状况显示。 |
调整表格大小
可以使用表格右下角的箭头调整表格的显示大小。当保存应用程序时,不会保存显示大小。
还可以使用工具栏中的自动设置显示大小选项:
UI 项目 | 名称 | 描述 |
---|---|---|
全部折叠 | 用于最小化所有表格,仅显示表格名称。 | |
显示链接字段 | 缩减所有表格的大小,以显示表格名称以及与其他表格关联的所有字段。 | |
全部展开 | 用于最大化所有表格,以显示表格中的所有字段。 |
数据模型性能
以下是可影响数据模型性能的指标。每一个都是将改善应用程序可用性的最佳实践。
操作 | 说明 |
---|---|
删除合成钥 |
在两个或更多数据表共有两个或更多字段时,Qlik Sense 会创建合成钥。这可能意味着脚本或数据模型中存在错误。要诊断合成钥,请参阅合成钥。 |
从数据模型删除循环引用 |
当两个字段具有多个关联时,会发生循环引用。Qlik Sense 将尝试通过更改与其中一个表格之间的连接来解决这些问题。不过,应当解决所有循环引用警告,请参阅了解并解决循环引用。 |
适当的数据粒度 |
您应当只加载必要的数据。例如:用户组仅需要按周、月和年划分的数据。您可在聚合的数据中加载,或在加载脚本中聚合数据以节省内存。如果用户确实需要可视化粒度级别较低的数据,可使用 ODAG 或文档链接。 |
尽可能使用 QVDs |
QVD 文件包含从 Qlik Sense 中导出的数据表。当从脚本中读取数据时,该文件格式可提升速度,同时又非常紧凑。从 QVD 文件读取数据通常比从其他数据源读取快 10 到 100 倍。有关更多信息,请参阅使用 QVD 文件。 |
在加载时优化 QVD 文件 |
QVD 文件可以用两种模式读取:标准(快速)和优化(超快)。所选模式由脚本引擎自动确定。 对于优化的加载存在一些限制。可重命名字段,但任何这些操作将导致标准加载:
|
利用增量加载 |
如果应用程序连接至不断更新的数据库中的大量数据,则加载整个数据集可能会非常耗时。您应当改为使用增量加载,以在数据库中检索新的或已更改的记录。有关详细信息,请参阅加载新的和更新的记录与增量加载。 |
合并 Snowflake 模型 |
如果您有 Snowflake 数据模型,将能够通过使用 Join 前缀或其他映射联接它们中的一些来减少数据表的数目。这对于大型事实表尤其重要。一个好的经验法则是只有一个大型表。有关详细信息,请参阅联接或不联接。 |
将具有较少字段数的表格去规范化 |
如果您有两个包含字段很少的表格,将它们合并可能会提升性能。 有关更多信息,请参阅编写脚本的后续步骤。 |
采用映射加载的去规范化查找(叶)表格 |
如果您只需要将字段从一个表格添加到另一个表格,则不应当使用 Join 前缀。您应当使用 ApplyMap 查找函数,请参阅不要联接 - 使用 ApplyMap。 |
将时间戳删除或与日期字段分离 |
当时间戳出现时,日期字段可能会填满空间,因为字符串表示更大,且不同值的数目更大。如果您的分析不需要精度,您可以使用 Timestamp(Floor(YourTimestamp,1/24)) 将时间戳舍入到最近的小时,或者使用 Date(Floor(YourTimestamp)) 完全删除时间组件。 如果您需要时间戳,可将其与日期本身分离。您可使用相同的 Floor() 函数,然后沿用以下行,通过提取时间来创建新的字段:Time(Frac(YourTimestamp))。 |
从数据模型删除不必要的字段 |
您应当仅在数据模型中加载必要的字段。避免使用 Load * 和 SELECT。确保您保留:
|
在处理大量数据时避免链接表格 |
您应当尽可能使用链接表格。但是,如果您处理大量数据,串联表格可能优于链接表格。 |
串联维度分解为新的字段 |
您应当将串联的维度分解成单独字段。这样会减少在您的字段中唯一值的发生次数。这与时间戳的优化方式相似。 |
尽可能使用 AutoNumber |
您可创建优化负载,方法是先从 QVD 文件将数据载入,然后使用 AutoNumber 语句将值转换为符号键。 有关详细信息,请参阅AutoNumber。 |
避免数据岛 |
数据岛可能会有用,但通常会影响性能。如果您为选择项值创建岛,则使用变量。 |
基于增量时间范围存储 QVD |
您应当分段存储 QVD,如每月。然后这些较小的月度 QVD 可支持可能不需要所有数据的许多不同应用程序。 |
有关最佳实践,请参阅数据建模的最佳实践。