本文介绍通用维度与下钻维度的差异。
通用维度
通用维度适用于一般场景。通用维度包括以下两种维度:
- 维度:普通非索引维度。可独立使用或组合使用。例如某数据集有维度A、B、C,您可以仅选择维度A、B或C,也可以使用BC组合,或者ABC组合等查询。
- ID类维度:索引维度。在查询时,通过指定ID类维度可以快速查询到数据结果。对于数据中不可枚举或者维度值个数较多的情况,建议使用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万的数据,然后过滤出男装数据。这里取出数据记录数是大于结果记录数,且太多的读取记录直接影响到获取数据的速度。此时可以通过创建ID类维度来解决。在查询时要给出明确的维度值,从而加速数据查询。
使用限制
- 在数据集的查询过程中,ID类维度不能为空,而维度可为空。
- ARMS中最多包含1个ID类维度和7个维度。
下钻维度
下钻维度针对特定场景,当维度之间存在层级关系,如省>市>区,那么下钻类维度会针对每层的查询加速。
场景解析
以某个系统监控领场景为例。系统日志中包含机房、分组和IP三个维度。我们需要从机房运行情况,下钻到某机房的分组,然后是分组的某一台机器进行数据查询。如果使用通用维度处理该问题,则存在查询数据量较大导致查询延迟的问题。下钻维度可用来解决以上这种固定的逐级查询场景。
下钻维度对机房、分组、IP创建多级索引,索引分别为机房(索引1), 机房-分组(索引2),机房-分组-IP(索引3)。查看机房数据时使用索引1,查看某机房的分组数据时使用索引2,从该分组下钻到IP时使用索引3。
下钻维度的使用场景还可以包括按照省、区维度进行业务统计,按照学校、年级、班级查询学生分布,或按照厂商、品牌、类目统计售卖情况等。
使用限制
- ARMS中最多可以设置三个下钻维度。
- 下钻维度之间有层级关系。例如,要查看第二个维度,必须先选择第一个维度的属性。维度类似于一个树状结构。维度的定义需要规划,例如,第一维度可以是省,第二维度可以是市,第三个维度可以是区,指标数据则是市民消费情况。
- 除非有特殊场景需求,两个完全不相关的维度最好不要一同定义,例如地域和物品类型。
- ARMS提供下钻功能,可以从汇总数据深入到细节数据进行观察或新增维度。钻取的目的是改变维度层次、变换分析粒度。
在文档使用中是否遇到以下问题
更多建议
匿名提交