全部产品
阿里云办公

通用维度与下钻维度

更新时间:2018-04-17 18:26:57

本文介绍了通用维度与下钻维度的区别。

通用维度:适用于所有场景,但其中的维度是没有加速索引的(除非开启 ID 类维度,详细解释参见下文)。

下钻维度:针对特定场景,当维度之间存在层级关系,如省 > 市 > 区,那么下钻类维度会针对每层的查询加速。

通用维度

通用维度场景解析

以电商日志为例:2017-01-01 12:00:00|类目:男装|省份:浙江|市:杭州|区:西湖区|性别:男|身高:L|数量:5|总价:100|

切分后的字段为:时间,类目,省份,市,区,性别,身高,数量,总价。

我们需要根据商品的类目性别省份属性来分析该数据,则维度依次为类目性别省份,指标为单价和数量。预聚合之后数据为:

总价 数量 时间 性别 类目 省份
100 1 2017-01-01 12:00:00 男装 浙江
200 2 2017-01-01 12:00:00 食品 江苏
300 3 2017-01-01 12:00:00 男装 北京

当我们需要查看类目为男装的数据时,需要读取不同类目,不同性别和不同省份对应的所有数据,然后过滤出男装的数据。这里取出数据记录数是大于结果记录数的。

限制和优化方法

假设有 200 万的类目,我们还是查看类目为男装的数据,那么需要读取约 N 个 200 万的数据,然后过滤出男装数据。这里取出数据记录数远远大于结果记录数,且太多的读取记录直接影响到获取数据的速度。

此时可以通过创建类目的索引来解决。

在通用维度类型的数据集中,ARMS 提供一种辅助维度,叫 ID 类维度。ID 类维度就相当于索引维度,在查询时要给出明确的维度值,加速数据查询;而维度就是普通非索引维度,如本例最开始的性别、类目、省份维度。

维度和 ID 类维度区别

通用维度包含维度和 ID 类维度。在数据集的查询过程中,ID 类维度不能为空,而维度可为空。目前 ARMS 中最多包含一个 ID 类维度和七个维度。

  • 维度

    • 维度可独立使用或组合使用。例如某数据集有维度 A、B、C,您可以仅选择维度 A、B 或 C,也可以使用 BC 组合,或者 ABC 组合等查询。
  • ID 类维度

    • ID 类维度类似于对该维度创建索引,在查询时,通过指定 ID 类维度可以快速查询到数据结果。

    • 对于数据中不可枚举或者维度值个数较多的情况,建议使用 ID 类维度。

下钻维度

下钻维度场景解析

以系统监控领域的场景为例,系统日志中包含机房、分组和 IP 三个维度。用户需要从机房运行情况,下钻到某机房的分组,然后是分组的某一台机器进行数据查询。如果使用通用维度处理该问题,则存在查询数据量较大导致查询延迟的问题。下钻维度可用来解决以上这种固定的逐级查询场景。

下钻维度对机房、分组、IP 创建多级索引,索引分别为机房(索引 1), 机房-分组(索引 2),机房-分组-IP(索引 3)。查看机房数据时使用索引 1,查看某机房的分组数据时使用索引 2,从该分组下钻到 IP 时使用索引 3。

下钻维度的使用场景还可以包括按照省、区维度进行业务统计,按照学校、年级、班级查询学生分布,或按照厂商、品牌、类目统计售卖情况等。

下钻维度使用限制

  • ARMS 中最多可以设置三个下钻维度

  • 下钻维度之间有层级关系。例如,要查看第二个维度,必须先选择第一个维度的属性。维度类似于一个树状结构。维度的定义需要规划,例如,第一维度可以是省,第二维度可以是市,第三个维度可以是区,指标数据则是市民消费情况。

  • 除非有特殊场景需求,两个完全不相关的维度最好不要一同定义,比如“地域”和“物品类型”。

  • ARMS 提供下钻功能,可以从汇总数据深入到细节数据进行观察或新增维度。钻取的目的是改变维度层次、变换分析粒度。