�套路太深,先来点转折压压惊
凡事皆有套路,套路有深亦有浅,老司机的套路太深,完全看不懂。没关系我们先从菜鸟司机开始,跟着官方的节奏走,见招拆招,不要被带乱了节奏。
Tableau是什么?
Tableau是一家提供商业智能的软件公司,总部位于美国华盛顿州西雅图市,致力于帮助人们看清并理解数据,帮助不同个体快速且简便地分析、可视化和分享信息。
Tableau是新一代的BI软件,基于斯坦福大学的突破性技术,Tableau公司在全球拥有9000多家企业或组织客户,遍及各个行业的各类规模企业。2011年,Tableau被美国(Gartner)高德纳咨询公司评为世界上发展速度最快的商业智能公司。
Tableau 是桌面系统中最简单的商业智能工具软件,Tableau 没有强迫用户编写自定义代码,新的控制台也可完全自定义配置。在控制台上,不仅能够监测信息,而且还提供完整的分析能力。Tableau控制台灵活,具有高度的动态性。
Tableau公司将数据运算与美观的图表完美地嫁接在一起,它的程序很容易上手,各公司可以用它将大量数据拖放到数字“画布”上,转眼间就能创建好各种图表。这一软件的理念是,界面上的数据越容易操控。
关于Tableau的介绍还有很多,此处不予详表。对于菜鸟司机而言,Tableau无非是一个数据可视化工具,内部构成本文将不做探讨,我们将更多地关注他能在实际工作中给予什么样的帮助。下文为官方的介绍:
快速获取意见
Tableau 比现有解决方案快 10 到 100 倍。它根据人的思维方式设计。在画布上拖放。利用您与生俱来的能力快速发现视觉模式。体验专为快速性和易用性打造的分析解决方案。
连接所有的数据
无论数据是位于电子表格中、SQL 数据库中、Hadoop 中还是在云端,且不论身在何处,您都可以连接到任何数据。一键即可访问大数据。无需编写代码即可合并不同的数据源。发现数据蕴含的全部洞见。
探索和发现
您的数据中隐藏了多少机遇?Tableau Desktop 是一款人人都能使用的产品,人们能够借助它提出新的问题、洞察趋势、发现机遇,自信地依据数据来制定决策。
数据会讲故事
制作交互式演示材料。控制叙事节奏,同时让受众能够探索未知。让您的数据传达见解。
深入解答问题
实时分析需要的不仅仅是出色的仪表板。从现有数据中得出新的计算,拖入参考线和预测,以及访问统计摘要。试验趋势分析、回归和相关。
Tableau可以做什么?
若只是从官方公布的使用方法来看,我们能得出的结论便是:Tableau很炫酷,可以带你装x带你飞。
然而它最实用的地方在于,能够快速地建立维度模型,而后发布到服务器方便用户进行OLAP分析。建立模型的方式也很简单:非常的简单粗暴:建立数据连接,定义度量和维度,发布数据源。
在数据的处理上Tableau 提供了两种方式:
实时,即直接连接数据库(相当于ROLAP)
相当于ROLAP--以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。
提取,即将数据提取到服务器,以文件的方式存储下来,类似MOLAP的方式,至于提取过程中以什么方式处理聚合,笔者还没有研究,我只是看颜值的。
以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方块(Cube)"的结构,在MOLAP中对"立方块"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。特点是将细节数据和聚合后的数据均保存在cube中,所以以空间换效率,查询时效率高,但生成cube时需要大量的时间和空间。
以上都是Tableau在前端呈现的时候常用技能,是菜鸟司机的必修课,但是要想套路再深点,就得再挖一挖。
作为一款BI软件,必修在能够与ETL上实现衔接,这方面不得不夸一夸Tableau还是相当不错的,Tableau提供两种解决方案:
Tableau api
Tableau 官方提供python 的api 下载,具体操作官方已经很详细了就画蛇添足了
Tabcmd
Tabcmd 是Tableau提供的一种命令行模式,你可以在安装客户端之后,以命令行的模式操作Tableau,达到预期效果。
工作中如何应用Tableau?
讲了那么多Tableau的理论知识,若不落到实践中未免显得暴殄天物。
举个栗子:公司现在有一个业务场景,ETL处理程序会从其他业务系统提取数据到DW,但是数据进入DW的时间是不定的,Tableau在做数据提取的时候需要先检测数据是否已经准备好,然后进行数据提取:
第一步:利用tablau tabcmd的命令行定义一个数据提取的脚本getdata.bat
tabcmd refreshextracts --datasource "Loan_cube_risk" --project "6100 RISK" -s localhost:82 -u username -p password
第二步:定义一个python 脚本,脚本申明三个函数
定义getStatus函数获取当前dw数据的状态
定义一个执行tabcmd命令的函数
定义一个发送邮件的函数,程序出问题时反馈问题
模块已经定义好了,开始搭积木
第三步,在服务器上设置好这个脚本的调度,就算大功告成了。
写在最后
作为Tableau的菜鸟司机,小编将其应用到工作中也只有半年的时间,但这个过程中受益匪浅,一点浅薄的分享,如有对这方面同样感兴趣的同行,欢迎留言交流。
本文作者:赖成勇(点融黑帮),现就职于点融网Data Team,从事BI相关工作,喜欢与数据打交道,业余时间喜欢玩转各类图表。