【数据回写】Prep Builder变身真正的敏捷ETL工具

前几天收到了beta的推送,又收到Tableau某销售的提醒,说Prep支持数据回写了。正好手头遇到了类似的问题,客户发给我的几百兆的.sql文件无法导入数据库。我马上问客户要来了hyper文件,下载了beta一试。 果然,半分钟搞定! 让我爱它,更多一份! 自此Prep晋升真正的(敏捷)ETL工具! 功能的说明: 数据回写和“输出”在同一个节点中,如上图,在之前“保存文件”、“作为数据源发布”之外,增加了“写入数据库表”的新选项。 点击之后,需要依次选择数据库类型,数据库(必须是存在的),选择已有的数据表或者新建一个表即可。 目前支持:MSS、Mysql、Postgresql、Amazon Redshift、Snowflake、Oracle和Teradata,基本覆盖了常见的种类了,当然更多需要官方后续更新。 如果是首次创建,可以直接创建出新表,这个写入也是最容易的;如果是已经存在的表,Tableau则会判断二者的表结构是否一致,并给出映射关系。目前还没有做到像专业ETL一样的一对一映射,这个确实有些“过于IT”了,不过后期应该会改善。 当然,对于目前而言,这已经是80%的功能了,不要为了一时半会用不到的功能而悲伤。 如果你知道我之前是如何使用python+tabpy+oracle包+oracle解决这个问题的,就体会我现在的开心了。 目前的Tableau产品关系图: 正因为这个功能,我想之前的产品关系图,应该再增加一条回写的线了。 这样才完整嘛。 Prep是我的最爱,甚至超过了我对Desktop的喜欢,在我的《可视化数据分析:Tableau原理与实践中》我用了大量的章节完整介绍了prep的各种功能(包括2020.1 的Fixed LOD和排序),并介绍了如何在企业和项目中把它融入到敏捷分析过程。期待大家喜欢。 新书七月初公开发售,预计本月底首批内部用户发行。(小活动:六月份购买腾讯课堂视频课程,获赠价值169元的图书一本)。 169元,《可视化数据分析:Tableau原理与实践中》全彩印·60万字 198元,《可视化数据分析:Tableau原理与实践中》视频课程 (腾讯课堂) 198元,《可视化数据分析:Tableau原理与实践中》视频+全彩印图书一本(仅限六月,名额有限) 喜乐君·Tableau传道士

【Tableau Prep】使用Prep做排名和排序 (译)

Posted on Joshua Milligan 在这篇博客中,Joshua Milligan介绍了如何使用Prep来实现字段按照销售来排序,这里使用了聚合aggregate功能和连接join,有助于更好地理解这两个功能。 让我们使用熟悉的超市样本数据,下图我们使用订单销售额为各个州的顾客做了排名。在Tableau desktop中,我们使用了表计算函数——rank,这本身倒也不是难事。 不过难点在于,使用表计算你不得不设定正确的寻址方向和分区(在这个例子中不是特别难),而且随着分析层次的增加,分析的复杂性也会增加,这会导致问题。如何在数据源层面实现排序呢? ——表计算可是在视图层面计算,与数据源无关。 Tableau prep的排序 让我们看看如何在prep中实现这个功能。我们以各州的顾客排名为例,下面是操作步骤: 创建一个“聚合”步骤,用“分组”保留州和顾客字段: 在聚合之后,添加一个步骤,从而包含了聚合中的所有字段: 出于分析的目的,把这个步骤和之前的聚合做连接——实际上就是自己与自己连接: 注意我这里使用了“内关联”,先用州做相等匹配(保证排名实在各州内部做排名),然后增加了一个条件,聚合的销售要小于等于聚合后的步骤中的字段。换句话说,我想匹配的是同一个州中,拥有更多销售的顾客。如果顾客A有最高的销售额,它只能和它自己匹配,因此计数时就只有1——排序就是1 增加一个聚合,计算每个州每个顾客的记录数 the Number of Records per State and Customer : 这个数字就是在各州中,各个顾客的排名The Number of Records is the number of matches from the join which ultimately is the Rank of the customer within the State.  So, we’ll… 最后添加一个清理步骤,重命名字段即可: 最后,我们可以把清理的结果和原始的记录关联起来,最后就可以输出具有排名的原始数据! 至此,我们把在desktop中可能会非常复杂的问题简化了。你想要比较每个州贡献前10名的顾客吗?很容易了。你想看看哪些顾客在这个州是前几名在另外的州却垫底儿吗?也容易。类似的分析其实无穷无尽,只因为我把复杂的问题放到了prep中,分析从此变得更加简单了。Continue reading “【Tableau Prep】使用Prep做排名和排序 (译)”

Tableau Prep2019.1新升级,表哥表姐的超级福音

在Tableau Prep刚刚推出正式版且只有英文版本时,我勇敢地试用了这款Tableau的分支产品,被它“可视化数据清理”的设计所折服,特别是它的Flow,让人感觉不觉得这其实是高科技产品。 在我学习并写完四篇Prep的使用文章之后,我慢慢放下了Prep这个软件,一来它的惊喜并未解决所有的问题,只是短期缓解了数据清理的疼痛,二来在使用过程中遇到了太多的小惊喜,还有让我的MacBook Pro吃不消的高耗能。 最近下载了最新版的2019.1,打算把一个客户的数据库分析从本地转移到server,通过更新数据库代替频繁的更新可视化仪表盘。没有想到几日不见,新版本的prep让我颇为惊讶,特意分享于下。 1、自动更新通配符并集,再也不用“假装编辑”了 (2018.3.3) 添加新文件时自动刷新输入并集 如果在输入步骤中使用通配符模式来查找和合并 Microsoft Excel 或文本 (.csv) 文件,则在下次您打开流程或通过命令行运行流程时,添加到同一文件夹中、与模式匹配的新文件会自动包括在并集中。 在使用Prep时,我频繁的用通配符去合并多个表格,但是之前每次打开,都不能自动加载新增加的文件,只好“假装修改”通配符内容,比如把“门店订单信息”改为“门店订单”,确认重新加载数据之后再改回去,不甚其烦。好在新版本及时更正了这个问题,打开prep文件,自动刷新并集,Perfect! 2、可以复制、粘贴频繁的“数据清理”动作(2018.3.3) 重用清理操作 在清理数据时,您通常会在整个流程中反复执行相同的清理操作或动作。为了使数据的清理和调整更加高效,我们添加了在整个流程中复制和粘贴这些操作或动作的功能,这样您就能执行清理操作或动作一次,然后在需要的地方重用该操作或动作。 就像Office的“格式刷”一样方便,现在可以复制、粘贴清理动作了,超级好用。包括三种方式: 在flow中复制一个步骤step,然后粘贴到另一个flow中; 在changes更改中复制一个更改动作,然后粘贴到另一个flow或者当前flow的其他字段中。 3、增强的右键高级操作 新版本不仅增加了“移除空格”、“替换为NULL”、“仅显示无效值”、各个地方都可以灵活的“添加说明”、右键一次性删除多个flow步骤,还可以在flow中右键查看所有的步骤,并提供快捷的处理方法,而不需要到数据面板,这个功能超赞。 不过,如果能够把同样的问题合并,比如说下面的所有能一次性移除,就更好了。 最重要的是,Prep支持和Desktop中一样的数据角色,特别是地理角色,这样可以无缝对接Desktop的分析而无需事后设定。而美中不足的是,现在还不能直接把经纬度指定为经度和纬度坐标,只能先作为数值,到desktop再编辑地理信息。 Tableau Prep 支持以下数据角色: 电子邮件、URL 常见的地理角色(基于当前地理数据,并且与 Tableau Desktop 使用的数据相同) 城市 国家/地区 县 省/市/自治区 邮政编码   4、在任何步骤中应用清理操作 (2018.3.1) 修复流程中的问题更加高效。现在,如果您在联接、合并、转置或聚合时发现数据中的问题,您可以直接在该步骤中修复这些问题,而不必添加额外的清理步骤。 在更多的地方更加灵活的使用清理功能,Prep会自动帮你保存更改记录到合适的位置。 新版本逐步增强了“说明”的功能,从而有助于团队之间的相互沟通和协作。   Prep正在快速成长,之前我建议企业客户尽可能先不要把prep用于正式环境,毕竟脆弱性超过想象,这几天我用prep+desktop做了一个客户分析,明显感觉有了非常大的提高。下一步,我想可以把Prep作为“表哥表姐”的 Excel Pro来推广了。 Excel带我们进入了数据的世界,而Prep带大家在大数据世界真正的飞起来。

【Tableau】prep合并数据之联结join与并集Union

前面介绍了Prep的pivot和aggregate,前者修改了数据的展现样式,后者修改了数据的聚合度;prep还可以把多个数据表合并在一起,提供了join和union两个功能。 一、理解Join和Union 在Tableau中,合并数据有两个基本的方法,联结join 和并集Union,更具体的说,是基于部分共同字段的数据联结Join,和全部字段一致的数据并集Union。 不得不说,Tableau Prep的官方翻译是有误导性的,它把Join和Union翻译为“联结和合并”,又说,“两种方法来合并 Tableau Prep 中的数据:联接和合并”,非常容易导致理解Union上的误解。 形象的讲,可以这么理解二者的区别:联结Join用于不同详细级别的数据,Union用于格式相同的数据;联结Join的结果是数据变得又高又胖(tall and wide)——增加了数据,同时增加了字段数量;而并集Union的结果是数据变高却没有变胖(tall not wide)——后面的数据追加到前面的数据,而字段没有增加。 联结Join:不同的数据、有共同的字段、字段增多——横向扩展了字段,纵向增加了数据; “并集”Union:相同结构的数据、完全相同的字段、字段不变——纵向追加数据。 Join容易理解,它在英文中的本意就是前后相接;在Tableau中,诸如标题列{ABCD }与{CDEF}联结,结果就是{ABCDEF},CD是联结二者的共同字段。 Union的本意就是指具有相同结构和属性的人员、国家、企业等的合并,就像共同信仰的人成立政党或工会、有共同价值的国家形成联邦、同为国家的国家形成联合国、企业成为集团等等;Tableau中的Union,要“确保合并的表具有相同的字段数、相同的字段名称,并且字段的数据类型相同”,因此“并集”也不是特别准确,逻辑学和常用的“并集”也有重合和不重合的情况,如果用“追加”词语,可能更加清晰一些。 不妨我们就用Join和Union吧。   二、Join的用法和说明 任意两个以上的数据表都可以通过关联字段Join在一起,在flow面板中,把一个工作表直接拖拽到另一个上面,就会提示Join OR Union,放在右侧是join(横向扩展),放在下面是Union(纵向追加)。 1、联结子句与判断 此时,prep会自动建议一个联结的字段,比如在superstore中的Product ID,你可以从下面的“联结子句建议”中增加新的子句,也可以在“联结”右上角的“+”手动增加。 这里要注意的是,联结的判断是可以修改的,默认是等于(=),可以修改为不等于、大于等于、小于等于,等。 说一个使用“不等于”的案例,比如在做顾客分析时,首次购物时间可以通过 Min[购物时间] 来查找,那第二次购物时间如何查找呢?通过Join联结全部的购物记录和首次购物记录,通过 “购物时间”Join,然后修改为“不等于”(!=),这样从全部购物记录中把首次排除,之后再做一次Min(购物时间)的聚合就可以了。 同样的操作,如果我们在desktop中实现,需要使用 fixed LOD先返回第一次购买时间,然后通过if判断建立新的字段,把首次购买时间替换为null,生成的新字段再重新做一遍fixed LOD计算。每一次LOD表达式计算,都是完整的一次数据查询,通过prep,我们可以在数据清理阶段完成这个操作,提高desktop中的分析效率。(本案例参考“15大详细级别表达式”之 案例10:各个阵列的回头客。链接:【Tableau】15大详细级别表达式-思路解读版 (5)) 2、联结类型 在Join中,最重要的地方就在联结子句(Join clause)和联结类型(Join Type),联结类型分为几种: 内部联结(Inner Join,默认):包含了两侧数据中的重合数据; 左联结(Left Join):以左侧数据为主,增加右侧的匹配数据 右联结(Right Join):以右侧数据为主,增加左侧的匹配数据 外联结(Outer Join):包含两侧数据的所有数据,重合或者不重合 我们可以据一个最简单的例子,Table 1有四行数据,Table 2有四行数据,其中两行重合(1和3)通过B=B和C=C两行数据来Join,四种联结方式如下图。最简单的数据可以了解真相。 当然,如果我们只用B=B联结怎么办?那就在内心中把C作为两个字段,一个叫C1,另一个叫C2,不要理会就好了——Tableau也是这么干的。Continue reading “【Tableau】prep合并数据之联结join与并集Union”

「Tableau prep」数据整理之pivot转置 2/6

编者按:这一篇我将详细的介绍Tableau  Prep 中非常重要的功能Pivot转置,它帮助我们把“表哥表姐”们的二维表转化为一维表,从而进一步的分析。 本文包含三个部分:pivot功能说明、pivot功能实现、嵌套转置的功能实现。 一、功能的说明 Pivot数据这个功能隶属于数据的Clean and Shape 阶段,主要用于把多个数据列改为数据行显示;类似于excel的数据透视图,直接的意思就是旋转表,prep中用了一个形象的图形传达了它的功能。 我们看一下官方说明: Pivot your data 转置你的数据 Sometimes analyzing data from a spreadsheet or crosstab format can be difficult in Tableau. Tableau prefers data to be “tall” instead of “wide”, which means that you often have to pivot your data from columns to rows so that Tableau canContinue reading “「Tableau prep」数据整理之pivot转置 2/6”

{Tableau}Tableau Prep 功能一览为快 1/6

Tableau官方刚刚发布了其最新的产品组件——Tableau Prep,看名字就知道是做数据准备的工具,具体来说,它可以“整合、规范和清洗数据“。 Use Tableau Prep to combine, shape, and clean your data for analysis in Tableau. Tableau Prep 是一款直观、简洁和智能的工具,可有效清理和组织数据以供分析。 分析前的数据准备工作通常需手动完成且十分耗时,坦白说,这完全是一项枯燥乏味的工作。……您可使用 Tableau Prep 轻松准备数据。 在这里,我简单介绍一下prep的用处、操作界面,以及数据清理的几个方法,深度功能会有单独分析。(备注,2018年8月,已经更新中文版本) 一、简要介绍 自己在数据整理上耗费了很多的时间,深感数据整理的重要性和不易,因此迫不及待地下载下来尝鲜,果不其然,非常有效地整合了Tableau中有关数据ETL的各项工作。 入门帮助 第一次安装,建议看一下软件自带的一分钟视频教程:Help-Get started,没有字幕,动画就让你看点明白主要的步骤。 Drag and drop or double-click to bring your tables into the flow pane, and then use familiar operations such as filter, split, rename, pivot, join, andContinue reading “{Tableau}Tableau Prep 功能一览为快 1/6”