
QlikView ApplyMap简介
我们都知道MS Excel的函数Vlookup可以完成映射表的任务。同样,为了简化复合数据模型,我们需要对表进行映射,所以在这里我们通过使用Applymap()函数来完成这个任务。这个QlikView的Applymap()函数有助于提供一种替代方法,在两个不一样的表的表列之间进行连接,而这种连接是基于两个表都有的键列。因此,这就减少了数据模型中的表的数量。在数据库中,数据映射可以被定义为从两个不同的数据模型中形成数据组件的过程,这是为了坚持数据整合工作中的数据转换的慷慨。
重要启示
- 在QlikView的映射中,在应用Map功能之前,总是通过Mapping Select或Mapping Load创建一个映射表。
- 在脚本程序完全执行之前,映射表会暂时存放在QlikView的内存中。脚本执行后,它将被释放。
- 核心数据表不会受到临时映射表的影响,因为它存储在QlikView的内存中。
- 根据用户的需要,任何映射表都可以在脚本中被重新使用和调用。
- 映射表中的主字段总是被表示为键,而后面的字段或列则被表示为映射值。
- 在一个脚本中,所有的映射需求都可以被应用。
QlikView的ApplyMap函数
QlikView的Applymap()函数可以被定义为一个查找函数,用于通过表的映射列将表的列映射到特定的表。 我们可以按以下方式查看这个函数的语法:
Applymap function(‘Name of Mapping Table’, Mutual Key Column, ‘The Default Value’);
让我们看看上面显示的Applymap函数中使用的参数:
- 映射表的名称 :该函数的初始参数是提供给映射表的名称。它向QlikView传达了必须使用哪个映射表的查询功能。这里,表的名称必须写在单引号下面。
- 共同键列 :第二个参数是共同键列。它标志着映射表的主列,它只不过是一个关键列或一个查找列而已。
- 默认值 :这是语法中最后的第三个参数,它描述了默认值,是一个可选参数。当两个表的相互/共同关键列之间不匹配时,它被应用来控制空值。
假设用户需要在一个协会的每个地方映射国家和它们在外部销售中的最佳表现者。使用QlikView的映射功能可以在短时间内执行。
QlikView的ApplyMap映射加载
QlikView中的映射加载语句是为了将表的字段和值加载到新形成的映射表中而实现的。
语法
Mapping(loadstatement|selectstatement)
在这里,Mapping一词作为SELECT或LOAD语句的前缀,强加给系统,用于保存执行映射表的加载字段。通常情况下,这个映射表由两列组成;最初的一列包括用于比较的值,这可能是一个参考点,下一列包括基于比较的预期或结果值。
假设我们已经声明,数据模型中存在的众多表可能是坏的,所以用户可能不希望出现这样的情况,即用户可能有几个查询加入到统计表中。因此,我们可以通过制作映射表并通过ApplyMap将相关的ID与值转换出来来决定。在其适度的形式下,人们甚至可以建立一个提供特定名称的映射表,这在Applymap语句中进一步实现,它可以转换为指定的ID值。
举例来说,用户可以将国家代码作为参考列,将以下国家名称作为第二结果列。当我们执行脚本时,国家代码就会被相应的国家名称所取代。
让我们看看QlikView中的映射加载实例,如下所示。
代码
//Loading country codes mapping table
MapCountry:
Mapping LOAD*
Inline[
CountryCode, Country
Ind, India
Ity, Italy
Dk, Denmark
Sw, Sweden
];
执行时,上述代码将加载由两个表组成的MapCountry映射表。CountryCode和Country。像Applymap这样的语句和函数可以进一步使用这些映射表的内容。
QlikView ApplyMap语句
- 映射加载或映射表是数据库中执行的JOIN语句的替代。在这里,映射加载语句说明QlikView的一个表与另一个表是映射的。这个映射表由两列表组成:第一列是查找值,第二列是映射值。映射表是临时性的,因为在完成脚本的过程中,它们会自发地从数据模型中分离出来。
- 操作Mapping Load语句,将堆栈字段加值到QlikView中新创建的映射表中。
- 我们可以从一个类似的表中创建各种映射。
- 这个映射功能可以节省处理器内存以及时间。
- 它还有助于通过消除信息的差异来清理信息数据。
- 映射表只在加载时盛行。
- 通常情况下,QlikView的Applymap语句有助于开发数据模型中设置复杂的轻度任务,这可能会导致严重的性能问题。
常见问题解答
下面给出的是提到的常见问题解答。
Q1.什么是应用地图和映射加载?
回答
Applymap()函数的实现是为了将数据库中的映射表映射到下一个表,而Mapping Load语句的应用是为了加载映射表。
Q2.如何区分QLikView中的join和applymap函数?
答案:Join
Join用于选择源表的一组结果,对多个字段和它们的值进行操作,有四个类别:内、外、右、左。然而,当需要时,Applymap是一种参考查找,它只需要两个表字段进行映射。
Q3.QlikView中的Applymap功能在与日期(如TIMESTAMP)一起使用时不能工作?
解答:日期是一个格式化的函数
日期是一个格式化的函数,它存储的是有时间的数字数据,而QlikView查找的是没有匹配的数字值,因为其他条目在映射表中是小数点后的。你可以用删除了时间部分的函数Date(DayStart(...))来代替Date(),作为一种解决方案。
总结
这个QlikView ApplyMap()函数与Excel表中的查找函数有关,表中的字段值被实现为对映射表中存在的另一个字段的引用,从而输出一个相应的结果。同时,它还可以通过对字段值进行必要的转换,协助用户清理或修复在源数据中发现的差异。