上月休了一个小长假,去新西兰呆了 20 几天,公众号停更,让各位久等了。本周开始恢复更新,今天先补上五月份更新内容。
除了几个重要的新特性外,本文我会对增量更新和 Query Folding 做详细介绍。
报表功能
更灵活的条件格式
之前只能基于自身设置条件格式,现在,你可以任意指定模型中的字段为当前列生成条件格式。
支持度量值和列,后者需要进一步选择聚合方式。
增加了对文本列的支持,设置红绿灯效果更容易了。
目前只支持一个字段,如果规则需要用到多个度量值,可以尝试定义一个新的度量值将其包含在内,前提是等式另一端必须返回数值。
高级筛选器同步
对筛选器分组管理,只支持自带的筛选器。同组筛选器可以获得新特性:
- 选项同步,一个筛选器的选中项会同步到同组的其他筛选器。比如想要选择订单日期和发货日期在同一时间段的数据,只需要将两个日期筛选器设为同组,操作一个,另一个同步更新,不必操作两次。注意:勾选更改同步后,即使不同的字段也会同步。
- 全局同步,同组的筛选器可以跨页面同步。这个功能在有多组筛选器需要跨页面同步的情况下比较有用。
- 更新同步,替换一个筛选器使用的列,组内其他筛选器同步替换。
改进对数坐标轴
所有直角坐标系内置图表(饼图等除外)支持对数坐标轴,注意值域不能跨越或包含 0,正值或负值都可以使用,Tableau 在即将发布的 2018.2 版本中将加入对数坐标轴显示负值的功能。
漏斗图增加更多数据标签
折线宽度设为 0
折线图和组合图中的折线的宽度可以设为 0,让你方便的在日志类型的 x 轴上制作出散点图或者柱形图+散点的组合效果。
分析功能
钻取时保留所有筛选器
激活钻取选项下的“保留所有筛选器”,页面钻取时,源页面的所有筛选器都将传递到当前页面。当钻取需要考虑页面上所有筛选条件时,这个功能会非常方便。关闭此功能后只能传递当前图表在钻取筛选器中预先指定的筛选条件。
本次更新后数值列也可以用作钻取筛选器,在允许钻取的情形里选择“用作类别”即可。
Premium
增量更新(预览)
解决大数据集刷新问题的通用方式,增量更新每次只刷新一小部分数据,资源消耗少、刷新速度快,相比目前的全量刷新是更稳定可靠的方式。
目前 Incremental refresh 只开放给 Premium,不过令人欣慰的是 Team 已经明确表示未来 Pro 用户也可以使用增量更新。
关于增量更新的配置方法,官方文档有详细的介绍,这里略过。下面介绍另外几个重要知识
- Desktop 中配置,web 端测试。类似于行级别安全性的设置,增量更新的最终效果要在云端才能看到,目前你需要把配置好的 pbix 上传到 Premium Workspace 才能运行(未来 Shared Capicity 也会支持)
- 新的模型兼容性(schema comparability)。增量更新基于最新的模型兼容性,开启了此特性的 pbix 文件无法再用 SSMS 连接,也不能导入 Azure Analysis Services。
- 检测数据更改(Detect data changes),可以进一步减少需要加载的数据量。以上图设置为例,默认每次更新过去 10 天数据,开启此功能后,系统对比上次更新的记录,如果有 8 天数据没有变化,则跳过这些日期,最后只有两天的数据需要更新。实现此功能需要模型中有一列专门用于计算每个单位周期内的数据变化。
- 仅刷新完成天(Only refresh complete days)通常我们会把数据刷新放在空闲时段,比如凌晨 4 点,但只需要完整的自然天的数据(截止 0 点),勾选此项后系统会忽略 0 点-4 点的数据。
Query Folding 和 Incremental refresh
如果你知道 Query Folding,说明你对 PowerQuery 的了解已经深入到一定程度了,这个词没有合适的中文翻译,索性就用英文好了。那它究竟是干什么的?请允许我讲个故事:
想象你有一个 100 万行的表需要从数据库加载到 Excel,中间还要做一些数据筛选和转换的操作,不幸的是你的电脑已经 5 年没有换了,老迈的 I3CPU 和可怜的 4G 内存每天都在折磨着你,平时处理个几万行数据的时间都足矣回顾自己的前半生,面对眼前不可能完成的任务,你没有放弃。神奇的事情真的发生了,当你设置好清洗、转换的流程并按下加载按钮后,多亏了 Query Folding,整个过程的用时远比你想象的要快很多。
当连接数据库进行数据抽取的时候,PQ 会优先将 M 语言的查询过程转换为数据库的原生查询(Native Query),这么做可以利用数据库的性能更快的完成清洗操作,提高处理效率,减轻本地查询的压力。
所以,面对超大型数据集做增量更新的时候,尽量创造条件通过 Query Folding 完成查询,就显得尤为重要。想要使用 Query Folding 通常要满足两个条件:
支持的数据源和可以被 folding 的 query。
数据源方面:关系型数据库(mysql/sqlserver/oracle)、OData 数据源和 HDFS 都支持 QueryFolding。
操作:筛选、合并和追加查询、分组、透视、逆透视等常用操作都可以被识别。
不能确定数据库或者操作是否支持 Query Folding 也没关系,在查询步骤上右键即可查看
本机查询显示灰色说明数据源或者之前的操作阻断了 Query Folding,通常这意味着查询性能的下降,应尽量避免。
某些特殊情况下,我们希望一上来就阻断 Query Folding,由本机完成查询,比这时可以加入一些特定操作,比如 Buffer 类函数来实现。如果你还不知道这个函数,强烈建议去施阳博客(pqfans.com)学习一下。
注意:如果连接到 MDX 的 Analysis Services 数据源,无法通过原生查询判断 Query Folding,可以观察表格左上角图标,显示为 cube 立方体说明 Query Folding 处于生效状态。
说点什么