关于自助式分析的思考

“人人都是数据分析师”,“平民数据科学家”这是我们最近几年经常听到的口号,加上很多先进的商业或开源BI工具的出现,确实很好的提升了大家准备、分析、呈现数据的效率。在这种情况下,很多企业会希望能够做到自助式分析,让业务人员也能更好的获取数据,更高效的进行分析与决策。在我个人的经历中,有在互联网公司从零到一搭建数据平台的经历,有面向企业的数据思维方法论培训的经验,以及最近也在帮朋友公司进行外贸电商项目的实施。所以我也想从自己的角度讲一下对这件事的看法和心得。

先说一下要进行自助式分析的目的,企业的业务人员与管理者希望能更快更好的获取数据,并基于自己的问题与想法的进行分析与探索。这件事的难易程度取决于两个方面:企业的数据平台基础(或能力)与个人的分析技能。

如果给企业的数据平台划分等级:

  • 第0级:没有像样业务报表后台,甚至没有自己的数据库,数据散乱在各种电子表格里。
  • 第1级:有工程师帮忙制作的基础的业务报表后台,可以简单的查询筛选,也可以导出一些数据明细。主要的业务分析基于电子表格。
  • 第2级:开始有面向分析的数据库或数仓,有了一个或多个分析师,开始尝试提炼和整理主要的业务指标,有了更好的BI分析工具,可以更快更好的制作分析报表。但这时分析师的主要工作还是取数为主和为业务部门的个性化需求制作和维护报表。
  • 第3级:能够基于良好维护的数仓进行规范的、深入的分析。形成一套全面的指标体系,基于统一的口径进行取数和分析。能够在良好的数据基础上,进行用户画像、预测、推荐等建模分析,可以明显的看到数据产生的价值和推动。
  • 第4级:公司规模更大,有了更细的分工,甚至开始自己研发各种BI工具,不光是分析师,还有了数据科学家。但这个时候,因为业务更复杂,流程更长,各个部门的协作反而变得更难,甚至会每个部门各自维护和集成自己需要的数据,形成数据集市的问题。

如果要评估业务人员的分析技能(这儿其实有个前提是他们并不是科班出身,所以要求他们:SQL,Python,R 都会其实并不公平):

  • 第0级:既没有好的分析思路也不熟悉常用的电子表格工具,会看一下报表后台的数据,以了解当前的业绩完成情况。
  • 第1级:有了更多的业务理解,能够看懂后台的数据,并能够导出明细数据,在电子表格工具里进行计算和处理。
  • 第2级:熟悉常用的分析框架与模型(如:二八原则,RFM),能够自己做一些分析图表和报告,并推动业务决策。
  • 第3级:开始学习和掌握一些更好的BI分析工具,能够自己写一些简单的SQL查询和为了更好的分析对数据进行处理。

我们不会在一片散沙上建高楼,也不会把锤子放到婴儿手中。要做好自助式分析,对于企业的数据平台基础和业务人员的分析技能都会有一定的要求。前者需要有面向分析的数仓建设和核心指标的整理,后者需要业务人员对于数据的准备和计算有一定的基础或者愿意去学习。

在这个过程中,分析师是关键,他们自己的专业能力是能够在复杂的数据基础上挖掘和输出分析结论的。但在企业中,分析师往往成本高人数少,并不能全面的满足业务部门的需求。这时就需要培训业务部门的同事,从分析的思路到工具的使用。

假设企业的分析报表是围绕Tableau来建设的,可以按这样的方式来推广自助分析:

  • 在每个业务部门挑选1-2个动手能力强,愿意学习的同事重点培养。
  • 基础的SQL查询和Tableau Desktop使用培训。
  • 给业务部门的同事开放少量的经过整理的SQL表的查询权限,并辅以文档说明。
  • 简单的Tableau报表需求,做一个字段逻辑清楚的版本就好,个性化的图表配置交给业务部门同事自己做。
  • 在这个过程中,逐步介绍一些深入的用法,如:Tableau 的集,表计算,并和业务部门的同事一起围绕问题进行探索,这样的好处是可以互相学习彼此的:分析技能与业务经验。
  • 围绕数仓和重要的业务指标调整讨论,可以邀请业务部门的同事旁听,这样也可更好的让他们了解最新的进展。

在这里面要注意的是因为业务部门同事会缺少统计学知识,以及对复杂的业务指标计算理解会有偏差,所以一些重要的分析结论还是需要分析师帮忙检查确认,才能正式的发布出去。

每个企业的组织架构和业务模式会有不同,有的倾向于所有的事情都自己搞定。有的会找外部的咨询公司或BI服务商来做,如果费用充足,项目管理能力好,也可以解决数仓和分析报表的需求。但如果都依赖外部资源,也会导致受制于人,以及自己的能力还是得不到提高。所以推荐的做法是,可以把其中的一些工作分出去,如:数据的集成,ETL,数据字典的整理。这部分工作需要更多的专业技能,同时完成后,维护的工作量比较小。以及在这个过程中,也花一些钱请服务商培训自己的人,以学会一些基本的报表制作和分析能力。

感谢 @Terence Zhang 的补充,除了常见的从数仓建设开始的自助分析推广,还有一种场景是麦肯锡,PWC这样的咨询公司的用法,咨询顾问们服务于不同的项目和客户,数据是分散的,没有集中的数仓和Tableau Server。他们会把Tableau当做效率工具和Excel的替代,更快更好的对数据进行准备与计算,以完成相关的分析报告。

关于自助分析这件事,我觉得这是一件非常实践性的活动:意愿,思路,能力缺一不可。“条条大路通罗马”,也希望各位分析师朋友或相关部门的负责人,能够从这篇文章中获得一些提示与思考,更好的推动企业的数字化转型与自助分析能力。

演讲汇报场景的 Tableau or PPT ?

PPT 非常适合演讲汇报的场景,通过页面的切换,内容重点的呈现、标注、强调,更好的引导听众来听懂演讲者想表达的内容。常见的做法是,在PPT中会写一下背景介绍,状态与阶段,产品或业务说明,以及非常重要的数据截图,可能是表格也可以是图表。这部分内容往往是通过Excel,Tableau这样的工具来制作。

截图的好处是方便分发(作为PPT的一部分)和加上个性化的标注说明。缺点是,这儿的图表是静态的,收到的人既没法筛选互动也没法基于图表的明细数据做进一步的分析。对于这个问题,比较好的做法是:

  • 阅读为主,就通过Tableau的故事的方式进行报告的设计,辅以文字说明。
  • 需要更好的演讲效果,可以截图到PPT,但在对应的页面里,说明这个报表所在的Tableau Server页面地址,这样如果看的人需要筛选互动,可以自己去看。
  • PPT + 讲解时切换到Tableau报表的方式,这时还可以带着问题进行一些筛选互动,这样都能兼顾到。

当我们知道某个Tableau报表是要面向演讲汇报的,那么在开始制作时,就需要考虑和准备更多:

  • 报表应该更简洁一些,文字标题的文字要大,行列的轴可以更缩略些。
  • 在标题和说明里,辅以更多的文字。
  • 用好Tableau内置的区间、参考线、趋势线、标签功能,让图表说明更为丰富。
  • 通过故事或仪表板来组织好各个工作表的呈现顺序和位置,这样在讲的时候,可以更有逻辑和条理。

在讲的时候,需要先介绍背景和主要指标的定义,之后再切换到Tableau报表。在这个过程中,有个小技巧,可以用好操作系统的屏幕放大功能,让听众更清楚的看到当前在讲的部分。以及这样的讲解过程,也是一个推广企业内自助分析的好机会,告诉大家能够拿到的不只是静态的截图,而是动态的分析呈现。

如何通过 TC18 Hands-On Training 来提升你的 Tableau 技能

学习一个工具或技能,最好的办法就是理论与实践的结合。在刚刚过去的 Tableau Conference 2018 大会上除了产品展望,行业案例,专家讲解外,还有一个很棒的活动就是:Hands-On Training。

什么是 Hands-On Training?顾名思义,就是实践练习课程。围绕一个主题,为每个参与者提供电脑,通过现场的讲解与大家的动手练习来学习提高。主持人会先介绍该主题的背景与知识点,然后依次提出问题,大家动手实现,主持人再公布答案与做法。一般一个 Hands-On 会有5-10个练习,难度逐步加深,通过这样的方式来让参与者由浅入深的掌握相关的知识。

没有去现场的朋友会说可惜我没有去,参加不了这样的活动了。其实没有去现场也没关系,官方已经很贴心的提供了相关的练习材料。首先我们从浏览器访问:https://tc18.tableau.com/learn/sessions 页面,然后在左边筛选列表的 Type 里选择:Hands-On Training,然后点击 Apply 进行筛选,这时会看到有46个练习。

我们以:Stirred, not shaken | The perfect data blend 为例,打开练习介绍页面(https://tc18.tableau.com/learn/sessions/32358)。

这时我们可以看到,除了背景介绍外还有以下信息:

  • Speaker(s) 讲师
  • Content Type 类型
  • Level 难度
  • Track 主题
  • Session Asset Files 练习材料

这儿的 Session Asset Files 就是可以下载,以供我们课后练习的材料。

下载后,会有多个文件,包括:

  • SlotnickChapekis_StirredNotShaken.pdf 课堂的PPT
  • SlotnickChapekis_StirredNotShaken_Starter.twbx 数据与问题工作簿
  • SlotnickChapekis_StirredNotShaken_Solution .twb 标准答案工作簿
  • Guided Website 目录,带有操作演示的网页

我们先打开 PPT 看一下:

在这里面除了讲师介绍外,会通过图示的方式,介绍 Data Blending (数据融合)的相关知识。

然后我们打开:SlotnickChapekis_StirredNotShaken_Starter.twbx 开始练习,会看到这样的空白工作簿:

按照练习划分为多个工作表,看起来有点让人摸不着头绪,是要做成什么样子呢?这个时候就可以对照:Guided Website 的网页来开始练习了。左边是各个练习的列表,右边是具体练习的描述与要达到的效果。

完成当前练习后,如果还有困惑或者想看下标准答案的操作步骤,可以回到这个网页,点击下面的:Show Steps 按钮。

这时就可以看到图文并茂的操作步骤了 :),完成全部的练习后,还可以对照:SlotnickChapekis_StirredNotShaken_Solution.twbx 查看官方的标准答案。

总结一下

官方提供的 Hands-On Training 练习覆盖了不同主题、不同难度的练习。有的是帮助你巩固基础知识,如:表计算,参数,LOD;有的是介绍新功能,如:Prep,Dashboard Extensions;有的是介绍通用的设计与统计学知识;虽然没有去现场,但喜欢思考动手的你,还是值得花一些时间去练习的。

如果觉得一个人练习太孤单,也可以组织公司的分析师同事一起练习,以Data Blending 为例,每个分析师认领两三个小练习,自己提前实现一遍,然后大家坐在一起,进行讲解和交流,比如:具体的场景,实现的方法,对手头的工作是否有帮助等。

最后送大家一句话:Practice always make it better :)

当我们面试Tableau分析师时,应该问哪些问题?

来自朋友的问题,他是一个很厉害的网站数据分析师,在Excel这块也非常有心得,不过对于Tableau没怎么用过。

纪杨,请教下,如果面试时想知道应聘者是否真的能熟练运用tableau,可以问些什么样的问题?

我觉得这个问题可以这样看:

Tableau 是一个很好的数据可视化工具,只要多实践都可以学好学会,并不是太难。招聘分析师时更重要的是:思路清晰和有比较好的底子(数据库、统计学,算法、代码、业务知识等)。即首先是一个好的分析师,然后才是Tableau水平怎么样?

首先看一些加分项:

  • 是否有参加或通过官方的考试认证?
  • 是否有参加社区的活动,在Tableau Public上发布过作品?

基于场景的交流:

可以请面试者讲解一个自己做过的实际的业务场景,介绍分析、可视化的思路。介绍数据结构,在纸上画一下整个仪表盘的结构和设计。

可视化方面的问题:

请面试者介绍下可视化的发展历史,可视化呈现的主要元素,图表的选择。有看过哪些和色彩、设计相关的书?

工具原理方面的问题:

  • 请面试者介绍下Tableau这个工具的原理(如何连接数据,如何呈现,如何发布)。
  • 请面试者给从来没用过的人讲解下什么是:数据桶,表计算,LOD等?

数据查询相关的问题:

  • 一般是如何理解和处理数据的?
  • 在分析时,如何优化查询和连接性能?
  • 如何写报表文档,取数口径?

更多工作经验相关的问题:

  • 碰到中国式报表的需求一般如何处理?
  • 当面交流和邮件发布时报告的差别?
  • 个性化需求和常规报表有哪些不同?
  • 如何推动公司内数据化驱动?
  • 如何更好的与运维、BI、DBA团队沟通协作?
  • 等等 … 

以我们公司的分析师为例,大部分人来面试时都没有用过Tableau,但通过自己的学习和日常的实践,都能很好的上手Tableau。

我理解很多公司对于职业技能的要求,我自己的感觉,工具本身既重要又不重要,重要是因为你需要学习掌握好工具来提高效率,解决问题,推动业务。不重要是因为,如果你本身的分析技能、业务知识、沟通交流OK的话,切换和学习新的工具都可以很快的上手。

作为Tableau的学习者、爱好者,我觉得更重要的是学习和热爱可视化的知识,能够更多的参与社区的交流活动。如果面试官看到你有:相关的认证,很棒的社区问答和Public的作品,相信你一定会受欢迎的。

我的作品,也期待你能加入Tableau Public社区:

https://public.tableau.com/profile/jiyang#!/

如何在Tableau中更好的呈现和计算工作日收入

介绍

不同行业用户活跃的时间分布会各有不同,像酒店行业,周末的入住会明显高于平时,而像项目协作类产品,我们的用户付费主要集中在工作日。这个时候当我们在讨论:平均每天有多少收入时,其实关心的是工作日的表现,那么如何在Tableau中更好的计算和呈现这样的数据呢?

首先我们来看一个例子数据,这是8,9月份的每日收入报表,从图表上我们可以看出:工作日的收入会明显高于周末,最高可以到每日400多万,最低则只有90几万,如果直接取平均,如图上的平均线所示,则有200多万,这显然不是我们需要的。

为了算工作日的平均收入,最简单的办法是从图表上排除掉周末,这个可以用计算字段来判断:

字段名:is_weekend
DATEPART('weekday', [Date]) = 1 or DATEPART('weekday', [Date]) = 7

通过判断一周的第几天来判断是否为周末,为了验证,我们在图上把是否是周末,用不同的颜色来区分。

然后在图表上排除掉周末的数据,这时的平均值就符合我们的预期了。

这样虽然可以满足需要,但还不够好,我们还是希望既能够看到完整的每天的数据,又能有一条工作日的收入平均值。这时的做法是这样的,添加一个新的计算字段:

字段名:weekday_income
if [is_weekend] then 
    null 
else 
    [income] 
end

在这个计算字段里,如果是周末的收入就为null,因为null是不参与平均值计算的,所以这也正是我们需要的工作日收入。

然后把这个字段加到报表的 Detail 里:

然后修改平均线的属性,将Value从 SUM(incomde) 切换到 SUM(weekday_income)

这时的平均线就是工作日收入的平均了。

如果还想做的更好,我们可以直接把这儿的平均值在标题里显示,做法是在Detail里,加一个整个报表范围的平均值计算字段:

TOTAL(AVG([weekday_income]))

然后把这个字段加到标题的说明里:

这时看报表的人只要看标题和备注就可以很快的知道工作日的平均收入了。

这儿的整个操作会有些复杂,但最终的呈现对于看报表的人却非常清晰。这有点像一位作家说过的话: “很抱歉,我写了如此长的一封信,我实在没有时间给你写一封短信了。” 如果大家时间来得及,不妨多尝试更好的呈现方式。

报表我发布在这儿了,大家可以下载源文件,看如何实现:

[https://public.tableau.com/profile/jiyang#!/vizhome/workday_income/]

最后Python大法好,放一下如何用代码来生成这儿的测试数据:

import datetime
import random

day_seed = [1.3, 1.2, 1, 1, 1.2, 0.4, 0.35]

d = datetime.date(2017, 6, 12)

print('date\tincome')
while d <= datetime.date.today():
    d += datetime.timedelta(days=1)
    day_index = d.weekday()
    print( str(d) + 
           '\t' + 
           str(int(3000000 * random.uniform(0.8 * day_seed[day_index],
                                  1.2 * day_seed[day_index]))))

代码的逻辑是先分配下一周7天中每日的比例,这时我们可以看到工作日的周一周二比较高,周末最低,然后用random来生成随机的每日收入。

(文章导读)移动端的仪表盘设计 – 从你的关注点开始

平时会订阅很多好的数据分析和可视化的文章,喜欢的文章也会推荐给周围的朋友。当然大部分文章都是英文的,所以也在想,是否可以通过点评和导读的方式,把优秀的,有启发性的文章和博客介绍给大家。

这是第一篇文章导读,作者是华人,之前在Tableau工作,应该说每一个Tableau用户都看过她的作品,因为Tableau Desktop的官方示例就是她设计的,经典的Superstore Dashboard。

文章来源

文章导读

移动设备越来普遍,移动端的报表呈现也越来越重要,好的移动端报表帮助你在不同的地点,不同的时刻快速的查看你的数据。但由于物理尺寸的限制,设计移动端的报表又是一件很有挑战的事情。需要有关注点,找到和确认真正重要的指标。

一些技巧:

  1. 布局要有利于筛选和探索
  2. 为每个人定制数据
  3. 使用实时的数据
  4. 专注于可以采取行动的数据
  5. 提供简单的数据快照

Make over monday – 每周动手实践的Tableau社区网站

DraggedImage

学习一项新技能的最好办法就是动手实践,在这个过程中,如果能与高手们一起练习并交流就更好了。

http://www.makeovermonday.co.uk/ 就是这样一个每周提供数据、背景知识,以及大家一起练习交流的网站。

参与这个活动的流程是这样的:

  1. 每个周日,网站的主持人会放出一份新的练习:http://www.makeovermonday.co.uk/data/
  2. 你根据自己的理解,制作Tableau报表,并发布到:https://public.tableau.com/s/上。
  3. 然后把自己的报表链接发布到Twitter上:链接 + 截图 + #MakeoverMonday,最后一个是活动的话题标签。

这样大家就可以通过:https://twitter.com/hashtag/MakeoverMonday 看到近期的报表作品了,就像这样:

DraggedImage-1

最近一期的主题是:

Have Apple Lost Their Edge With iPhone?

关于iPhone的销量在2016年不再持续增长的问题。

提供的数据是这样的:

DraggedImage-2

是的,这一期的数据结构非常的简单:年度,季度,以百万为单位的销量。

简单的数据就应该简单的呈现,不是吗?

以下的作品有的简约,有的却在简单的数据中,发现了更多。

简约型

DraggedImage-3

大苹果与危险的下降趋势。

俏皮型

DraggedImage-4

下降后,诺基亚拍手称快。

报表地址在这儿:

https://public.tableau.com/profile/ugleymatt#!/vizhome/MakeOverMondayS2-E2/Nokia

原理是,绿色背景的折线图嵌入在背景图片中。

DraggedImage-5

卡通风格

DraggedImage-6

乔布斯和库克谁的贡献更大。

清楚直观型

DraggedImage-7

下降的原因是从第2季度起,不如上一年。

更多的背景数据

DraggedImage-8

iPhone的销量与新品推出有直接的关系,加上了每一款新品的发布时间后,可以帮助我们更好的看到历史上哪一款iPhone对销量的提升更大。

小结

一年有365天,共52周,新的一年刚刚开始。即使没有购买Desktop,只要有免费的Public(https://public.tableau.com/zh-cn/s/download/),可以马上开始新一年的可视化之旅了。

大家也可以关注:#MMDataCamp 话题,来自华人社区的参与者们。

https://trimydata.com/2017/01/11/people-who-viz-together/

DraggedImage-9

Practice always make it better!

Tableau新手上路

Tableau的学习既简单又复杂。

简单是因为:

  1. 界面操作直观
  2. 资料案例丰富

复杂是因为:

  1. Tableau是一个侧重于实践的工具,需要有实际的场景与需求
  2. 作为可视化工具,上游是不同的数据源,下游输出是各个部门看数据的需求
  3. 需要掌握很多相关的知识:数据库,可视化,统计学,业务分析
  4. 在直观的工具界面下,隐藏着很多复杂的概念和原理,如:表计算,LOD

这篇文章主要是帮助第一次接触的Tableau的新人找到适合自己的入门练习和相关的资料。

产品介绍

什么是Tableau?

一款数据可视化工具,帮助你更好的查看和理解你的数据。

主要的优点:

  • 支持多种数据源
  • 高度定制、细致、美观的报表设计
  • 多平台,不同方式的报表查看
  • 查看的过程同时也是分析讨论的过程(支持筛选、互动、导出)
  • 不光是图表,也可以看到图表之下的明细数据

主要的产品

  • Tableau Desktop (桌面客户端,快速的设计和发布报表)
  • Tableau Online (基于云端的在线的报表查看平台)
  • Tableau Server (私有部署的报表查看平台)
  • Tableau Reader (本地查看文件形式的报表)
  • Tableau Public (桌面客户端,快速设计和发布报表)

下载安装与激活Desktop

http://www.tableau.com/products/desktop

  1. 安装后,用购买的序列号激活。
  2. 如果要更换电脑,需要先在:帮助菜单的管理产品密钥里,先选中当前的序列号,再停用。

学习与使用

首次使用

Get Started Tutorial里除了一步一步的操作说明,还会有一些扩展的问题,也可以尝试解决。

需要注意的概念

参考在线帮助里的:Tableau 概念内容(http://onlinehelp.tableau.com/current/pro/desktop/zh-cn/help.htm#concepts.html%3FTocPath%3D%25E5%2585%25A5%25E9%2597%25A8%25E6%258C%2587%25E5%258D%2597%7CTableau%2520%25E6%25A6%2582%25E5%25BF%25B5%7C_____0

包括以下的内容:

  • 数据类型
  • 字段类型
  • 数据字段
  • 聚合

适合上手的例子数据与报表

  • 安装后,自带的3个报表案例,如:超市的例子
  • 网上的开放数据
  • 公司内已有的业务报表(关注数据源,指标的定义,查看报表设计),尝试在已有的报表基础上,通过提问题的方式,尝试做修改

相关资料

图书推荐

进阶的资料

获取Google Analytics明细数据的方法与思路

我们在用Google Analytics进行网站分析的过程中,很多时候需要按用户ID,时间获取用户的访问明细,这样可以更好的和内部的CRM或订单系统对接。在GA后台导出或通过API获取数据是没法完成这一任务的,因为这儿得到的是聚合的数据,如按城市、来源的访问量、停留时间、跳出率等。

方案1:购买Google Analytics企业版

购买GA企业版,然后明细数据可以同步到谷歌的Big Query数据仓库,可以很方便的查询以及和已有系统做集成。这儿的主要成本是Google Analytics企业版,一年要10几万美元的费用,相比之下,Big Query会很便宜,因为是按存储量和查询收费。

在Big Query的示例数据库里有一个GA明细数据的例子,表结构和字段都很清晰,在GA的官方帮助里,也有查询的示例。

https://support.google.com/analytics/answer/3416091?hl=zh-Hans&ref_topic=3416089

方案2:使用开源的Piwik分析工具

Piwik 是一个开源的流量分析工具,PHP + Mysql,可以很方便的私有部署。使用Piwik最大的好处是统计代码的部署,维度指标的定义和GA非常类似,分析师可以很快的上手。这儿的成本主要在:服务器的部署,从Mysql数据库同步数据,以及数据处理的成本。如果想快速上手,也可以考虑Piwik Pro,会按照数据量收费。

方案3:前端Hack的方式

即在GA提交数据请求或打点的同时,把这儿请求的明细额外提交一份到自己的Web服务器,当然这种方式也还是需要额外的服务器部署和数据处理的成本。

总结

GA在免费流量工具里是非常好的产品,方便易用,和自家的广告系统也结合的很好。不过在需要获取明细或数据仓库的方案时,还是需要额外的成本。推荐的方式是免费的GA和私有部署的流量系统一起跑,这样既方便在GA后台看数据,也方便自己拥有明细数据做数据集成。