最近在学习Tableau,发现这是一个强大的BI工具, 只需要简单的拖拉拽以后就可以生成看上去很高大上的数据图表,感觉就一个字:牛逼!
但是我发现在碰到一些问题的时候,如果不掌握或者了解它的一内部原理和逻辑的话,也很容易掉进坑里。所以了解它的内部原理还是很有必要的。既然要学习它的内部原理,首选当然是官方文档,但是全英文的文档有时候让人读得云里雾里,所以我想把它翻译一下,既方便想学习这个软件的同学,也加深我自己的了解。
英语好的同学请自行前往原官网地址:Dimensions and Measures。
如果你认为有些地方翻译不对,欢迎指出,共同学习!
以下是自己在学习一段时间以后对度量和维度的理解,相对通俗易懂一点,特此补充。
tableau中的维度和度量,很多人一开始接触的时候可能会容易混淆,但是这两个概念是tableau用于组织数据的基础,所以清楚的理解它们是很重要的。
其实这两个概念很好区分,维度相对简单,大家经常看到,度量稍微生僻一点,大家可能会把它读作(dù liáng),后来我发现应该读作dù liàng,其中的“量”就是数量的意思,举个栗子,一个部门中年龄为25岁的人有5个,那么25其实就是维度,5是度量,5代表在“25岁”这个维度上统计出来的数量,所以叫度量。准确地区分这两个概念可以让我们对数据进行划分时更加清晰快捷。
当你连接到一个数据源的时候,Tableau将每个字段分配为以下两种数据角色:Dimensions(维度)或者Measures(度量)。这些分配方式会如何影响我们使用Tableau来分析数据呢?
Dimensions
当你连接到你的数据源的时候,Tableau将离散类型的字段(例如:值类型是字符串或者布尔值的字段)分配到Dimensions中。
当你将Dimensions中的字段点击或拖拽进入行或者列当中时,Tableau就创建了行或列的标题。
当你从Dimensions中拖出一个字段放入到一个视图中时,Tableau都会将它默认为是离散型的,同时为其分配一个蓝色的背景。因此,一个区分 Dimensions 与 Measures的简单方法就是看他们的背景(虽然这个方法很有可能出错)。但是日期类型和数字类型的字段既可以是Dimension,也可以是Measure。并且所有的measure既可以是离散的,也可以是连续的。字段的背景颜色如果是蓝色,说明它是离散的,如果是绿色,说明它是连续的。
当你将一个Dimension拖到行或列中时,你可以将这个字段改为Measure,只需要点击字段并选择Measure。然后你就会发现视图中出现一根轴而不再是之前的以字段的值为标题的表格。并且字段的背景会变成绿色:
如果你想把一个Dimension变成连续的(不将它转变为Measure),方法会比较少,能做到的只有日期dimension,因为只有日期字段既可以是离散的也可以是连续的,但是通常日期是被看做dimension的。数字型的字段也可以,但是包含字符串的字段就不行。
Tableau并不会聚合dimensions。如果你想要聚合一个字段的值,这个字段必须是measure。如果你想要将一个Dimension转换为Measure, Tableau总是会提示你给这个dimension分配一个聚合方式(例如求和,平均值等等)。聚合意味着通过多个值获得一个结果,例如计算数值的个数,或者是它们的平均值,或者是取它们的最小值。请查看相应的Aggregation页面来了解不同的类型的聚合方式的含义。
在Tableau的查询中,Dimensions是以SQL中的“Group By”的方式来呈现的。
Measures
当你连接到某个数据源的时候,Tableau会将包含数字信息的字段分配到Measure上。
当你拖拽一个Measure字段到行或者列上时,Tableau会创建一根连续的轴:
任何从Measures上拖到视图中的字段默认都会是连续的,它的背景色也将会是绿色。但是如果你点击字段并选择Discrete(离散),这些相应的值就会变成栏目投的标题。
Tableau继续聚合字段的值,因为即使这个字段现在看起来是离散的,它也是一个Measure,而Tableau会一直聚合Measure。如果你愿意你也可以将这个字段转变为Dimension。那样的话Tableau就不会再聚合该字段的值了。关于将Measure转换为Dimension的内容请参考这里。
在视图中通过外观区分dimension和measure
如果你再一个表中无法确定某个字段是dimension还是measure,下面是一个简单的方法:Measure是被聚合过的,Dimension就没有。
但是也有例外:
1.如果整个视图都选择了不进行聚合,那么,所有的字段都不会进行聚合。关于不整合数据,请参考Disaggregating Data。
2.如果你使用的数据源是多维度的,数据源内部已经将字段聚合过了,那么Measure是不会显示这个聚合过程的。
更多信息请前往: