从2019年开始,我每月都会组织Tableau的培训课程,以此督促自己加速学习的进程,也让更多人获得成长的进步。近期按照培训的需要,重写部分Tableau学习教程,从入门到高级,循序渐进。
一,了解产品和环境指南
作为敏捷BI的代表,Tableau提供快速、简单的可视化分析,并通过Server为企业搭建自助化分析平台。Tableau也在不断的扩展自己的产品线,从数据清理到数据管控,不断增强企业部署和可视化分析的能力。
1、Tableau产品组合
目前Tableau的产品线从前端的数据准备、数据可视化分析到后端的数据自助分析平台,形成了完整的敏捷BI产品线。我们按照以下的产品流向,理解各个Tableau产品的功能。
- Tableau Prep帮助您快速、自信的转换和组织数据以供分析,借助Tableau Prep直观、简洁且协调的界面,一目了然地查看所有数据;以可视化的方式合并、组织并快速清理来自多个数据源的数据。Prep的数据流让数据清理从科学家的工作,变成了所有人都轻松可以操作的工具。
- Tableau Desktop通过拖拽式分析实现数据的可视化,无需复杂的代码,轻松制作折线图、条形图、散点图等数据可视化;交互式仪表板和高级分析工具帮你发现隐藏在数据背后的见解。
- Tableau Server可以帮助企业实现受管控的大规模自助化分析平台,整合所有的企业数据和数据资产,实现有效数据管控和数据驱动业务成长的双重任务。
- Tableau支持丰富的访问端口,全面支持浏览器端、手机端、平板等各种设备;新版本重新设计了 iOS 和 Android 版 Tableau Mobile,提供强大的搜索功能、经过改进的“收藏夹”体验,以及交互式脱机预览,只需动动手指即可享用。另外,Tableau支持多种API接口访问。
2、为什么要用Tableau可视化?
在数据大爆炸的时代,人对数据处理的能力越来越多的依赖于电脑,电脑理解数据,而人负责理解图形,可以说“可视化图形是透过数据理解世界的窗户”,从此可视化成为越来越重要的数据语言,特别是对于不具有专业数据分析能力的业务人员而言。
我们可以用卡尼曼《思考,快与慢》的观点来解释:人天生都是快思考的动物,可视化帮助我们提高了分析的效率。几百年前就已经有了很多精彩的可视化图表,如今计算机让一切变得容易,Tableau让业务部门的大数据可视化变得简单而具有吸引力。
在可视化的各种元素中,位置优先,其次是颜色、形状和图形,这些可视化的方式帮助我们把数据转化为直观的表达,从而有助于我们发现数据中的异常值和趋势。
二、了解Tableau核心概念
Tableau简单的背后有自己的框架体系,这里涉及到几个重要的概念:字段类型与特征、数据类型、详细级别、聚合方式和操作顺序。尤其是后面三个概念,要在不断的练习和犯错的过程中增加理解和认识。
1、字段类型
所有的字段都会默认分为维度和度量。简单的说,维度代表分类,度量代表数量。
从分析的角度,我们可以把维度分为更细的两类:分类字段和次序字段,后者其实是带有顺序的次序字段。这个分类的主要目的是为了理解字段属性:连续和离散——这是数据库中非常重要的概念,不同的属性代表不同的相关关系,对应不同的可视化形式。
- 每个字段都具有连续或者离散的属性,比如“门店名称”是离散的维度字段,相互之间没有先后关系;而“顾客评价”(比如优秀、满意、良好、不满意)具有明显的高下、先后关系,是具有连续属性的维度字段。最明显的次序字段是年月等日期。
- 相比之下,度量基本都是连续的数字,比如字段“销售数量”、“消费金额”。
- Tableau用两个颜色来代表字段的这个属性:绿色代表连续,蓝色代表离散,这种可视化的方式简单明了。
- 根据分析的需要,我们可以转化字段的维度、度量类型和字段的连续、离散属性,这样就会引起可视化图形的相应变化。一般而言,维度用来做坐标轴,度量表现内容;连续用来生成折线图等查看波动趋势,而离散生成条形图等查看对比关系。
2、数据类型
Tableau支持丰富的数据类型,主要有:数字(整数)、数字(小数)、字符串、日期、日期和时间、布尔值,以及地理位置。
不同的数据类型对应不同的聚合方式,比如字符串主要对应计数,而数字则会首先对应求和聚合。准确的数据类型,是后期可视化和聚合处理的基础。我们可以看一下官方的类型及标记。
图标 | 数据类型 |
---|---|
![]() |
文本(字符串)值 |
![]() |
日期值 |
![]() |
日期和时间值 |
![]() |
数字值 |
![]() |
布尔值(仅限关系数据源) |
![]() |
地理值(用于地图) |
![]() |
群集组(与在数据中查找群集结合使用) |
3、详细级别和数据聚合
大数据软件,会对数据默认执行聚合,因此我们需要提前了解什么是聚合、不同字段对应的聚合类型,以及各种聚合的应用场景。而理解聚合的应用场景,需要我们了解数据背后的详细级别(level of detail),这是词语我们会在后面的高级操作,特别是LOD表达式过程中经常提到。
- 行级别与聚合级别
使用Excel工作时,我们面对的往往是具体的一行一行的数据,诸如 A2/A1的计算,也是行级别的计算;但是当数据量成千上百万,我们更关心的是主题的聚合,比如说每家分行每天的存款金额,而不在乎每一单笔的存款详情,这就需要在分行详细级别做聚合计算,比如sum([deposit]),或者计算平均单笔金额 sum([deposit])/countd([order ID])。
面对大数据的海量数据,我们必须清晰自己在哪个数据层面做分析,是什么详细级别的聚合问题,只有对业务的类型有清晰的理解,才能作出恰当的可视化效果。我的思考方式是假想一座冰山,把各种字段放在冰山之中,不同的问题,其数据必定在某个层面上,这就是它所在的详细级别。
- 维度的聚合方式
- 维度的数据类型以字符串、日期、地理位置为主;
- 可以采用“最小值”、“最大值”、“计数”或“计数(不重复)”的形式聚合视图中的维度。当聚合维度时,将创建一个新的临时度量列,使维度实际具有度量的特征。
- 度量的聚合方式
- 向视图中添加度量时,Tableau 会自动对它的值进行聚合。常见的聚合包括总和、平均值和中值,还有计数、方差、标准差等多个聚合方式。
- 在Tableau中更改聚合方式非常简单,只需要右键重新选择“度量”聚合方式即可自动完成。
4、操作顺序
Tableau中有很多的操作,比如维度筛选器、顶部筛选器,在一个视图中,Tableau需要明确它们的执行前后顺序,这是学习Tableau的必备知识。我们经常遇到可视化的结果和预期结果不同的情况,大部分是没有了解和掌握这个操作顺序。
数据分析的数据操作是不断叠加的,就像是PS中的图层,比如数据提取筛选器最先执行,就相当于PS的底层,数据视图层面的上下文筛选器相当于第二层,它在底层的基础上进一步筛选。其他类似,一步步递进。我在官方指南(英文)基础上做了一个导图,按照优先顺序排序,此图应该牢记在心。
三、新建数据源和数据准备
在数据源界面,完成必要的数据整理,对于后期提高效率,非常重要。没有数据整理,就没有数据的高效分析。《哈佛商业评论》曾经发表一篇文章说,数据分析师在用80%的时间做整理,只用20%的时间在做分析。不过随着像Prep这样的敏捷ETL工具的兴起,正在慢慢地好转。
早期我用Tableau 时,prep还没推出,当时被各种数据整理的工作弄得特别沮丧。如今,Tableau Prep为我们提供了更方便快捷的道路!自从有了prep,Tableau可以自豪地说,我们可以让数据分析师用20%的时间去做整理,而不是80%!我们会在后面重点讲解这个软件的使用和应用场景。
对于各类的数据联结功能,Tableau Desktop能很好的胜任,详细说明可以参考近期新博客(【Tableau】如何合并你的数据?method and metrics)
1、数据文件或数据库连接
Tableau 支持丰富的本地文件连接和各种在线数据源连接,可以满足各个行业的复杂数据库需求。对于大家常用的本地文件,特别是不规范的Excel文件,Tableau 还推出了智能的“数据解释器”,轻松方便地解决文件中标题错误、合并单元格等问题。可以参考 【Tableau】从Excel杀手到Tableau入门:数据解释器引路
2、数据连接、数据并集
- 默认连接本地或在线文件后,Tableau可以把当前数据源中的多个表建立数据连接,并自动添加关联字段。
- 对于多个相同结构的文件,Tableau可以轻松创建并集,不管是静态并集还是动态通配符并集,都轻松简单。详细可以见博客:「Tableau」使用通配符,跨工作表建立数据连接)
3、 跨数据源连接
- 经常我们要把本地或云端多个数据源的不同工作表联结起来,这个需要跨数据源连接功能;
- 和“数据混合”不同,此处的跨数据源连接会横向扩展整个数据表,适用于数据详细级别一致的情况下;而“数据混合”适用于临时关系和数据详细级别不同的情况。
- 使用数据混合的情况:
- 数据需要清理(即重命名列、更改列数据类型、创建组、使用计算等)
- 联接导致重复数据(联接后数据重复是位于不同详细级别的数据的症状)
- 只需要少量数据。(联接由数据库进行处理,会消耗大量的数据库性能,如果要合并的数据较少,使用数据混合会提高性能。)
4、数据源和提取数据
- 数据提取不是必备的,但是当本地数据非常庞大或者连接实时数据库时,数据提取可以加快操作;
- 在数据源级别可以添加筛选器,比如删除单据状态为“未完成”的单据,就会在以后所有的数据中都避免了未完成的单据。
5、数据准备(修改字段格式,隐藏不必要字段等)
在连接数据文件后,可以在数据连接层面做一些基本的数据清理工作,比如重命名、隐藏、拆分、修改字段格式等等。
四、数据可视化
数据连接后的主要操作是生成可视化,在这里我们需要根据可视化的需要对字段进行二次处理,比如组、分层结构、集、参数,以及各种添加辅助的计算字段。
1、必要的数据准备
创建组、集、参数、分层结构等,可以帮助我们增强数据分析的交互性。这几个功能都可以在维度功能区右键完成,不过要特别注意组和集的区别。
- 创建组会生成一个新的维度字段,它把部分数据合并为一个数据结果显示,这是一个静态的结果,背后可以假设为case when函数;我们往往用组来纠正错误数据,比如把“中行”和“中国银行”统一为“中国银行”显示;组不能用于计算字段。
- 集分为静态集和动态集,集独立于维度字段,结果是一个布尔值判断(在集内还是集外);动态集可以和参数结合,增强视图的互动性;我们常用集来做top显示,比如“每月业绩最好的前10家分行”;集可以参与计算字段。
- 分层结构可以帮助大家在可视化层面实现数据的上钻和下钻,增强数据的互动性,特别适合于地理位置的分层和商品的多级分层,比如国家/省份/城市,大类/中类/子类/商品名称。
2、Tableau可视化图形
Tableau内置了很多的可视化图形,常见的图形有条形图、数形图、地图、折线图、直方图等等。除了直方图需要手动添加一个数据桶(bin),其他的类型都可以通过选择和拖拽一步完成。
Tableau目前有几种常见的快速生成可视化图形的方法:
- 智能推荐方法
最简单的可视化生成方式就是选择多个字段后,点击“智能显示”的推荐图形,系统推荐的最优图形会用红色边框突出显示。
- 完全拖拽生成可视化
更多的情形下,我们会根据分析的步骤,一步步地拖拽字段到功能区,结合标记中地颜色、大小和形状来完成更加复杂地可视化结果。
- 自然语言(Server)
在最新推出地2019.1版本的Server中,Tableau推出了自然语言查询功能,仅需要提出问题,server就可以自动给出可视化图形。不过这个功能对中文的支持,暂时应该不会太理想。
3、如何选择可视化图形
如何选择常见的可视化图形,麦肯锡的这本书《用图表说话》给了我最好的指引。选择图形的过程,其实就是分析问题的过程,我们要分析加入我在哪个详细级别做聚合,我加入可视化的维度和度量字段的相互关系是什么。
下面图片中列举了五种代表性的关系:成分、项目、时间序列、频率分布和相关性。成分代表总分结构,低于三个可以用饼图,超过五个建议用树形图;项目代表的是对比关系,首选条形图,可以明显地体现排序;带有连续时间的维度或度量,用柱形图代表对比,用折线图反映趋势;维度的分布用直方图和折线图,它们反映的是聚合的分布,而两个度量的相关关系,则用散点图——散点图是一个特殊的分布,是高颗粒度的直观分布。
当然,上面的分析都是假设只有两个字段的时候,面对复杂的可视化需求,我们需要更进一步的方法论,我正在尝试如何把“选择图形”扩展为一个完整的过程,目前也在尝试之中:
五、从数据到业务:可视化互动与表达
从数据到价值是一个漫长的过程,数据的探索过程是猜想和反驳交互前行的过程,因此好的可视化不仅仅是展示,更重要的是互动与探索。Tableau提供了包括筛选、高亮、跳转、集值等多种互动选项,以及仪表板和故事两种表达方式。
1、Tableau的交互功能
Tableau可以使用多种动作增加交互性,最典型的是筛选、高亮,以及最新推出的集动作,即将推出的参数动作。
使用筛选动作,我们可以使用一个视图中的数据来筛选另一个视图中的数据,从而帮助引导分析;这在以地图作为区域引导的仪表板中格外方便。
使用高亮动作,则可以随时把选中的标记与其他标记分开,突出分析的数据重点。
最新的集值则增加了更多的高级交互功能,它可以在选择的数据标记和各种视图交互中建立桥梁,通过视图即可方便的调整数据范围,让动态集更加灵活。更多内容可以参考最新的集值系列:
新版本推出的跳转按钮,让跨工作表、仪表板和故事的操作非常简单。
2、可视化的展示:仪表板和故事
在完成了各个主题的可视化视图后,我们还要考虑如何“完整的表达”。完成数据可视化只是完成了数据的展示,后面的部分需要更多的业务的理解,比如交互式分析,数据对比探索等等。Tableau提供了两种组合可视化展示和探索的方法,仪表板和故事。借助仪表板我们告诉大家事实是什么,而通过故事,我们可以解释为什么如此,不管是层层剥开的探索,还是假设验证的分析,故事让整个业务分析变得完整。
用仪表板说明数据“是什么”,故事告诉大家“为什么”
仪表板是多个可视化的集合,是按照一定的逻辑关系对工作表和仪表板的系列组合,可同时对比各种数据。比如同时查看销售的区域分布和分月增长,确保从时空两个方面把握全局。
六、【高阶】Tableau的计算
计算是大数据分析的核心之一,计算构成了可视化的逻辑。随着业务分析的深入,我们需要使用多种计算方式完成复杂的分析任务,这就要求我们不仅仅明白多种计算的语法和技巧,更重要的是了解如何作出最好的选择。
在这篇博客中(【tableau】TC-如何选择Tableau计算类型?),我们介绍了如何选择计算,这是需要在实践中掌握的技术。
1、基本计算——最常见而丰富的计算
2、表计算——反应最快、优先选择的计算
3、LOD详细级别表达式——解决复杂问题的必备工具
迄今可能是最好的非官方LOD中文解读,大概就在这里了,全系列六篇文章。
七、如何使用Tableau Prep
你的仪表板访问性能很慢怎么办?每次打开文件加载数据五分钟怎么办?分析时数据文件中有大量的数据冗余怎么办?——Prep帮你解决很多的性能问题。我们会有单独的系列文章介绍这个主题。
长篇大段,写到这里,希望帮助更多 的人理解和使用Tableau,我也会随着自己的培训逐步完善相关的材料。
Feb 25, 2019 update
Mar 4, 2019 update
Apr 24, 2019 update
May 14, 2019 update
Michael Wu
加油
赞赞
楼主,整理一下,出本书吧。我买。
赞赞
正有此意,我还需要多积累啊 指日可待
赞赞
建议官方请你做Tableau推广大使,写的真好,等你出书了,第一时间买了学习,珍藏。
赞赞
未来不远,出版后一定第一时间在博客中公告天下 哈哈
赞赞