如果你使用的是远程数据源,特别是跨洋的数据源,而且大多数时候我们使用数据源的时候会使用多表Join,那么你会发现在Tableau Desktop做数据提取的时间会很漫长,而且有的时候会中途断掉。(有人问为什么不用实时连接非要提取?因为提取后Tableau使用的数据源是按列存储的,而且如果用2018.3版本以后的Tableau还可以选择Join关系的表单独提取以提升性能。这些内容以后单独发帖聊)
这里教大家一个小Trick能够快速地做提取。
首先建立一个计算字段,比如就叫Trick,内容就直接写1=2这样的。当然这个Trick的值就是False了。
然后我们再做数据提取,在数据提取的时候设置一个筛选器让Trick=True,这时你是提取不到任何数据的,这样就节省了漫长的数据查询、传输、下载的过程。基本上就是几秒钟就会显示数据提取完成。
然后我们把Trick字段删除掉。提取筛选器也就自动失效了。再把这个数据源发布到Tableau Online上。发布会很快,因为没有数据么。发布成功后在Tableau Online上再刷新这个数据源,发布的数据源里已经没有Trick计算字段了,所以数据就是正常刷新了,刷新的工作就交给Tableau Online的服务器做了。
这样做的好处就是,节省了至少2倍的时间(提取到本地,本地发布到Online),而且利用了Tableau Online的服务器去做提取,提取后的数据源已经打包成hyper的形式,如果你想本地下载使用就直接用提取本地副本的形式下载到本地使用。
Tableau使用的是AWS,如果你的公司使用的也是AWS的服务,那么提取刷新的速度会很快。我测试的是北京提取美西AWS数据33分钟的,在Online上基本是450多秒,当然这个测试受服务器繁忙程度、数据表Join的复杂性、查询的优化程度、索引的使用和网络环境的影响非常大。但是至少从操作逻辑上减少了数据下载和上传的时间。
希望对大家的工作有帮助。谢谢。