QlikView – 快速指南

QlikView – 快速指南


QlikView – 概述

QlikView 是领先的业务发现平台。与传统的 BI 平台相比,它在许多方面都是独一无二的。作为一种数据分析工具,它始终保持着数据之间的关系,这种关系可以用颜色直观地看到。它还显示不相关的数据。它通过在列表框中使用单独的搜索来提供直接和间接搜索。

QlikView 的核心专利技术具有内存数据处理功能,为用户提供超快的结果。它动态计算聚合并将数据压缩到原始大小的 10%。QlikView 应用程序的用户和开发人员均不管理数据之间的关系。它是自动管理的。

QlikView 的功能

QlikView 拥有专利技术,这使其具有许多功能,可用于从多个数据源快速创建高级报告。以下是使 QlikView 非常独特的功能列表。

  • 自动维护数据关联– QlikView 自动识别数据集中存在的每条数据之间的关系。用户无需预先配置不同数据实体之间的关系。

  • 数据保存在内存中供多个用户使用,以获得超快的用户体验– 报告的结构、数据和计算都保存在服务器的内存 (RAM) 中。

  • 根据需要动态计算聚合– 由于数据保存在内存中,因此计算是动态完成的。无需存储预先计算的聚合值。

  • 数据被压缩到其原始大小的 10% – QlikView 大量使用数据字典。任何分析只需要内存中的基本数据位。因此,它将原始数据压缩到非常小的尺寸。

  • 使用颜色的视觉关系– 数据之间的关系不是用箭头或线条显示,而是用颜色显示。选择一条数据为相关数据赋予特定颜色,为不相关数据赋予另一种颜色。

  • 直接和间接搜索– 由于数据关联,他们可以输入一些相关数据并获得确切结果,而不是提供用户正在寻找的直接值。当然,他们也可以直接搜索一个值。

QlikView – 安装

下载 QlikView

QlikView 的免费个人版可以从QlikView 个人版下载 您需要注册您的详细信息才能下载。

下载后,安装是一个非常简单的过程,您需要接受许可协议并提供用于安装的目标文件夹。下面给出的屏幕截图描述了整个设置过程。

启动安装向导

双击QlikViewDesktop_x64Setup.exe将显示一个屏幕以选择您选择的语言。选择英语后,将显示以下屏幕。然后单击下一步

安装步骤 1

接受许可协议

阅读许可协议,如果您同意,请选择“我接受许可协议中的条款”选项。然后单击“下一步”。

安装步骤 2

提供您的详细信息

提供您的姓名和组织详细信息。然后点击“下一步”。

安装步骤 3

选择目标文件夹

您可以接受安装的默认目标或更改它。然后单击“下一步”。

安装步骤 4

选择安装类型

选择设置类型为“完成”。然后单击“下一步”。

安装步骤 5

开始安装

在此屏幕中,您最终决定真正开始安装。如果需要,您仍然可以返回并更改一些选项。假设到目前为止一切正常,请单击“安装”。

安装步骤 6

安装完成

安装成功后会出现安装完成画面。单击“完成”。

安装步骤 7

验证安装

您可以通过转到 Windows 开始菜单并单击 QlikView 图标来验证安装。屏幕显示如下。

验证安装

您现在已准备好学习 QlikView。

QlikView – 架构

作为领先的业务发现平台,QlikView 采用与其他传统平台截然不同的数据发现方法构建。QlikView 不会先构建查询,然后根据查询获取结果。相反,它在加载后立即在不同数据对象之间形成关联,并提示用户以任何方式探索数据。没有预定义的数据钻取路径。只要数据可用且相关联,数据下钻路径就可以发生在任何方向。

当然,用户也可以在使用 QlikView 中可用的数据建模方法创建数据元素之间的关联方面发挥作用。

架构概览

QlikView 的架构由一个前端可视化处理的数据和一个后端为 QlikView 用户文档提供安全和发布机制组成。下面给出的图表描述了 QlikView 的内部工作。该架构在图片下方详细讨论。

qlikview_architecture

前端

QlikView 中的前端是用于查看 QlikView 文档的基于浏览器的访问点。它包含QlikView Server,主要供业务用户使用,通过 Internet 或 Intranet URL 访问已创建的 BI 报表。

业务用户使用此前端探索数据并与之交互,并得出有关数据的结论。他们还通过实时或离线共享见解和探索数据,与其他用户就一组给定的报告进行协作。这些用户文档的格式为 .qvw,也可以作为独立文档存储在 windows 操作系统中

前端的 QlikView 服务器管理用户和 QlikView 后端系统之间的客户端服务器通信。

后端

QlikView 后端由QlikView desktopQlikView Publisher 组成

QlikView的桌面是一个向导驱动Windows环境中,其具有加载和从它的源数据的变换的特征。它的拖放功能用于创建在前端可见的报告的 GUI 布局。由 QlikView 桌面创建的文件类型以.qvw扩展名存储这些是传递到前端 QlikView 服务器的文件,该服务器为用户提供这些文件。可以修改.qvw文件以存储数据文件,这些文件称为.qvd文件。它们是二进制文件,只包含数据而不包含 GUI 组件。

QlikView的出版商作为配送服务分发各种QlikView的服务器和用户之间的.qvw文件。它处理授权和访问权限。它还通过使用.qvw文件中定义的连接字符串从数据源直接加载数据

QlikView – 导航

在本章中,我们将熟悉可供用户进行各种操作的屏幕。我们将学习基本导航并了解 QlikView 中可用图标执行的不同功能。

入门屏幕

此屏幕是用于在 QlikView 中导航的温和介绍。当您启动 QlikView 并保持选中启动 QlikView 时显示起始页面选项时,会出现此屏幕如果您向下滚动左侧的示例部分,您可以单击任何示例,如 –电影数据库数据可视化等以调用它并查看 QlikView 的工作原理。随意点击!向右移动时,您会注意到最近收藏夹链接,其中显示了所有最近访问的 QlikView 文档和您想要经常访问的文档。

验证安装

菜单命令

关闭“入门”窗口后,我们会看到包含所有可用菜单命令的主界面。它们代表 QlikView 中可用的整套功能。下面给出了菜单命令每个部分的概述。

所有菜单

文件菜单

此菜单用于创建新的 QlikView 文件并从本地系统和 QlikView 服务器打开现有文件。此菜单中的重要功能是 –

  • 以附件形式发送邮件以将当前打开的文档作为附件发送。

  • 减少数据仅查看报告布局和数据库结构,不查看任何数据。

  • 表查看器选项用于在图形视图中查看表、字段及其关联的结构。

所有菜单

编辑菜单

该菜单用于执行复制、粘贴、剪切和使用格式刷等编辑选项。此菜单中的重要功能是 –

  • 全部激活选项激活打开的工作表中存在的所有工作表对象。

  • 删除以从活动窗口中删除工作表。

  • 高级搜索选项用于使用多选框使用高级搜索表达式进行搜索。

所有菜单

查看菜单

此菜单用于查看标准工具栏和放大/缩小功能。它还将所有活动工作表显示为级联菜单。此菜单中的重要功能是 –

  • 打开/关闭 WebView 模式可切换 WebView 模式和本地视图模式。

  • 当前选择显示所选工作表对象的字段名称和文件值。

  • 设计网格用于切换活动对象的工作表对象占位符和对齐网格以调整布局中的对象大小和移动对象。

查看菜单

选择菜单

此菜单用于选择和清除工作表对象中的值选择。它还提供了返回和前进到您正在处理的工作表的不同逻辑语句的功能。此菜单中的重要功能是 –

  • 锁定锁定当前选择中的所有值。
  • 解锁解锁当前选择中的所有锁定值。

查看菜单

布局菜单

布局菜单用于添加选项卡式工作表、选择不同的工作表和重新排列工作表对象。此菜单中的重要功能是 –

  • 提升工作表将当前工作表或标签向前移动一步。
  • 降级工作表 将当前工作表或标签向后移动一步。
  • 删除工作表删除活动工作表及其中的所有内容。

布局菜单

设置菜单

设置菜单用于设置用户首选项、文档属性和工作表属性。此菜单中的重要功能是 –

  • 变量概览所有非隐藏变量及其在单个列表中的值。
  • 表达式概览将文档、工作表和工作表对象中的表达式显示为单个列表。

设置菜单

书签菜单

此菜单用于为不同的文档创建书签以加快检索速度。

查看菜单

报告菜单

报告菜单用于创建新报告和编辑现有报告。您可以编辑布局、向报告添加页面以及删除报告。

报告菜单

工具菜单

工具菜单是一个非常突出的菜单,经常用于创建图表和打开 QlikView 管理控制台。此菜单中的重要功能是 –

  • 快速图表向导无需使用大量不同的可用设置和选项即可创建简单的图表。

  • 时间图表向导创建时间序列图表。

  • 统计图表向导用于对数据应用常见的统计测试。

工具菜单

对象菜单

此菜单用于创建新的工作表对象和修改现有的工作表对象。工作表属性选项打开页面以设置定义工作表的参数。此菜单中的重要功能是 –

  • 复制工作表– 创建工作的副本以及所有工作表对象。

  • 将图像复制到剪贴板– 将工作表区域的位图图片复制到剪贴板。

  • 删除– 完全删除工作表和工作表对象。

对象菜单

窗口帮助菜单用于组织的QlikView应用程序的不同窗口和提供的帮助文档。

QlikView – Excel 文件

QlikView 通过简单的拖放操作接受 Excel 电子表格进行数据分析。您需要打开QlikView 主窗口并将excel 文件拖放到界面中。它将自动创建显示 Excel 数据的工作表。

选择 Excel 文件

保持 QlikView 的主窗口打开并浏览您要使用的 Excel 文件。

1_excel_load_data_drag

选择数据源

将 excel 文件放入主窗口后,将出现文件向导。文件类型已选择为 Excel。标签下,选择嵌入标签单击“下一步”继续。

2_excel_file_wizard

加载脚本

加载脚本出现,显示将数据加载到 QlikView 文档的命令。该命令可以编辑。

3_excel_load_script

现在,Excel 向导会提示以 *.qvw 文件扩展名的形式保存文件。它要求选择您需要保存文件的位置。单击“下一步”继续。现在是时候查看从 Excel 文件加载的数据了。我们使用Table Box 工作表对象来显示这些数据。

创建表格框

表框是片材对象作为一个表来显示可用的数据。它是从菜单Layout → New Sheet Object → Table Box调用的

4_table_box_option

单击下一步后,我们可以选择从表框中选择字段。您可以使用“提升”或“降级”按钮重新排列字段。

5_Table_box_fields

表框数据

完成上述步骤后,将出现 Table Box Sheet Object,其中显示了从 Excel 文件中读取的数据。

6_table_box_result

QlikView – 分隔文件

QlikView 可以使用平面文本文件中的数据,其中字段由逗号、制表符、分号等字符分隔。这里,我们以 CSV 为例。每列数据用逗号分隔的文件称为 CSV 文件。它是一种使用非常广泛的文件格式,用于存储组织为列和行的平面文本数据。

QlikView 使用文件菜单下脚本编辑器中可用的文件中的数据选项加载 csv 文件或者,您也可以打开一个新的 QlikView 文档并按control+E以获取脚本编辑器窗口,如下所示。从适当的路径中选择文件 Product_details.csv。

1_dilimeted_insert_script

选择文件头

打开选定的 CSV 文件时,会出现如下所示的窗口。Labels 下选择Embedded Labels,因为我们的文件有一个标题行作为它的第一行。单击完成

csv_file_header

加载脚本

将文件加载到 QlikView 是通过加载脚本完成的,可以在下面的屏幕截图中看到。因此,当我们使用任何分隔文件时,我们可以根据文件格式调整以下脚本。

3_dilimeted_load_script

现在脚本向导提示以 *.qvw 文件扩展名的形式保存文件。它要求选择您需要保存文件的位置。单击“下一步”继续。现在,是时候查看从分隔文件加载的数据了。我们使用Table Box 工作表对象来显示这些数据。

创建表格框

表框是片材对象作为一个表来显示可用的数据。它是从菜单Layout → New Sheet Object → Table Box调用的

4_table_box_option

单击下一步后,我们可以选择从表框中选择字段。您可以使用“提升”或“降级”按钮重新排列字段。

5_Table_box_fields

表框数据

完成上述步骤后,将出现 Table Box Sheet Object,其中显示了从 Excel 文件中读取的数据。

6_table_box_result

QlikView – XML 文件

XML 是一种文件格式,它使用标准 ASCII 文本共享万维网、内联网和其他地方的文件格式和数据。它代表可扩展标记语言 (XML)。与 HTML 类似,它包含标记标签。但是,与 HTML 中的标记标记描述页面结构不同,在 XML 中标记标记描述包含在文件中的数据的含义。QlikView 可以使用 XML 文件中的数据。

从 XML 文件加载数据的过程类似于我们之前看到的分隔文件的加载过程。打开脚本编辑器。单击菜单Insert → Load Statement → Load from File浏览要加载的 XML 文件。在本例中,我们选择了employee_dat.xml 文件。

1_file_insert_script

选择 XML 文件结构

打开选定的 XML 文件时,会出现一个窗口,如下所示。左侧文件类型部分下,选择 XML。XML 文件的内容现在与标题列一起显示为表格。单击完成。

2_xml_file_type

文件加载器脚本

将 XML 文件加载到 QlikView 是通过加载脚本完成的,如下所示。因此,当我们使用任何 XML 文件时,我们可以调整下面给定的脚本来重命名列或更改文件位置等。

3_xml_load_script

现在脚本向导会提示您以 *.qvw 文件扩展名的形式保存文件。它要求选择您需要保存文件的位置。单击“下一步”继续。现在是查看从 XML 文件加载的数据的时候了。我们使用Table Box 工作表对象来显示这些数据。

创建表格框

表框是片材对象作为一个表来显示可用的数据。它是从菜单Layout → New Sheet Object → Table Box调用的

table_box_option

单击下一步后,我们可以选择从表框中选择字段。您可以使用“提升”或“降级”按钮重新排列字段。

5_xml_select_fileds

表框数据

完成上述步骤后,将出现 Table Box Sheet Object,其中显示了从 Excel 文件中读取的数据。

6_xml_final_data

QlikView – 网络文件

QlikView 可以处理来自 Web 的 HTML 格式文件。它可以从 HTML 表格中提取数据。要处理的 Web 文件的 URL 作为输入给出,QlikView 获取文件的结构和内容。然后它分析页面的结构,从页面中存在的 HTML 表中提取相关数据。我们脚本编辑器的数据选项卡下的来自文件的数据部分中选择Web 文件选项

1_webfile_load

将 URL 作为输入

选择 Web 文件选项后,我们会得到一个新窗口,将 URL 作为输入。在这个例子中,我们选择亚洲主权国家和附属领土列表作为维基百科的输入页面。提及 URL 并单击下一步。

web_file_wizard

从 Web 文件中选择表格

打开选定的 Web 文件时,会出现如下所示的窗口。在这里,我们可以看到网页中存在的各种表,标记为 @1、@1、@3 等。选择第一个表并单击 Next 两次。

3_webfile_file_type

选择表格的列

从上表中,我们可以通过使用十字符号删除不需要的列来仅选择我们需要的列。

4_webfile_choose_fields

加载脚本

将文件加载到 QlikView 是通过加载脚本完成的,可以在下面给出的屏幕截图中看到。因此,当我们使用任何分隔文件时,我们可以根据文件格式调整下面给定的脚本。

5_webfile_load_script

现在脚本向导提示以 *.qvw 文件扩展名的形式保存文件。它要求选择您需要保存文件的位置。单击“下一步”继续。现在是时候查看从 Web 文件加载的数据了。我们使用Table Box 工作表对象来显示这些数据。

创建表格框

表框是片材对象作为一个表来显示可用的数据。它是从菜单Layout → New Sheet Object → Table Box调用的
table_box_option

单击下一步后,我们可以选择从表框中选择字段。您可以使用“提升”或“降级”按钮重新排列字段。

6_webfile_table_box_fields

表框数据

完成上述步骤后,将出现 Table Box Sheet Object,其中显示了从 Web 文件中读取的数据。标记非英文字符!!

7_webfile_final_data

QlikView – 数据库连接

QlikView 可以连接到大多数流行的数据库,如 MySQL、SQL Server、Oracle、Postgress 等。它可以将数据和表结构提取到 QlikView 环境中,并将结果存储在其内存中以供进一步分析。连接到任何这些数据库的步骤包括使用 DSN 创建 ODBC 连接,然后使用此 DSN 获取数据。

在本教程中,我们将连接到 MySQL 数据库。本教程假设您有可用的 MySQL 环境。按照以下步骤为 MySQL 创建 ODBC DSN(数据源名称) –创建 DSN。将 DSN 命名为mysqluserdsn或者如果您已经为 MySql 创建了一个 DSN,您可能更喜欢使用现有的。

连接到数据库

在本章中,我们将使用名为sakila的 MySql 内置数据库我们创建一个新的 QlikView 文档并打开脚本编辑器(按 Control+E)。在选项卡Data 下,我们找到名为 Database 的部分。从下拉列表中选择 ODBC,然后单击连接。将打开以下窗口。选择名为mysqluserdns的 DSN ,然后单击测试连接。应显示消息连接测试成功

 数据库文件连接

验证与数据库的连接

成功连接后,将出现下面给出的屏幕,显示脚本编辑器主窗口中的 DB 连接。

数据库连接

选择数据库表

单击上面窗口中的选择以获取表和列的列表。在这里,由于我们使用sakila作为默认数据库创建了 DSN,因此我们从该数据库中获取了表和列的列表。我们可以从数据库下拉列表中选择另一个数据库,如下面的屏幕截图所示。本章将继续使用 sakila 数据库。

数据库选择表

表加载器脚本

在上面的窗口中单击 OK,我们回到主脚本编辑器,显示使用名为actor的表的脚本

数据库表脚本

在 qvd 文件中显示结果

现在加载到 QlikView 文档中的数据需要永久存储以便进一步分析。为此,我们将编辑脚本以将数据以 qvd 文件的形式存储。Control+E打开编辑脚本窗口,编写如下代码。

在代码中,我们为列指定了适当的名称,并在 load 语句上方提及了表名。另外,我们给出了生成的 qvd 文件将被存储的路径。将此文件另存为QV_mysql.qvw

数据库到qvd

使用 qvd 文件

qvd 文件可以加载到主文档中,用于创建图形和表格以供进一步分析。Control+R重新加载QV_mysql.qvw文件,然后在图表向导中单击下一步选择要创建的直表,以actor_id、first_name、last_name为维度,以actor_id的count为表达式。图表如下所示。

数据库图表

QlikView – 内联数据

数据可以通过直接键入或粘贴的方式输入到 QlikView 文档中。此功能是将数据从剪贴板获取到 QlikView 的快速方法。脚本编辑器在“插入”选项卡下提供此功能。

脚本编辑器

要打开 Inline data load 选项,我们打开脚本编辑器并转到Insert → Load Statement → Load Inline

inline_script_editor

插入数据

在打开上面的屏幕时,我们会得到一个类似电子表格的文档,我们可以在其中输入值。我们还可以粘贴剪贴板中已有的值。请注意列标题​​是自动创建的。单击完成。

内联脚本

加载脚本

加载数据的命令是在后台创建的,可以在脚本编辑器中看到。

inline_script_editor

表框数据

在创建表框工作表对象时,我们会看到从内联数据加载选项中读取的数据。

inline_data_chart

QlikView – 常驻负载

QlikView 可以从其 RAM 中已存在的表中加载数据,这些表已由脚本处理。当您想要创建一个从同一脚本中的现有表派生数据的表时,就会出现此要求。请注意,新表和现有表应该在同一个脚本中。

创建加载脚本

打开脚本编辑器(或使用 Control+E)并提及以下脚本。在这里,我们创建了一个名为Regions的内联表,其中包含不同地区的销售数据。然后我们创建另一个名为Total 的表,以按区域名称计算总销售额。最后我们删除表 Region,因为在这个 .qvw 文件中,我们只需要名为Total的表进行数据分析。

resident_load_edit_script

表框数据

在创建 Table Box Sheet Object 时,我们会看到从常驻数据加载选项中读取的数据。

inline_script_editor

QlikView – 预加载

QlikView Preceding load 是我们使用 load 语句的一种加载类型,它采用同一脚本中存在的另一个 load 语句的列。脚本编辑器窗口底部的第一个 Load 语句读取的数据,然后由其上方的 load 语句使用。

加载脚本

下面给出的屏幕截图显示了数据脚本,该脚本作为内联数据加载,然后将 max 函数应用于其中一列。底部的 load 语句使数据在 QlikView 的内存中可用,供第一个 load 语句上方的第二个 load 语句使用。第二个 load 语句应用带有 group by 子句的 max 函数。

1_preceeding_load_script

表框数据

在创建表框工作表对象时,我们会看到从内联数据加载选项中读取的数据。

2_preceeding_load_table_box

QlikView – 增量负载

随着 QlikView 文档数据源中数据量的增加,加载文件所需的时间也会增加,这会减慢分析过程。最小化加载数据所需时间的一种方法是仅加载源中的新记录或更新的记录。这种仅将新记录或更改记录从源加载到 QlikView 文档的概念称为增量加载

为了从源中识别新记录,我们对每一行使用顺序唯一键或​​日期时间戳。这些唯一键或数据时间字段的值必须从源文件流向 QlikView 文档。

让我们考虑以下包含零售店产品详细信息的源文件。将其保存为本地系统中的 .csv 文件,QlikView 可在该系统中访问它。在一段时间内,添加了更多产品并更改了一些产品的描述。

Product_Id,Product_Line,Product_category,Product_Subcategory
1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities
2,"Food, Beverages & Tobacco",Food Items,Fruits & Vegetables
3,Apparel & Accessories,Clothing,Uniforms
4,Sporting Goods,Athletics,Rugby
5,Health & Beauty,Personal Care
6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments
7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories
8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials
9,Hardware,Tool Accessories,Power Tool Batteries
10,Home & Garden,Bathroom Accessories,Bath Caddies
11,"Food, Beverages & Tobacco",Food Items,Frozen Vegetables
12,Home & Garden,Lawn & Garden,Power Equipment

将数据加载到 QlikView

我们将通过选择表文件选项,使用脚本编辑器 (Control+E) 加载上述 CSV 文件,如下所示。这里我们还将数据保存到本地系统中的 QVD 文件中。将 QlikView 文档保存为 .qvw 文件。

 incr_laod_create_qvd

验证加载的数据。

我们可以通过创建一个名为Table Box的工作表对象来检查加载到 QlikView 文档的数据这在布局菜单和新建图纸对象子菜单中可用

table_box_option

创建表格布局

选择表格框工作表对象后,我们进入下一个屏幕,用于选择要创建的表格中的列及其位置。我们选择以下列及其位置,然后单击完成。

Incr_load_product_details

查看现有数据

下图显示了上一步中布置的数据。

增量加载数据

更新源数据

让我们将以下三个记录添加到源数据中。此处,产品 ID 是唯一编号,代表新记录。

13,Office Supplies,Presentation Supplies,Display
14,Hardware,Tool Accessories,Jigs
15,Baby & Toddler,Diapering,Baby Wipes

增量加载脚本

现在,我们编写脚本以仅从源中提取新记录。

// Load the data from the stored qvd.
Stored_Products:
LOAD Product_Id, 
     Product_Line, 
     Product_category, 
     Product_Subcategory
FROM
[E:\Qlikview\data\products.qvd]
(qvd);

//Select the maximum value of Product ID.
Max_Product_ID:
Load max(Product_Id) as MaxId
resident Stored_Products;

//Store the Maximum value of product Id in a variable.
Let MaxId = peek('MaxId',-1);

	 drop table Stored_Products;


//Pull the rows that are new.	 
NewProducts:
LOAD Product_Id,Product_Line, Product_category,Product_Subcategory
	 from [E:\Qlikview\data\product_categories.csv]
	 (txt, codepage is 1252, embedded labels, delimiter is ',', msq)
	 where Product_Id > $(MaxId);
	 
//Concatenate the new values with existing qvd.
Concatenate
LOAD Product_Id,Product_Line, Product_category, 
     Product_Subcategory
FROM [E:\Qlikview\data\products.qvd](qvd);

//Store the values in qvd.
store NewProducts into [E:\Qlikview\data\products.qvd](qvd);

上面的脚本只获取新记录,这些记录被加载并存储到 qvd 文件中。正如我们看到的新产品 ID 为 13、14 和 15 的记录。

incremental_load_final_data

QlikView – 数据文件 (QVD)

QlikView 的重要特性之一,使其如此与众不同,是能够以非常压缩的大小存储大量数据,并将其与 QlikView 文档一起存储。因此,一旦创建了文档,我们就不需要连接到数据源,因为数据已经与文档的布局一起存储了。这是通过 QVD 文件实现的,QVD 文件是一个以 .qvd 扩展名存储的平面文件。QVD 文件存储一个 QlikView 文档的数据,它是使用 QlikView 文档中可用的脚本编辑器创建的。

使用 QVD 文件的优势

在 QlikView 中使用 QVD 文件的优点如下 –

  • 更快的数据加载
  • 优雅地支持随着数据量的增长而扩展
  • 用于增量加载
  • 来自多个来源的数据可以归入一个数据集
  • 并行提取数据

创建 QVD 文件

QVD 文件是在加载 QlikView 文件期间使用 STORE 语句创建的。此语句创建一个 qvd 文件,该文件作为文件存储在指定位置;与创建它的 QVW 文件分开。

下面给出了通过读取源文件将数据加载到 QlikView 文档后存储 qvd 文件的示例。

csv_to_qvd.JP​​G

使用 QVD 文件

QVD 文件加载到 QlikView 文档的方式与使用其他文件(如 CSV、Excel 和分隔文件)类似。我们使用“文件”菜单的“打开”选项并浏览我们之前创建的 QVD 文件。打开它会给我们一个窗口来查看数据,选择列标题并进行任何所需的数据转换

open_qvd_file

QVD 文件加载器脚本

单击完成后,将出现编辑脚本窗口,其中显示用于加载 QVD 文件的代码。我们可以进一步编辑此代码。例如,仅获取要显示的少数列或应用任何内置函数等。单击完成将文件加载到当前 QlikView 文档中。将 QlikView 文档保存为use_qvd.qvw

qvd_file_load_script

显示来自 QVD 文件的数据

使用Control+R重新加载文档并选择菜单选项Layout → New Sheet Objects → Table Box将出现一个窗口,显示 QVD 文件中存在的表中的所有列。选择“全部添加”将所有列添加到显示表中。使用“提升/降级”选项更改列的顺序。单击“完成”。出现以下屏幕,显示 QVD 文件的内容。

qvd_file_data_table

QlikView – 工作表和对象

每个 QlikView 文档至少由一个名为Main 的工作表组成我们可以添加更多的工作表,就像同一个 QlikView 文档的许多页面一样。表格帮助我们显示多种数据格式,例如 – 多个图表或多个表格。每个工作表可以包含各种工作表对象。此外,工作表可以使用提升工作表/降级工作表选项重新排列,并且可以使用移除工作表选项从 QlikView 文档中移除

Sheets_add_remove

图纸属性

工作表具有各种属性,可以设置这些属性来自定义工作表。例如,我们可以设置工作表的名称及其颜色。右键单击工作表中的任意位置,然后选择“属性”选项。然后选择以下属性。

  • 工作表设置 → 颜色。– 这将设置工作表的背景颜色。

  • 选项卡设置 → 自定义颜色。– 这将为出现工作表名称的选项卡设置颜色。

  • 标题。– 这将设置工作表的名称。

Sheets_properties

创建图纸对象

工作表对象是嵌入工作表中的 QlikView 数据元素。它们显示加载到 QlikView 内存中的数据。每个工作表对象都与一个数据源及其一个或多个列相关联。工作表对象是从布局菜单创建的,如下所示。

sheet_objects_menu

使用图纸对象

工作表对象显示来自数据源的数据,并且工作表中的所有对象都相互关联。让我们创建一个列表框和一个多框,看看这个关联的动作。

创建列表框

列表框显示 QlikView 内存中可用表格的列中的数据。从“添加工作表对象”选项中选择“列表框”选项并按如下所示设置属性。

sheet_list_box

创建多功能框

Multi Box 表示来自表中多列的数据。从“添加工作表对象”选项中选择“选框”选项并设置如下所示的属性。

sheet_multi_box

完成上述给定步骤后,将出现以下窗口,其中显示了两个对象。

sheet_list_multi_boxes

工作表对象之间的关联

我们可以通过从 Multi Box 中选择一个选项来查看工作表对象如何相互链接,该选项突出显示了列表框中的关联行。让我们在 Multi Box 的 Product Category 下拉列表下选择“Diapering”。出现下图所示的窗口。

sheet_objects_association

QlikView – 脚本

脚本是 QlikView 中一项非常强大的功能,它可以控制数据加载选项和数据转换。它支持使用 QlikView 中可用的许多内置函数,并创建子程序以在 QlikViewdocument 内的多个脚本中使用。

脚本编写是使用脚本编辑器完成的。使用脚本编辑器从文件菜单访问它我们也可以按Control +E打开脚本编辑器窗口。它预先填充了一些设置为要处理的数据的默认格式的数据格式。例如,千位分隔符是逗号,日期是月-日-年格式。这些可以根据需要进行更改以适应传入的数据。

 脚本编辑器

脚本编辑器功能

脚本编辑器有很多功能,可以从脚本编辑器窗口的菜单中访问,这是一个与主菜单不同的菜单。下面给出了重要功能的列表。

文件菜单

  • 重新加载– 重新加载脚本并获取新数据。

  • 大写/小写– 转换单词的大小写,因为 QlikView 区分大小写。

  • 注释– 用于注释代码块。

编辑菜单

  • 清除整个脚本– 清除活动脚本选项卡。

  • 打开脚本文件– 打开保存的脚本文件。

  • Table Viewer – 用于查看正在加载的数据的表格视图。

插入菜单

  • 环境变量– 插入标准的环境变量列表。

  • 脚本文件– 允许浏览脚本文件并插入它们。

  • Connect/Disconnect Statement – 用于连接或断开与外部数据库的连接。

标签菜单

  • 插入选项卡– 在当前光标位置插入一个选项卡。

  • 提升/降级选项卡– 允许从左到右移动选项卡,反之亦然。

  • 与上一个合并– 用于将活动标签的内容与上一个选项卡合并。

工具菜单

  • ODBC 管理员 64 位/ODBC 管理员 32 位– 允许为数据源设置正确的 DSN 信息。

  • 编辑器首选项– 允许您配置文本字体和大小、帮助功能、快捷方式、默认脚本引擎等。

  • 语法检查– 用于验证脚本代码的语法。

QlikView – 函数

QlikView 有许多内置函数,可用于应用于内存中已有的数据。这些函数被组织成许多类别,一旦被选中,函数的语法就会出现。我们可以单击“粘贴”按钮将表达式放入编辑器并提供参数。

创建表格框

按照下面给出的屏幕截图所示的菜单创建一个表格框。

table_box_option

完成上述步骤后,我们会在左下角出现一个显示计算条件的窗口。

3_functions_calculation_fields。

功能列表

单击计算条件旁边的按钮,然后转到功能选项卡。它显示了可用的功能列表。

4_functions_all_functions

函数类别中选择String 时,我们只能看到几个函数,它们将字符串作为参数。

5_functions_string

在接下来的章节中,我们将看到许多重要函数的使用。

QlikView – 间隔匹配

QlikView IntervalMatch 是一个强大的函数,用于将不同的数值匹配到数值区间。它有助于分析事件与计划事件的实际发生情况。使用它的场景的示例是在生产车间的装配线中,皮带计划在特定时间和特定持续时间运行。但是,由于故障等原因,实际运行可能会在不同的时间点发生。

例子

考虑一条装配线,其中有 3 条皮带 A、B 和 C。它们计划在一天中的特定时间启动和停止。在给定的一天,我们研究实际的开始和结束时间,并分析当天发生的一切。为此,我们考虑两组观察结果,如下所示。

# Data Set for AssembilyLine.
StartTime,EndTime, BeltNo
00:05,4:20, A
1:50,2:45,B
3:15,10:30,C
	
# Data set for the events happened.
ActualTime,Product
1:10,Start Belt A
2:24,Stop Belt A
3:25,Restart Belt A
4:35,Stop Belt A
2:20,Start Belt B
3:11, Stop Belt B
3:15,Start Belt C
11:20, Stop Belt C

创建脚本

我们使用Control+E在新的 QlikView 文档中打开脚本编辑器以下代码将所需的表创建为内联数据。创建此脚本后,按control+R将数据重新加载到 QlikView 文档中。

intervalmatch_create_table

创建图纸对象

让我们创建一个Table Box 工作表对象来显示 IntervalMatch 函数生成的数据。转到菜单项Layout → New Sheet Object → Table Box出现以下窗口,我们在其中提及表的标题并选择要显示的必填字段。

 intervalmatch_create_table

显示表格框

在上面的窗口中单击“确定”后,会出现一个表格,其中显示了与 StartTime 和 EndTime 间隔匹配的字段 ActualTime。

intervalmatch_table_data

QlikView – 聚合函数

QlikView 聚合函数用于从表的行生成聚合数据。创建加载脚本时,这些函数应用于列。下面给出的是聚合函数的示例列表。在应用聚合函数时,我们还需要适当地应用Group by子句。

  • SUM给出列的数值的总和。
  • AVG给出列的数值的平均值。
  • MAX给出列的数值的最大值。
  • MIN给出列的数值的最小值。

例子

考虑以下在本地系统中存储为 product_sales.csv 的数据。它代表商店中不同产品线和产品类别的销售数字。

Product_Line,Product_category,Quantity,Value
Sporting Goods,Outdoor Recreation,12,5642
Food, Beverages & Tobacco,38,2514
Apparel & Accessories,Clothing,54,2365
Apparel & Accessories,Costumes & Accessories,29,4487
Sporting Goods,Athletics,11,812
Health & Beauty,Personal Care,21,6912
Arts & Entertainment,Hobbies & Creative Arts,58,5201
Arts & Entertainment,Paintings,73,8451
Arts & Entertainment,Musical Instruments,41,1245
Hardware,Tool Accessories,2,456
Home & Garden,Bathroom Accessories,36,241
Food,Drinks,54,1247
Home & Garden,Lawn & Garden,29,5462
Office Supplies,Presentation Supplies,22,577
Hardware,Blocks,53,548
Baby & Toddler,Diapering,19,1247

创建加载脚本

我们使用Control+E在新的 QlikView 文档中打开脚本编辑器以下代码将所需的表创建为内联数据。创建此脚本后,按 control+R 将数据重新加载到 QlikView 文档中。

Aggregate_create_script

创建图纸对象

让我们创建一个Table Box 工作表对象来显示由 Aggregate 函数生成的数据。转到菜单Layout → New Sheet Object → Table Box出现以下窗口,我们在其中提及表的标题并选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

聚合数据

应用 SUM() 函数

下面给出的是用于查找跨产品线和产品类别的销售数量和销售价值总和的加载脚本。

Aggregate_sum_script

单击确定并按Control+R将数据重新加载到 QlikView 文档中。现在按照上面给出的相同步骤 –创建工作表对象创建一个 QlikView 表格框,用于显示脚本的结果,如下所示。

Aggregate_sum_data

应用 AVG() 函数

下面给出的是用于创建每个产品线的销售数量和销售价值的平均值的加载脚本。

# Average sales of Quantity and value in each Product Line.
LOAD Product_Line, 
     avg(Quantity),
	 avg(Value)
FROM
[E:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
Group by Product_Line;

单击确定并按Control+R将数据重新加载到 QlikView 文档中。现在按照上面给出的相同步骤 –创建工作表对象创建一个 QlikView 表格框,用于显示脚本的结果,如下所示。

Aggregate_average_data

应用 MAX() & MIN() 函数

下面给出了用于创建每个产品线的最大和最小销售数量的加载脚本。

# Maximum and Minimum sales in each product Line.
LOAD Product_Line,
     max(Quantity) as MaxQuantity,
     min(Quantity) as MinQuantity
FROM
[E:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
Group by Product_Line;

单击确定和Control+R将数据重新加载到 QlikView 文档中。现在按照与上面相同的步骤 –创建工作表对象创建一个 QlikView 表格框,用于显示脚本的结果,如下所示。

Aggregate_max_min_data

QlikView – 匹配函数

QlikView 中Match()函数用于将表达式中的字符串值与列中存在的数据值进行匹配。它类似于我们在 SQL 语言中看到的 in 函数。获取包含特定字符串的行很有用,它还有一个以 wildmatch() 函数形式的扩展。

让我们将以下数据视为以下示例的输入文件。

Product_Id,Product_Line,Product_category,Product_Subcategory
1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities
2,Food, Beverages & Tobacco,Food Items,Fruits & Vegetables
3,Apparel & Accessories,Clothing,Uniforms
4,Sporting Goods,Athletics,Rugby
5,Health & Beauty,Personal Care
6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments
7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories
8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials
9,Hardware,Tool Accessories,Power Tool Batteries
10,Home & Garden,Bathroom Accessories,Bath Caddies
11,Food, Beverages & Tobacco,Food Items,Frozen Vegetables
12,Home & Garden,Lawn & Garden,Power Equipment
13,Office Supplies,Presentation Supplies,Display
14,Hardware,Tool Accessories,Jigs
15,Baby & Toddler,Diapering,Baby Wipes

使用 Match() 函数加载脚本

以下脚本显示了加载脚本,该脚本读取名为 product_categories.csv 的文件。我们在Product_Line字段中搜索与字符串 ‘Food’ 和 ‘Sporting Goods’ 匹配的值。

Matched_func_script

创建图纸对象

让我们创建一个 Table Box 工作表对象来显示 match 函数生成的数据。转到菜单Layout → New Sheet Object → Table Box出现以下窗口,我们在其中提及表的标题,然后选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

Matched_func_data

使用 Wildmatch() 函数加载脚本

所述wildmatch()函数是匹配()函数,其中作为字符串的一部分用来与在所搜索的字段值匹配的值,我们可以使用通配符的延伸。我们搜索字符串 ‘Off*’,’*ome*。

wildmatch_script

创建图纸对象

让我们创建一个Table Box 工作表对象来显示由 wildmatch 函数生成的数据。转到菜单项布局 → 新建工作表对象 → 表格框。出现以下窗口,我们在其中提及表的标题,然后选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

野生比赛数据

QlikView – 排名函数

QlikView 中Rank()函数用于显示字段中值的排名以及返回具有特定排名值的行。所以它被用于两种场景。第一个场景是在 QlikView 图表中显示字段中值的排名,第二个场景是在聚合函数中仅显示具有特定排名值的行。

输入数据

下面给出了描述 Rank 函数的示例中使用的数据。您可以将其作为 .csv 文件保存在您的系统中可由 QlikView 访问的路径中。

Product_Id,Product_Line,Product_category,Quantity,Value
1,Sporting Goods,Outdoor Recreation,12,5642
2,Food, Beverages & Tobacco,38,2514
3,Apparel & Accessories,Clothing,54,2365
4,Apparel & Accessories,Costumes & Accessories,29,4487
5,Sporting Goods,Athletics,11,812
6,Health & Beauty,Personal Care,21,6912
7,Arts & Entertainment,Hobbies & Creative Arts,58,5201
8,Arts & Entertainment,Paintings,73,8451
9,Arts & Entertainment,Musical Instruments,41,1245
10,Hardware,Tool Accessories,2,456
11,Home & Garden,Bathroom Accessories,36,241
12,Food,Drinks,54,1247
13,Home & Garden,Lawn & Garden,29,5462
14,Office Supplies,Presentation Supplies,22,577
15,Hardware,Blocks,53,548
16,Baby & Toddler,Diapering,19,1247
17,Baby & Toddler,Toys,9,257
18,Home & Garden,Pipes,81,1241
19,Office Supplies,Display Board,29,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。单击确定并按Control+R将数据加载到 QlikView 的内存中。

rank_laod_script

使用 Rank() 函数创建图表

接下来,我们按照下面给出的步骤创建一个图表,该图表显示相对于维度 Product_Line 描述的归档的等级

选择图表类型

单击图表向导并选择选项直表作为图表类型。单击下一步

rank_chart_type

选择图表维度

从第一个维度下拉列表中,选择 Product_Line 作为维度。单击下一步

rank_select_diemnsions

定义图表表达式

在自定义表达式字段中,提及等级表达式,如下所示。这里我们考虑名为Value的数字字段,它表示每个产品线下每个类别的销售额值。单击下一步

rank_chart_expression

显示图表

在上述步骤中单击完成后,将出现以下图表,其中显示了每个产品线的销售价值排名。

rank_chart_data

使用带等级的聚合函数

诸如 – max、min 等聚合函数可以将 rank 作为参数来返回满足特定 rank 值的行。我们认为脚本编辑器中存在以下表达式,它将给出每个产品线下包含最高销售额的行。

# Load the records with highest sales value for each product line.
LOAD Product_Line, 
     max(Value,1)
FROM
[E:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
group by Product_Line;

创建图纸对象

让我们创建一个Table Box 工作表对象来显示由上述给定脚本生成的数据。转到菜单Layout → New Sheet Object → Table Box出现以下窗口,我们在其中提及表的标题并选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

rank_aggr_func

QlikView – 窥视功能

QlikView 中peek()函数用于从先前记录中获取字段的值并将其用于计算。

输入数据

让我们考虑如下所示的每月销售数字。使用文件名monthly_sales.csv 保存数据。

Month,Sales Volume
March,2145
April,2458
May,1245
June,5124
July,7421
August,2584
September,5314
October,7846
November,6532
December,4625
January,8547
February,3265

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E为包含上述数据的文件选择表文件选项。编辑加载脚本以添加以下代码。单击确定并单击Control+R将数据加载到 QlikView 的内存中。

LOAD Month, 
     [Sales Volume],
     peek('Sales Volume') as Prevmonth
FROM
[C:\Qlikview\data\monthly_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建图纸对象

让我们创建一个Table Box 工作表对象来显示由上述脚本生成的数据。转到菜单项Layout → New Sheet Object → Table Box出现以下窗口,我们在其中提及表的标题并选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 csv 文件的数据,如下所示。还可以设置如下所示的排序顺序,以按照与源中的字段Month相同的顺序获取结果

Monthly_sales_load_order

完成上述步骤并单击Finish 后,我们会看到 Table 框显示如下所示的数据。

Monthly_sales_prevmonth

在计算中使用 peek() 函数

PEEK()可以在涉及其他列计算中使用。让我们显示每个月销售量的百分比变化。下面的脚本实现了这个结果。

LOAD
Month, [Sales Volume],
peek('Sales Volume') as Prevvolume,
(([Sales Volume]-peek('Sales Volume')))/peek('Sales Volume')*100  as Difference
FROM
[C:\Qlikview\data\monthly_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq); 

创建图纸对象

让我们创建一个Table Box 工作表对象来显示由上述脚本生成的数据。转到菜单项Layout → New Sheet Object → Table Box出现以下窗口,我们在其中提及表的标题并选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

Monthly_sales_prevmonth_diff

QlikView – RangeSum 函数

QlikView 中RangeSum()函数用于对所选字段进行选择性求和,而 sum 函数不容易实现该求和。它可以将包含其他函数的表达式作为其参数并返回这些表达式的总和。

输入数据

让我们考虑如下所示的每月销售数字。使用文件名monthly_sales.csv 保存数据。

Month,Sales Volume
March,2145
April,2458
May,1245
June,5124
July,7421
August,2584
September,5314
October,7846
November,6532
December,4625
January,8547
February,3265

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击确定并单击Control+R将数据加载到 QlikView 的内存中。

LOAD 
Month, [Sales Volume]
FROM
[C:\Qlikview\data\monthly_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

应用 RangeSum() 函数

将上述数据加载到 QlikView 的内存中后,我们编辑脚本以添加一个新列,这将给出当月销售量的滚动总和。为此,我们还借助前一章中讨论的 peek 函数来保存上一条记录的值,并将其添加到当前记录的销售量中。以下脚本实现了结果。

LOAD
Month, [Sales Volume],
rangesum([Sales Volume],peek('Rolling')) as Rolling
FROM
[C:\Qlikview\data\monthly_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建图纸对象

让我们创建一个Table Box 工作表对象来显示由上述给定脚本生成的数据。转到菜单Layout → New Sheet Object → Table Box

出现以下窗口,我们在其中提及表的标题并选择要显示的必填字段。单击确定将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

范围总和

QlikView – 文档

QlikView 文档是包含用于数据展示和分析的所有对象的文件。它包含工作表、变量、数据模型、源数据连接详细信息,甚至是从源中提取数据后加载的数据。

文档属性

我们可以快速找出一个 QlikView 文档的基本信息。单击帮助 → 文档支持信息下面给出了一个示例输出。

文档细节

设置文档背景图像

我们可以使用常规选项卡下的壁纸图像复选框将图像设置为文档的背景图像我们选择一个图像并使用下拉按钮将其对齐在左上角位置。

document_backgound_image

选择上述选项时会出现以下屏幕。

document_backgound_tp

工作表对象

QlikView 文档包含各种 Sheet 对象,可以通过拖动来移动它们并放置在文档中的任何位置。让我们创建两个工作表对象,一个表格框和一个统计框您可以按照前面我们已经学习过的章节来创建工作表对象。此外,我们正在使用文件 Product_sales.csv,其中提到这里。

document_sheet_objects

可以使用“工作表”选项卡查看工作表对象的详细信息。它显示文档中包含的所有工作表,并且对于每个工作表,都会显示工作表对象。工作表和工作表对象都有唯一的 ID。我们还可以从该选项卡本身编辑这些对象的各种属性。

document_sheet_list

安排文档

可以安排 QlikView 文档以某些所需的时间间隔刷新。这是使用“文档属性”窗口下的计划”选项卡完成的

document_scheduling

QlikView – 列表框

一个列表框代表一个特定领域的所有值的列表。在列表框中选择一个值会突出显示其他工作表对象中的相关值。这有助于更快地进行可视化分析。遵循各种工作表对象之间的向下钻取路径也非常有用。它还具有搜索功能,允许在列表框中搜索特定值,这对于非常长的值列表非常有用。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击确定并单击Control+R将数据加载到 QlikView 的内存中。

LOAD Product_Line, 
     Product_category, 
     Value
FROM
[C:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建列表框

列表框的创建涉及通过菜单Layout → New Sheet Object → List Box导航以下屏幕显示了这些步骤。

 list_box_creation

接下来,我们选择产品类别作为我们构建列表框的字段。

list_box_properies

列表框数据

完成上述步骤后,将出现以下屏幕,其中将 Product category 的值显示为列表框。

list_box_data

列表框中的搜索选项

当列表框包含非常多的值时,很难向下滚动并查找它。因此列表框顶部的搜索框可用于键入搜索字符串。只要输入第一个字母,相关值就会出现。

list_box_search

列表框和关联

其他工作表对象会自动与列表框关联,通过从列表框中选择值可以轻松观察到关联。

list_box_association

QlikView – 多选框

一个多盒代表所有的值从多个字段作为下拉值列表。与列表框类似,在 Multi Box 中选择一个值会突出显示其他工作表对象中的相关值。这有助于更快地进行可视化分析。遵循各种工作表对象之间的向下钻取路径也非常有用。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击确定并单击Control+R将数据加载到 QlikView 的内存中。

LOAD Product_Line, 
     Product_category, 
     Value
FROM
[C:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建多功能框

Multi Box 的创建涉及通过菜单Layout → New Sheet Object → Multi Box导航以下屏幕显示了这些步骤。

Multi_box_create

接下来,我们选择 Products 销售表的字段来构建 Multi Box。

Multi_box_fields

多盒数据

完成上述步骤后,将出现以下屏幕,其中将 Product category 的值显示为 Multi box。

Multi_box_data

多盒和关联

其他工作表对象会自动与多选框关联,通过从多选框中选择值可以轻松观察到关联。

Multi_box_association

QlikView – 文本对象

QlikView文本对象用于显示有关正在显示的 QlikView 报表的一些描述性信息。它还可以显示基于某些表达式的计算。它主要用于在与其他工作表对象分开的框中使用颜色和不同字体类型显示格式良好的信息。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击“确定”并按“Control+R”将数据加载到 QlikView 的内存中。

LOAD Product_Line, 
     Product_category, 
     Value
FROM
[C:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建表格框

对于上述数据,让我们创建一个Table Box,它将以表格形式显示数据。转到菜单Layout → New Sheet Object → Table Box并选择如下所示的列。

2_text_object_create_table_box

单击应用,然后单击确定以完成表框的创建。出现以下屏幕。

3_text_object_create_table_box

创建文本对象

对于上述数据,让我们创建一个Text Object转到菜单布局→新建工作表对象→文本对象,如下所示。

4_text_object_create

创建文本对象表达式

在上面创建的文本框中,右键单击并选择属性。然后在常规选项卡下的文本框中输入要在文本对象上显示的内容,如下所示。

5_text_object_edit

选择背景颜色

可以使用“常规”选项卡中的背景选项设置文本对象的背景颜色。

6_text_object_edit

文本对象

最终的文本对象如下所示。如果我们单击某个产品线对其进行过滤,则文本对象中的内容会相应更改以反映新值。

7_text_object_final_data

QlikView – 条形图

条形图是一种非常广泛使用的图表方法,以条形的形式研究两个维度之间的关系。图中条形的高度代表一维的值。条形的数量代表另一个维度的值序列或分组值。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击“确定”并按“Control+R”将数据加载到 QlikView 的内存中。

LOAD Product_Line, 
     Product_category, 
     Value
FROM
[C:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建表格框(表格对象)

对于上述数据,让我们创建一个Table Box,它将以表格形式显示数据。转到菜单Layout → New Sheet Object → Table Box并选择如下所示的列。

2_text_object_create_table_box

单击应用,然后单击确定以完成表框的创建。出现下面给出的屏幕。

3_text_object_create_table_box

使用快速图表向导

要开始创建条形图,我们将使用快速图表向导。单击它时,会出现以下屏幕,提示您选择图表类型。选择条形图,然后单击下一步。

5_bar_chart_chart_type

选择图表维度

选择产品线作为第一维。

6_bar_chart_chart_diemnsion

选择图表表达式

图表表达式用于在具有数值的字段上应用Sum、Average 或 Count等函数。我们将对名为 Value 的字段应用 Sum 函数。点击下一步。

7_bar_chart_chart_expression

选择图表格式

图表格式定义了图表的样式和方向。我们选择每个类别中的第一个选项。点击下一步。

8_bar_chart_chart_format

条形图

条形图如下所示。它显示了不同产品线的字段值的高度。

9_bar_chart_display

QlikView – 饼图

饼图是具有不同颜色的圆形切片值的表示。切片被标记,与每个切片对应的数字也在图表中表示。QlikView 使用图表向导或图表表格对象创建饼图。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击“确定”并按“Control+R”将数据加载到 QlikView 的内存中。

LOAD Product_Line, 
     Product_category, 
     Value
FROM
[C:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

使用快速图表向导

要开始创建饼图,我们将使用快速图表向导。单击它时,会出现以下屏幕,提示您选择图表类型。选择饼图,然后单击下一步。

2_pie_chart_chart_type

选择图表维度

选择产品线作为第一维。

3_pie_chart_dimension

选择图表表达式

图表表达式用于在具有数值的字段上应用Sum、Average 或 Count等函数。我们将对名为 Value 的字段应用 Sum 函数。点击下一步。

4_pie_chart_expression

选择图表格式

图表格式定义了图表的样式和方向。我们选择第三个选项。点击下一步。

5_pie_chart_format

饼图

条形图如下所示。它显示了不同产品线的字段值的高度。

6_pie_chart_display

QlikView – 仪表板

仪表板是一项强大的功能,可以同时显示来自多个字段的值。QlikeView 的内存数据关联功能可以显示所有工作表对象中的动态值。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击“确定”并按“Control+R”将数据加载到 QlikView 的内存中。

LOAD Product_Line, 
     Product_category, 
     Value
FROM
[C:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

选择矩阵

我们从上述输入数据中选择字段作为要显示在仪表板中的矩阵。为此,我们按照菜单Layout → Select Fields 中的步骤进行操作

3_dahboard_matrices_fileds

在下一个屏幕中,选择要在仪表板中显示的可用字段。单击“确定”。

4_dahboard_listbox_fields

出现以下屏幕,显示所有字段

5_dahboard_listbox_display

将图表添加到仪表板

N现在我们通过右键单击工作表中的任意位置并选择“新建工作表对象”→“图表”来向仪表板添加图表

6_dahboard_add_chart

选择图表类型

让我们选择图表类型作为条形图来显示各个产品线的销售值。

7_dahboard_add_bar_chart

图表维度

让我们选择 Product Line 作为图表维度。

8_dahboard_chart_dimension

图表表达

用于显示 Product Line 维度销售值的表达式写入表达式编辑器中。

9_dahboard_chart_expression

仪表板

下面给出的是完成上述步骤后显示的仪表板。

10_dahboard_data

使用仪表板

可以选择上述仪表板中的值来过滤特定产品,图表也会相应变化。此外,关联的值会突出显示。

11_dahboard_data相关

QlikView – 数据转换

数据转换是将现有数据修改为新数据格式的过程。它还可能涉及过滤掉或向现有数据集添加一些特定值。QlikView 可以在将数据读取到其内存并使用许多内置函数后进行数据转换。

输入数据

让我们考虑以下输入数据,它代表每个月的销售数字。这被存储为一个 csv 文件,名称为 quadly_sales.csv

Month,SalesVolume
March,2145
April,2458
May,1245
Sales Values in Q2
June,5124
July,7421
August,2584
Sales Values in Q3
September,5314
October,7846
November,6532
December,4625
January,8547
February,3265

加载数据

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E。从“文件中的数据”选项卡中选择“表文件”选项,然后浏览文件quorlt_sales.csv。点击下一步。

1_dt_file_wizard

转换向导

下一个屏幕提示我们选择一些数据转换。单击按钮启用转换步骤

2_dt_edit_transformations

转换类型

在此步骤中,我们将选择转换以消除描述季度的行。我们选择垃圾→删除标记,选择不需要的两行。点击下一步。

3_dt_garbage_rows

文件向导选项

选择转换类型和要删除的行后,下一个屏幕会提示我们进行任何进一步的转换,例如选择 where 子句或添加任何前缀。我们将忽略此步骤并单击完成。

4_dt_next_garbage_rows

加载转换数据的脚本

下面给出了所有转换步骤完成后上述数据的加载脚本。

5_dt_load_script

显示转换后的数据

可以使用Table Box 工作表对象显示转换后的数据下面给出了创建它的步骤。

6_dt_create_table_box

接下来,我们选择表格框的字段。

7_dt_table_box_fields

表格框现在显示工作表中的数据。

8_dt_fina_data

QlikView – 填充功能

QlikView 中Fill函数用于将现有字段中的值填充到新字段中。

输入数据

让我们考虑以下输入数据,它们代表实际和预测的销售数字。

Month,Forecast,Actual
March,2145,2247
April,2458,
May,1245,
June,5124,3652
July,7421,7514
August,2584,
September,5314,4251
October,7846,6354
November,6532,7451
December,4625,1424
January,8547,7852
February,3265,

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。

1_fill_choose_file

上一步点击Next后,我们选择Enable Transformation Step按钮进行需要的数据转换。

2_fill_file_wizard

选择数据转换

由于我们将使用填充功能,让我们选择填充选项卡,它在实际字段下显示空值。

3_fill_transformation

创建填充条件

单击“填充”按钮后,会出现选择目标列和单元格条件的选项。我们选择第三列,因为我们想用第二列中同一行的值填充该列的空值。此外,将单元格值选择为空,以便只有空单元格会被新值覆盖。

4_fill_cell_condition

转换后的数据

完成上述步骤后,我们得到如下所示的转换数据。

5_fill_filled_cells

加载转换数据的脚本

可以使用脚本编辑器查看转换数据的加载脚本。该脚本显示了替换空单元格值的表达式。

6_fill_laod_script

显示转换后的数据

可以通过使用菜单Layout → New Sheet Object 中的选项创建表格框来查看转换后的数据

7_fill_table_box

QlikView – 列操作

列操作是一种数据转换类型,其中新列使用现有列中的值填充,满足特定条件。条件可以是作为数据转换步骤的一部分创建的表达式。

输入数据

让我们考虑以下输入数据,它们代表实际和预测的销售数字。

Month,Forecast,Actual
March,2145,2247
April,2458,2125
May,1245,2320
June,5124,3652
July,7421,7514
August,2584,3110
September,5314,4251
October,7846,6354
November,6532,7451
December,4625,1424
January,8547,7852
February,3265,2916

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。单击下一步后,我们选择启用转换步骤按钮来执行所需的数据转换。

1_cm_file_wizard

选择数据转换

选择列选项卡,然后选择新建按钮。它要求指定新列和行条件。我们将第 3 列指定为源列并选择以 2 开头的值作为行条件。

2_cm_add_column

转换后的数据

完成上述步骤后,我们得到如下所示的转换数据。

3_cm_ added_column

加载转换数据的脚本

可以使用脚本编辑器查看转换数据的加载脚本。该脚本显示表达式,该表达式创建具有所需值的新列。

4_cm_file_wizard_script

显示转换后的数据

可以通过使用菜单Layout → New Sheet Object 中的选项创建表格框来查看转换后的数据

5_cm_已完成

QlikView – 旋转表格

QlikView 中的旋转表类似于 Microsoft Excel 中的列和行转置功能,但有一些附加选项。我们可以在多个方向上转置列,它们会给出不同的结果。在本章中,我们将看到将行转换为列的正常转置选项。

输入数据

让我们考虑以下输入数据,它们代表实际和预测的销售数字。

Month,Forecast,Actual
March,2145,2247
April,2458,
May,1245,
June,5124,3652
July,7421,7514
August,2584,
September,5314,4251
October,7846,6354
November,6532,7451
December,4625,1424
January,8547,7852
February,3265,

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。

1_file_wizard

单击下一步后,我们选择启用转换步骤按钮来执行所需的数据转换。

选择数据转换

由于我们将使用Rotate函数,让我们选择 Rotate 选项卡,该选项卡显示所有字段的值。

2_rotate_option

应用旋转

我们点击Transpose按钮对上述数据进行转置。转置数据如下所示。

3_rotate_rotated

加载转换数据的脚本

可以使用脚本编辑器查看转换数据的加载脚本。该脚本显示了替换空单元格值的表达式。

4_rotate_load_script

显示转换后的数据

可以通过使用菜单Layout → New Sheet Object 中的选项创建表格框来查看转换后的数据

5_rotate_loaded_data

QlikView – 维度和度量

维度和度量是基本实体,它们始终用于数据分析。例如,考虑分析的结果,“每个季度的销售量变化百分比是多少?” 在这种情况下,每个季度代表维度,即季度的名称。体积的百分比变化表示Measures,这是对维度中每个值的计算。以下是这两个术语的一些广泛接受的定义。

  • Dimension – 它是数据集中的一个描述性字段,代表几个不同的值。示例 – 月、年、产品 ID 等。
  • Measures – 它是一个数字字段,对每个不同的维度值执行一些计算。

输入数据

让我们考虑以下输入数据,它代表不同地区不同产品线和产品类别的销售量和收入。将数据保存到 .csv 文件中。

ProductID,ProductCategory,Region,SalesVolume, Revenue
1,Outdoor Recreation,Europe,457,25841
2,Clothing,Europe,125,54281
3,Costumes & Accessories,South Asia,781,54872
4,Athletics,South Asia,839,87361
5,Personal Care,Australia,473,15425
6,Arts & Entertainment,North AMerica,625,84151
7,Hardware,South America,772,45812

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。单击确定并按Control+R将数据加载到 QlikView 的内存中

表结构

我们可以通过菜单File → Table Viewer或按Control+T 来查看表格的结构出现以下屏幕,其中我们在绿色框中标记了维度,在红色框中标记了度量。

1_view_table

使用维度和度量

让我们创建一个直表图表,显示使用上述维度和度量的计算。单击快速图表向导,如下所示。

接下来,单击直表选项。点击下一步。

2_dm_straight_table

选择尺寸

在此屏幕中,我们选择 Region 作为维度,因为我们要选择每个区域的总收入。

3_dm_table_diemsnion

选择测量

Next 屏幕提示在度量字段上应用计算。我们选择在“收入”字段上应用“总和”。

4_dm_table_measure

最终图表

完成上述步骤后,我们得到了显示每个区域(维度)的总收入(度量)的最终图表。

5_dm_final_chart

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 字段是唯一的 Key。

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

供应商维度

它包含供应上述产品的供应商名称。供应商 ID 字段是唯一的密钥。

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

时间维度

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

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

QlikView – 合成密钥

一个合成关键是QlikView的解决方案时,有歧义哪个键两个表之间使用造成人为的关键。当两个表有两个或多个公共字段时,就会出现这种情况。QlikView 在内存中创建关联的功能会自动检测这种情况并创建一个附加表,该表将保存创建的新键的值。

输入数据

让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。

Sales:
ProductID,ProductCategory,Country,SaleAmount
1,Outdoor Recreation,Italy,4579
2,Clothing,USA,4125
3,Costumes & Accessories,South Korea,6521

Product:
ProductID, Country
3,Brazil
3,China
2,Korea
1,USA

加载脚本

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。

合成密钥加载脚本

数据模型

接下来,我们使用表格查看器的菜单命令 Control+T 查看数据模型。出现以下屏幕,其中显示了第三个表的创建,该表提供合成键的值,因为这两个表都将 ProductID 和 Country 作为匹配键。

合成密钥数据模型

合成键的影响

合成键表示正在使用的数据模型中的缺陷。它们不会对数据的正确性或报告的性能造成任何问题。如果一个大数据模型有一个或两个合成键的实例,事情就会很好。但是,如果我们有太多它们,那么这意味着重新设计数据模型。

QlikView – 生成数据

很多时候,我们需要由所使用的软件以编程方式生成一些数据,而这些数据并非来自源头。例如,100 个随机数或一年中第 23 周的日期。数据分析师可能需要创建此类数据,以便对到达时不包含这些值的数据进行一些分析。QlikView 提供了一个名为Autogenerate的函数,可用于此类需求。

资料要求

考虑一个场景,我们只需要查找日期,即星期四或星期日。我们需要为从今天开始到年底的范围找到它。我们创建以下脚本,这将实现这一点。

generate_data_load_script

解释

我们声明了两个变量来捕获当月的第一天和年末。接下来,我们应用各种函数和过滤条件来生成所需的值。recno() 函数为这些日期中的每一个创建一个记录。我们添加自动生成函数,将变量作为范围。

生成的数据

在将上述脚本加载到 QlikView 的内存并使用菜单Layout → New Sheet Objects → Table Box创建一个Table Box 后,我们会得到如下所示的数据。

generate_data_calendar

QlikView – 交叉表

在分析数据时,我们会遇到希望列变成行,反之亦然的情况。这不仅仅是关于转置,它还涉及将许多列卷在一起或在一行中多次重复许多值以实现表中所需的列和行布局。

输入数据

考虑以下输入数据,其中显示了每个季度某个产品的区域销售情况。我们使用以下给定的数据创建一个分隔文件 (CSV)。

Quarter,Region1,Region2,Region 3
Q1,124,421,471
Q2,415,214,584
Q3,417,321,582
Q4,751,256,95

加载输入数据

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。选择如下所示的选项后,单击下一步。

1_cross_tab_file_wizard

交叉表选项

在下一个窗口(文件向导→选项)中,单击交叉表按钮。它以不同的颜色突出显示列。粉红色显示限定符字段,对于属性字段中的每个值,该字段将在多行中重复属性字段下的单元格值作为数据。单击确定。

2_cross_tab_choose_fields

交叉表转换

转换后的数据显示,其中所有区域字段都集中在一个列中,但每个季度的值都重复。

3_cross_tab_result1

加载脚本

交叉表转换的加载脚本显示了下面给出的命令。

4_cross_tab_load_script

交叉表数据

在使用菜单Layout → New Sheet Objects → Table Box创建表格框工作表对象时,我们得到以下输出。

5_cross_tab_table_box

QlikView – 直表

直表是最广泛使用的工作表对象,用于在 QlikView 中显示数据。它们非常简单但功能强大,具有列重新排列、排序和背景着色等功能。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。出现以下屏幕。

1_File_wizard

单击“确定”并按“Control+R”将数据加载到 QlikView 的内存中

创建表格框

接下来,我们创建一个新的表框类型的工作表对象。我们按照如下所示的菜单操作。

3_straight_table_menu

选择列

QlikView 提示选择将显示在最终表格框中的列。我们选择所有列并使用提升或降级选项来设置列的顺序。

4_straight_table_choose_fields

选择显示样式

接下来,我们选择样式选项卡为显示数据提供特定的背景颜色。当前样式选项列出了许多预构建的样式。我们
每两行
选择条纹的
睡衣红

6_straight_table_pyjama

列重新排序

我们可以通过在列标题处按住鼠标按钮然后将其拖动到所需位置来重新排序列的位置。

7_straight_table_pyjama_reorder

QlikView – 数据透视表

数据透视表广泛用于数据分析,以显示数据中许多可用维度的值总和。QlikView 的图表选项具有通过选择适当的图表类型来创建数据透视表的功能。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Value
Sporting Goods,Outdoor Recreation,5642
Food, Beverages & Tobacco,2514
Apparel & Accessories,Clothing,2365
Apparel & Accessories,Costumes & Accessories,4487
Sporting Goods,Athletics,812
Health & Beauty,Personal Care,6912
Arts & Entertainment,Hobbies & Creative Arts,5201
Arts & Entertainment,Paintings,8451
Arts & Entertainment,Musical Instruments,1245
Hardware,Tool Accessories,456
Home & Garden,Bathroom Accessories,241
Food,Drinks,1247
Home & Garden,Lawn & Garden,5462
Office Supplies,Presentation Supplies,577
Hardware,Blocks,548
Baby & Toddler,Diapering,1247
Baby & Toddler,Toys,257
Home & Garden,Pipes,1241
Office Supplies,Display Board,2177

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 的内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。出现以下屏幕。

1_File_wizard

单击“确定”并按“Control+R”将数据加载到 QlikView 的内存中。

选择图表类型

接下来,我们使用图表向导选择数据透视表选项。点击下一步。

2_pivot_select_chart

选择图表维度

在下一个屏幕中,我们选择 Product_Line 作为图表的第一个维度。

3_pivot_choose_dimension

选择图表表达式

下一个屏幕提示我们选择图表表达式,我们在其中选择值的总和。

4_pivot_choose_sum

选择图表格式

单击下一步后,我们会看到选择图表格式的屏幕,其中我们选择睡衣 绿色作为样式和默认模式。

5_pivot_chart_style

数据透视图数据

完成上述步骤后,我们将得到如下最终图表。

6_pivot_pivot_final

QlikView – 设置分析

QlikView 的集合分析功能用于将不同工作表对象中的数据分成多个集合,并保持其中一些集合中的值不变。简单来说,它创建了一个选项,不将某些工作表对象与其他工作表对象关联,而默认行为是所有工作表对象都相互关联。这有助于过滤一个工作表对象中的数据并查看其他工作表对象中的相应结果,而选择为不同集合的工作表对象根据其自己的过滤器显示值。

输入数据

让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。

Product_Line,Product_category,Month,Value
Arts & Entertainment,Hobbies & Creative Arts,Jan,5201
Arts & Entertainment,Paintings,Feb,8451
Arts & Entertainment,Musical Instruments,Jan,1245
Baby & Toddler,Diapering,Mar,1247
Baby & Toddler,Toys,Dec,257
Apparel & Accessories,Clothing,Feb,574
Apparel & Accessories,Costumes & Accessories,Apr,1204
Arts & Entertainment,Musical Instruments,Apr,3625
Baby & Toddler,Diapering,Apr,1281
Apparel & Accessories,Clothing,Jul,2594
Arts & Entertainment,Paintings,Sep,6531
Baby & Toddler,Toys,May,7421
Apparel & Accessories,Clothing,Aug,2541
Arts & Entertainment,Paintings,Oct,2658
Arts & Entertainment,Musical Instruments,Mar,1185
Baby & Toddler,Diapering,Jun,1209

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中的数据”选项卡中选择“表格文件”选项,然后浏览包含上述数据的文件。出现如下画面。

1_set_ana_load_script

创建表格框

使用菜单选项Layout → New Sheet Objects → Table Box选择所有可用于创建表格框的字段,并使用菜单选项Layout → New Sheet Objects → List Box选择包含月份字段的列表框此外,创建一个直表图表,显示每个产品类别下的总销售额。

4_set_ana_sales_table

数据关联

现在我们可以通过选择其中一个值来观察这三个工作表对象之间的关联。让我们从月份列表框中选择四月和一月。我们可以在 Table Box 和显示相关值的图表中看到值的变化。

5_set_ana_association

克隆对象

接下来,我们克隆销售总额图表以生成一组与其他工作表对象无关的新数据。右键单击图表Sales Sum,然后单击选项克隆,如下所示。同一图表的另一个副本出现在 QlikView 文档中。

6_set_ana_clone

设置表达式

接下来,我们选择图表Sales Sum的第二个副本并右键单击它以获取图表属性。我们创建一个名为 Sales values 的表达式,在Definition选项卡下编写公式,如下所示。

7_set_ana_set表达式

应用集合分析

完成上述步骤后,我们发现当我们选择 6 月份时,我们会在 Table Box 和 Sales Sum 图表中获得相关值。但是,4 月的销售额不会改变,因为它基于集合表达式中的数据。

8_set_ana_final

QlikView – 联接

QlikView 中的联接用于将来自两个数据集的数据合并为一个。QlikView 中的联接与 SQL 中的联接含义相同。输出中仅显示与连接条件匹配的列值和行值。如果您完全不熟悉加入,您可能希望首先在此处了解它们

输入数据

让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。

Product List:
ProductID,ProductCategory
1,Outdoor Recreation
2,Clothing
3,Costumes & Accessories
4,Athletics
5,Personal Care
6,Hobbies & Creative Arts

ProductSales:
ProductID,ProductCategory,SaleAmount
4,Athletics,1212
5,Personal Care,5211
6,Hobbies & Creative Arts,1021
7,Display Board,2177
8,Game,1145
9,soap,1012
10,Beverages & Tobacco,2514

内部联接

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。然后我们编辑脚本中的命令以在表之间创建内部联接。

加载脚本

内连接仅获取两个表中都存在的那些行。在这种情况下,将获取Product List 和 Product Sales表中可用的行我们使用菜单Layout → New Sheet Objects → Table Box创建一个Table Box,我们在其中选择要显示的所有三个字段 – ProductID、ProductCategory 和 SaleAmount。

内部联接

左加入

左连接涉及从左侧表中获取所有行以及从右侧表中获取匹配行。

加载脚本

Sales:
LOAD ProductID, 
     ProductCategory, 
     SaleAmount
FROM
[C:\Qlikview\data\product_lists.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

LEFT JOIN(Sales)

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

我们使用菜单Layout → New Sheet Objects → Table Box创建一个表格框,我们在其中选择要显示的所有三个字段 – ProductID、ProductCategory 和 SaleAmount。

left_join

右加入

右连接涉及从右侧表中获取所有行以及从左侧表中获取匹配行。

加载脚本

Sales:
LOAD ProductID, 
     ProductCategory, 
     SaleAmount
FROM
[C:\Qlikview\data\product_lists.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

RIGHT JOIN(Sales)

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

我们使用菜单Layout → New Sheet Objects → Table Box创建一个表格框,我们在其中选择要显示的所有三个字段 – ProductID、ProductCategory 和 SaleAmount。

right_join

外连接

外连接涉及从右侧表和左侧表中获取所有行。

加载脚本

Sales:
LOAD ProductID, 
     ProductCategory, 
     SaleAmount
FROM
[C:\Qlikview\data\product_lists.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

OUTER JOIN(Sales)

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

我们使用菜单Layout → New Sheet Objects → Table Box创建一个Table Box,我们在其中选择要显示的所有三个字段 – ProductID、ProductCategory 和 SaleAmount。

外连接

QlikView – 保持

QlikView 中的 keep 命令用于组合来自两个数据集的数据,使这两个数据集都保留在内存中。除了两个主要区别之外,它与我们在前一章中介绍的连接非常相似。第一个区别是 – 在保留的情况下;这两个数据集在 QlikView 的内存中都可用,而在 join 中,加载语句仅生成一个数据集,您必须从中选择列。第二个区别是 – 没有外部保持的概念,因为在连接的情况下我们有外部连接可用。

输入数据

让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。

Product List:
ProductID,ProductCategory
1,Outdoor Recreation
2,Clothing
3,Costumes & Accessories
4,Athletics
5,Personal Care
6,Hobbies & Creative Arts

Product Sales:
ProductID,ProductCategory,SaleAmount
4,Athletics,1212
5,Personal Care,5211
6,Hobbies & Creative Arts,1021
7,Display Board,2177
8,Game,1145
9,soap,1012
10,Beverages & Tobacco,2514

内藏

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。然后我们编辑脚本中的命令以在表之间创建内部保留。

保持脚本

内部保持只提取那些存在于两个表中的行。在这种情况下,将获取Product List 和 Product Sales表中可用的行我们使用菜单Layout → New Sheet Objects → Table Box创建一个 Table Boxes

首先,我们只选择productSales表,它为我们提供了要显示的字段 – ProductID、ProductCategory 和 SaleAmount。

keep_product_sales

接下来,我们选择ProductList数据集,它为我们提供了 ProductID 和 ProductCategory 字段。

keep_product_list

最后,我们选择All Tables选项并从所有表中获取所有可用字段。

keep_both_tables

以下报告显示了上述步骤中的所有表格框。

keep_chart_innerkeep

左保持

Left keep 与 left join 类似,它保留左侧表中的所有行以及 QlikView 内存中可用的两个数据集。

左保留脚本

以下脚本用于使用 left keep 命令创建结果数据集。

productsales:
LOAD ProductID, 
     ProductCategory, 
     SaleAmount
FROM
[C:\Qlikview\data\product_lists.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

left keep(productsales)
productlists:
LOAD ProductID, 
     ProductCategory
FROM
[C:\Qlikview\data\Productsales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

左保留数据

当我们如上更改脚本并使用Control+R刷新报表中的数据时,我们会在工作表对象中获得以下数据。

keep_chart_leftkeep

右保持

Right keep 类似于 left join,它将表中的所有行保留在右侧,同时数据集在 QlikView 的内存中可用。

右键保留脚本

以下脚本用于使用 left keep 命令创建结果数据集。

productsales:
LOAD ProductID, 
     ProductCategory, 
     SaleAmount
FROM
[C:\Qlikview\data\product_lists.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

right keep(productsales)
productlists:
LOAD ProductID, 
     ProductCategory
FROM
[C:\Qlikview\data\Productsales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

正确保留数据

当我们如上更改脚本并使用Control+R刷新报表中的数据时,我们会在工作表对象中获得以下数据。

keep_chart_rightkeep

QlikView – 串联

QlikView 中的串联功能用于将行从一个表附加到另一个表。即使表的列数不同,也会发生这种情况。它不同于 Join 和 Keep 命令,因为它不会将两个表中的匹配行合并为一行。

输入数据

让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。请注意,第二个数据集有一个名为 Country 的附加列。

SalesRegionOld.csv
ProductID,ProductCategory,Region,SaleAmount
1,Outdoor Recreation,Europe,4579
2,Clothing,Europe,4125
3,Costumes & Accessories,South Asia,6521
4,Athletics,South Asia,4125
5,Personal Care,Australia,5124
6,Arts & Entertainment,North AMerica,1245
7,Hardware,South America,456

SalesRegionNew.csv
ProductID,ProductCategory,Region,Country,SaleAmount
6,Arts & Entertainment,North AMerica,USA,1245
7,Hardware,South America,Brazil,456
8,Home & Garden,South America,Brazil,241
9,Food,South Asia,Singapore,1247
10,Home & Garden,South Asia,China,5462
11,Office Supplies,Australia,Australia,577

加载脚本

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。然后我们编辑脚本中的命令以应用表之间的连接。

concatenate_load_script

接下来,我们将上述数据加载到 QlikView 的内存中,并通过使用菜单Layout → New Sheet Objects → Table Box创建一个Table Box,我们在其中选择要显示的所有可用字段,如下所示。

concatenate_select_table

连接数据

完成上述步骤后,我们将显示如下所示的表格框。请注意产品 ID 6 和 7 的重复行。连接不会消除重复项。

concatenated_table_chart

QlikView – 主日历

在 QlikView 中,很多时候我们需要创建一个日历参考对象,它可以链接到 QlikView 内存中的任何数据集。例如,您有一个表,该表捕获销售额和销售日期,但不存储与该日期对应的工作日或季度。在这种情况下,我们创建一个主日历,它将根据任何数据集的要求提供额外的日期字段,如季度、日等。

输入数据

让我们考虑以下 CSV 数据文件,它们用作进一步说明的输入。

SalesDate,SalesVolume
3/28/2012,3152
3/30/2012,2458
3/31/2012,4105
4/8/2012,6245
4/10/2012,5816
4/11/2012,3522

加载脚本

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。

1_mc_load_script

接下来,我们上面的数据加载到QlikView的内存,并创建一个表箱上通过菜单布局→新建工作表对象→表框在这里我们选择如下图所示,以显示所有可用字段。

2_mc_initial_data

创建主日历

接下来,我们通过在脚本编辑器中编写以下脚本来创建主日历。在这里,我们使用表 DailySales 作为常驻表,从中我们可以捕获最大和最小日期。我们使用常驻加载上方的第二个加载语句加载此范围内的每个日期。最后,我们有第三个加载语句,它从 SalesDate 值中提取年、季度、月等。

3_mc_calendar_script

选择字段

在创建完整的加载脚本和主日历后,我们创建一个表格框以使用菜单Layout → New Sheet Objects → Table Box查看数据

4_mc_select_fields

最终数据

最终输出显示的表显示了 Quarter 和 Month 值,这些值是使用 Sales 数据和 Master Calendar 创建的。

5_mc_final_data

QlikView – 映射表

映射表是一个表,创建它是为了在两个表之间映射列值。它也称为查找表,仅用于从其他表中查找相关值。

输入数据

让我们考虑以下输入数据文件,它代表不同地区的销售额。

ProductID,ProductCategory,Region,SaleAmount
1,Outdoor Recreation,Europe,4579
2,Clothing,Europe,4125
3,Costumes & Accessories,South Asia,6521
4,Athletics,South Asia,4125
5,Personal Care,Australia,5124
6,Arts & Entertainment,North AMerica,1245
7,Hardware,South America,456
8,Home & Garden,South America,241
9,Food,South Asia,1247
10,Home & Garden,South Asia,5462
11,Office Supplies,Australia,577

以下数据代表国家及其地区。

Region,Country
Europe,Germany
Europe,Italy
South Asia,Singapore
South Asia,Korea
North AMerica,USA
South America,Brazil
South America,Peru
South Asia,China
South Asia,Sri Lanka

加载脚本

使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按Control+E从“文件中数据”选项卡中选择“表文件”选项,然后浏览包含上述数据的文件。单击确定并按Control+R将数据加载到 QlikView 的内存中。

1_mt_load_script

创建表格框

让我们为上面的每个表格创建两个表格框,如下所示。在这里,我们无法在 Sales region 报告中获得 country 的值。

2_mt_table_boxes

创建映射表

以下脚本生成映射表,该表将销售表中的地区值与 MapCountryRegion 表中的国家/地区值进行映射。

3_mt_mapping_script

表格图表

完成上述步骤并创建一个表框来查看数据后,我们会从 Sales 表中获取 country 列和其他列。

4_mt_final_data

QlikView – 循环参考

当我们可以使用两条或更多条不同的路径从一张表遍历到另一张表时,就会发生循环引用这意味着您可以使用列直接将 Table1 与 Table2 连接,或者您也可以先将 Table1 与 Table3 连接,然后将 table3 与 Table2 连接。这可能会导致加载所有这三个表的数据模型形成的输出结果不正确。一旦识别出循环引用,QlikView 就会阻止将此类数据加载到其内存中。

输入数据

让我们考虑以下三个 CSV 数据文件,它们用作进一步说明的输入。

SalesCountries:
ProductID,ProductCategory,Country,SaleAmount
1,Outdoor Recreation,Italy,4579
2,Clothing,USA,4125
3,Costumes & Accessories,South Korea,6521
4,Athletics,Japan,4125
5,Personal Care,Brazil,5124
6,Arts & Entertainment,China,1245
7,Hardware,South America,456
8,Home & Garden,Peru,241
9,Food,India,1247
10,Home & Garden,Singapore,5462
11,Office Supplies,Hungary,577

ProductCountry:
ProductID, Country
3,Brazil
3,China
2,Korea
1,USA
2,Singapore
7,Sri Lanka
1,Italy

加载脚本

我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用选择选项表文件并浏览输入文件。

1_cr_load_script

数据加载

创建上述脚本后,我们使用命令Control+R将数据加载到 QlikView 的内存中这是当我们收到错误提示时提到在加载的表中存在循环循环。

2_警告

数据模型

要找到上述警告的确切原因,我们可以使用表格查看器的菜单命令 – Control+T查看数据模型出现以下屏幕,其中清楚地显示了循环引用。这里 RegionCountry 和 SalesRegion 之间的连接可以直接使用Region字段来实现也可以通过首先转到表 ProductCountry,使用字段Country,然后将 ProdcutID 与 Salesregion 映射来实现。

3_cr_data_model

解析循环引用

上述循环引用可以通过重命名数据集中的某些列来解决,这样 QlikView 就不会使用列名自动在表之间形成关联。为此,我们将 RegionCountry 中的 country 列重命名为 SalesCountry。在数据集 ProdcuCountry 中,我们将 Country 列重命名为 ProductCountry。

4_cr_load_script_rectified

修正数据模型

使用命令Control+T可以看到重命名上述列后的 Rectified 数据模型现在我们可以看到表之间的关系没有形成循环。

5_cr_data_model_rectified

Control+R重新加载数据不会再给我们警告,我们可以使用这些数据来创建报告。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁