观远 BI

全局参数最佳实践

创建于 2022-11-18 / 最近更新于 2023-05-19 / 7286
字体: [默认] [大] [更大]

1. 使用场景

当我们需要做数据融合与数据分析时,需要通过使用参数来完成复杂的图表动态分析,本篇最佳实践将帮助大家在使用Guan-Index数据集的卡片中新建计算字段、直连数据库数据集的SQL语句、视图数据集的SQL语句场景下使用全局参数,更好地完成数据分析。

2. 概述

全局参数,是指观远数据在数据融合与数据分析的多个环节,如在卡片、数据集计算字段、视图数据集、直连数据集的SQL中,均可灵活使用参数。通过参数的使用,您可以实现复杂的图表动态分析,如切换分析维度、切换分析指标、数据动态分类、跨表动态查询等。

3. 具体案例

3.1 全局参数支持不同类型数据集

3.1.1 日期参数过滤直连数据库数据集

在直连数据库数据集的SQL语句中添加基于日期参数的筛选条件,例如过滤某一天数据、MTD数据、YTD数据等时,需要根据直连的数据库类型,填写符合该数据库语法的SQL。以mysql数据库为例:

  • 以下为过滤所选日期当天的数据的SQL。若设置日期参数筛选器默认值为动态时间宏{{{yesterday}}},则默认过滤昨天的数据。

    image.png

  • 修改SQL语句中的WHERE条件,可以过滤出MTD数据,即从所选日期所在月的1号到所选日期的数据。若设置日期参数筛选器默认值为动态时间宏{{{yesterday}}},则默认过滤昨天所在月份的MTD的数据。

image.png

  • 修改SQL语句中的WHERE条件,可以过滤出YTD数据的SQL,即从所选日期所在年的1月1日到所选日期的数据。若设置日期参数筛选器默认值为动态时间宏{{{yesterday}}},则默认过滤昨天所在年份的YTD的数据。

    image.png

3.1.2 日期参数过滤视图数据集

在视图数据集的SQL语句中添加基于日期参数的筛选条件,可以实现基于动态日期选择的会员复购率计算。会员复购率=购买次数(天数)≥2的会员人数/所有有消费的会员人数。

  • 在数据中心新建视图数据集,并在SQL语句中添加如下基于日期参数的筛选条件。

image.png

  • 使用视图数据集创建卡片,并新建计算字段

image.png


3.1.3 日期参数过滤Guan-Index数据集

想要通过日期参数过滤Guan-Index数据集,需要使用Guan-Index数据集创建卡片,并在卡片中添加基于日期参数的字段或日期筛选条件。例如显示所选日期所在财务月的数据。假设财务月为上月26号到本月25号,当日期选择2021-06-15,则卡片显示2021-05-26到2021-06-25的数据;当日期选择2021-06-29,则卡片显示2021-06-26到2021-07-25的数据。

  • 卡片字段:开始日期,字段类型:日期。当所选日期<26号时,显示所选日期上一个月的26号,当所选日期≥26号时,显示所选日期所在月的25号。

image.png

  • 卡片字段:所选日期,字段类型:文本。并将该字段用于卡片筛选器中,筛选有效时间段。筛选条件:所选日期='Y'。

    image.png

3.2 全局参数用于新建字段的筛选条件

3.2.1 计算指标的总计值

计算所选门店销售额占全国总计销售额的比例时需要用到的计算公式:

  • 新建卡片计算字段:门店判断

image.png

  • 所选门店销售额

image.png

  • 新建卡片计算字段:销售额占比

image.png

3.2.2 计算指标的累计值

在时间维度上,对比分析销售额,需要选择某个日期,对比该日期所在周、所在月、所在年的累积销售额。

  • 新建卡片计算字段:WTD销售额

image.png

  • 新建卡片计算字段:MTD销售额

 image.png

  • 新建卡片计算字段:YTD销售额

image.png

3.2.3 卡片中显示某段时间内无数据的维度

某一些门店在某一段时间内没有数据,但是在图表中还是想把它们显示出来,计算平均值的时候也需要把这些门店计算进去。

一般来说可以通过ETL来补全数据,让门店在每一天都有一行数据,没有实际销售的则补全销售额为0。但其实数据集中已经包含了所有门店的数据,只是在某个特地筛选条件下没有数据,因此可以考虑使用全局参数写过滤条件来计算销售额,就可以把所选时间段内没有销售额的门店也展示出来了。

  • 新建卡片计算字段,日期筛选

image.png

  • 新建卡片字段,过滤后销售额。并添加到数值栏,聚合方式:求和。

image.png

  • 新建计算字段,店均销售额。并使用该字段设置卡片的辅助线。

image.png

3.3 灵活时间筛选和对比

3.3.1 查询任意日期的库存量

使用日期参数实现任意日期的库存查询,需要使用Guandata研发的UDF构建key-value格式的查询字段,并在相应的UDF中使用日期参数来查询任意日期各个门店各个商品的库存量。

  • 在ETL中使用Guandata研发的UDF(date_range_build)构建key-value形式的库存查询字段。在SQL中需要先按照日期对数据进行排序,再使用UDF构建库存查询字段。

image.png

  • 在卡片中创建基于日期参数的查询字段,并将该字段添加到卡片的数值栏。

image.png

  • 说明:

使用date_range_lookup可以滚动向上查找库存量;使用date_range_get可以精确查找所选日期的库存量。

image.png

3.3.2 动态筛选最近12个月的数据

使用一个日期参数筛选器,控制卡片显示所选日期最近12个月的数据。例如日期选择2021-06-06,则柱形图显示从2020-07-01到2021-06-30共12个月的数据,并按照月份从低到高排序显示。

  • 卡片字段:所选日期,字段类型:文本。并将该字段用于卡片筛选器中,筛选条件:所选日期='Y',相当于筛选出≤所选日期当月的数据。

image.png

  • 卡片字段:月份倒序,字段类型:数值。并将该字段用于卡片筛选器中,筛选最近12个月的数据。筛选条件:月份倒序≤12。

image.png


3.3.3 灵活对比不同日期的指标值

在一些业务场景中,像银行的存款余额指标,需要用查询日期当天的数值和上个月月末的数值进行对比,计算两者的差值。例如:查询日期选择2021-01-16,对应的上个月月末的日期是2020-12-31,需要计算这两天的差值。

  • 卡片字段:查询日期,字段类型:日期

image.png

  • 卡片字段:当天销售额,字段类型:数值

image.png

  • 卡片字段:上月月末销售额,字段类型:数值

image.png

  • 卡片字段:差值,字段类型:数值

image.png

  • 卡片字段:日期筛选,字段类型:数值。并将该字段添加到卡片筛选器栏,筛选条件:日期筛选=1。相当于过滤出当天和当天对应的上个月月末的日期。

image.png

3.3.4 灵活对比两个时间段的指标值

应用全局参数,可以自由筛选两个时间段内的数据做对比分析。例如筛选一个自由时间段内的数据并汇总计算其销售额;对比另一个自由时间段内的汇总销售额。

  • 卡片字段:时间段,字段类型:文本,显示'当前时段'或者'对比时段'。并将该字段用于卡片筛选器中,筛选有效时间段。筛选条件:时间段not null。

image.png


3.3.5 灵活对比本周和上周的销售额排名

对比跟踪商品(区域/门店/品牌等)的销售额以及销售额排名情况时可以实现灵活对比本周和上周的销售额排名。

  • 卡片字段:查询日期,字段类型:日期

image.png

  • 卡片字段:本周销售额,字段类型:数值。并使用该字段做排名高级计算,得到本周排名。

image.png

  • 卡片字段:上周销售额,字段类型:数值。并使用该字段做排名高级计算,得到上周排名。

image.png

  • 卡片字段:排名变化。将本周销售额字段添加到数值栏,并设置基于本周排名对比上周排名的条件格式。

注意:本周的定义为查询日期前7天到查询日期这一段时间,上周的定义为查询日期前14天到查询日期前8天这一段时间。若对于本周和上周的定义不同,中,则可以调整计算公式。例如:本周定义为查询日期所在周,上周定义为查询日期所在周的上一周,则计算公式为:image.png

3.4 灵活切换指标

3.4.1 灵活切换卡片的指标

通过文本参数筛选器,可以实现数值字段(指标)的自由选择,可以在卡片中动态展示所选的指标。

  • 卡片字段:指标,字段类型:数值。并将该字段添加到卡片的数值栏。

image.png

  • 卡片字段:指标名称,字段类型:文本。并将该字段添加到卡片上方的汇总指标栏,汇总方式选最大值。

image.png


3.4.2 灵活一一对比指标

通过文本参数筛选器,可以实现多个指标之间的自由对比。也可以用于计算任意两个指标之间的差值。例如:对比销售额和预测销售额,或者销售额和同比销售额等。

  • 卡片字段:指标,字段类型:数值。并将该字段添加到卡片的数值栏。

image.png

  • 卡片字段:对比指标,字段类型:数值。并将该字段添加到卡片的数值栏。

image.png

  • 卡片字段:差值,字段类型:数值。并将该字段添加到卡片的数值栏。

image.png

  • 卡片字段:对比指标名称,字段类型:文本。并将该字段添加到卡片上方的汇总指标栏,汇总方式选择最大值。

image.png


3.4.3 对比一个指标和多个指标

通过文本参数筛选器,能够实现1个指标和多个指标的对比。例如:图表中默认只显示销售额,但同时可以选择1个及以上指标进行对比。

  • 分别创建多个卡片字段作为对比指标,所有字段类型设置为数值。

image.png

  • 将字段分别添加到数值栏或者叠加图形数值栏,并设置对应的高级计算;

  • 因为所有指标已添加到数值栏,所以本案例中的图例无法隐藏。系统本身自带点击图例来选择指标是否显示的功能,和这一功能不同的是使用本案例的方法默认状态只显示一个指标,而不是所有指标。

image.png

3.5 灵活切换分析维度

3.5.1 灵活切换卡片展示维度

通过文本参数筛选器,实现卡片分析维度的自由选择。例如:可以选择同一个卡片是在品类维度聚合,还是在会员类别维度聚合。

卡片字段:指标,字段类型:文本。并将该字段添加到卡片的维度栏。

image.png

3.5.2 灵活切换卡片的时间维度

通过文本参数筛选器,可以实现卡片在不同的时间维度上的动态展示。并且可以搭配快捷日期区间筛选器,选择不同的时间段。

例如:可以选择同一个卡片在年、月、周、日等不同的时间维度上聚合。当选择日期维度='年'时,选择时间段为'最近3年';当选择日期维度='月'时,选择时间段为'本年到今天'。

  • 分别创建年、月、周、日等日期维度字段。所有字段都建成文本类型。

image.png

  • 基于文本函数,创建日期维度字段,字段类型设置为文本,并添加到卡片维度栏。

image.png

3.6 实现筛选器特殊效果

3.6.1 实现树形结构维度筛选

使用文本参数创建树形结构的参数筛选器,可以实现维度的动态切换。例如:当在树形参数筛选器中选择全品类时,表格显示所有商品大类维度;选择某个大类时,表格显示商品中类维度;选择某个中类时,表格显示商品小类维度。

  • 卡片字段:中类参数判断,字段类型:布尔型。并使用该字段创建“维度”卡片字段。

image.png

  • 卡片字段:小类参数判断,字段类型:布尔型。并使用该字段创建“维度”卡片字段。

image.png

  • 卡片字段:维度,字段类型:文本。将该字段添加到卡片的维度栏,并将该字段用于卡片筛选器中,筛选条件:维度不等于"无效"。

image.png

  • 页面筛选器:品类维度。使用文本参数“品类维度”创建参数筛选器,并手动添加可选项,设置为树形的结构。

image.png

3.6.2 实现单个筛选器联动多个维度

添加全局参数可以在单个筛选器中同时显示维度一和维度二的选项。例如:维度一(会员类别包含普通、VIP两类)和维度二(会员类别2包含线上、线下两类)之间是多对多的关系。在筛选器“会员类别”中可以显示两种会员分类的4个选项。

  • 卡片字段:会员类别整合,集成维度一和维度二的数据,字段类型:文本。

image.png

  • 卡片字段:会员类别筛选器,字段类型:数值。并将该字段添加到卡片筛选器。筛选条件:会员类别筛选器大于0。

image.png

  • 参数筛选器:在页面上使用文本参数“CustomerType”创建筛选器,并手工设置可选项。

image.png

3.6.3 实现模糊查询SKU

在电商业务场景中,通常为了进行搜索优化,商品标题会加入各种高频搜索词,导致商品标题变化无迹可循。本案例可以通过商品名称中某些特定的口味关键词来筛选商品(即模糊匹配的需求),且可以同时筛选多种口味(即满足 口味与口味之间"或"的关系)。

  • 卡片字段:SKU,字段类型:文本。并使用该字段创建“SKU过滤”卡片字段。

image.png

  • 卡片字段:SKU过滤,字段类型:布尔型。并将该字段添加到卡片筛选器,筛选条件:True。

image.png

  • 在创建卡片字段'SKU过滤'时,因为参数筛选器输入的是多值,所以使用了处理数组的Spark函数,可点击Spark官网了解这些函数的用法。

image.png

3.6.4 灵活高亮所选项的颜色

通过使用文本参数,能够动态展示被筛选项的图形颜色,所选项对应的图形会展示出不同于其他项的颜色。例如:选择华东区时,华东区颜色显示为橙色,其他大区区显示为蓝色。

  • 创建卡片字段“大区”。字段类型:布尔型。

image.png

  • 将“大区”字段添加到卡片的颜色栏,并设置颜色。

  • 创建选择型筛选器 > 设置联动字段为“事业部”> 默认值:跟随用户属性 > 设置联动:关联参数“大区”。在一些使用场景中,区域负责人需要对比本区域和其他大区的数据。通过设置筛选器默认值跟随用户属性,就可以实现默认高亮该区域的数据。

image.png

3.7 What-if 分析

3.7.1 销售额What-if 分析

做指标的What-if分析。可填入任意提升率数值,表格会自动计算出提升后的数值。例如根据填入的销售额提升率,计算增长后的销售额。

  • 卡片字段:提升率。字段类型:数值。

image.png

  • 卡片字段:提升后的销售额。字段类型:数值。

image.png


3.7.2 实现预测型杜邦分析

用What-if分析结合杜邦分析图,可以将指标进行拆解,并通过输入多个变量值,来预测指标的变化。

  • 第一层卡片指标:整体会员销量

image.png

  • 第二层卡片指标:VIP会员销量、普通会员销量

image.png

  • 第三层卡片指标:VIP会员人数、VIP会员人均购买量、普通会员人数、普通会员人均购买数量

image.png

第四层卡片指标:有消费的会员人数、VIP会员人数占比、普通会员人数占比image.png

3.8 辅助线动态变化

全局参数可以实现辅助线动态变化,卡片显示日期区间的数据,辅助线根据卡片日期差范围变化,比如,若是筛选时间区间为10天,则辅助线的值为10。思路:先获取筛选器区间,根据区间算出辅助线的值是多少。

3.8.1 计算动态日期差

管理员新建两个日期全局参数,开始时间{{{today - 5 days}}} 和结束时间{{{today}}},卡片引用这两个全局参数,新建日期差字段:datediff([DYNAMIC_PARAMS.结束日期],[DYNAMIC_PARAMS.开始日期])  且辅助线也使用日期差字段。

辅助线使用其他字段,不要使用固定值,选择刚刚新建的日期差字段,聚合方式选择最大值

image.png

3.8.2 卡片内日期动态展示

新建日期字段【if([新日期]>=[DYNAMIC_PARAMS.开始日期] and [新日期]<=[DYNAMIC_PARAMS.结束日期],[新日期],null)】,只展示属于两个日期参数区间的数据,并将新的日期字段放在维度栏,筛选栏只展示有日期的数值,排除null。至此,卡片内部的设置已经完成。

image.png


3.8.3  筛选器联动卡片实现动态变化

全局参数在卡片中使用的都是默认值,需要筛选器和卡片联动实现动态传参。新建两个参数筛选器,开始日期和结束日期,不要使用日期区间或者选择筛选器。效果如下,卡片展示开始日期和结束日期期间的数值,且辅助线显示为两个日期差。

image.png

4. 操作指引

  1. “管理员设置>资源设置>全局参数”中,设置当前企业域需要用到的全局参数(此操作需要系统管理员权限);

  2. 在使用Guan-Index数据集的卡片中使用参数创建计算字段,或者在直连数据库数据集/视图数据集的SQL中使用参数并创建卡片;

  3. 在页面上新建参数筛选器。参数筛选器会自动联动到步骤2的卡片。

  • 点击观远帮助中心查看全局参数的使用步骤。

  • 访问Atlas云应用市场,马上体验视图数据集及其他产品功能案例库。

127 人点赞过