【问题标题】:Tableau: How to automate publishing dashboard to Tableau serverTableau:如何自动将仪表板发布到 Tableau 服务器
【发布时间】:2017-06-04 22:06:55
【问题描述】:
我使用 python 脚本从 3 个不同的 RDS 执行一系列复杂查询,然后将数据导出到 CSV 文件中。我现在正在尝试找到一种方法,每周自动将使用此数据的仪表板发布到 Tableau 服务器中,这样当我运行我的 python 代码时,它将生成新数据,随后,Tableau 服务器上的仪表板将也更新了。
我已经尝试了几个选项,包括使用 csv 文件的完整 UNC 路径作为实时连接,但 Tableau Server 无法读取此路径。现在我正在考虑创建一个可以每周运行的 powershell 脚本,该脚本调用 python 脚本来创建数据集,然后刷新 tableau desktop,然后最终将仪表板重新发布/覆盖到 tableau 服务器。
关于如何进行此操作的任何想法?
【问题讨论】:
标签:
python
powershell
scripting
server
tableau-api
【解决方案1】:
将数据从 excel 获取到 Tableau Server:
设置 UNC 路径,使其可从您的服务器访问。如果执行此操作,则可以设置数据提取刷新,以所需频率读取 UNC 路径。
使用 Tableau SDK 创建数据提取。
使用 Tableau SDK 读取 CSV 文件并生成文件。
根据我们的经验,#2 并不是很快。 Tableau SDK 在生成数据提取时似乎很慢,然后必须将数据提取推送到服务器。我建议将文件传输到服务器可访问的位置。如果您在使用 UNC 路径时遇到问题,甚至可以使用每日文件复制到服务器上的共享驱动器。 (Tableau 确实支持 UNC 路径;您只需确保在设置中使用它们而不是映射驱动器。)
可以作为文件传输然后推送(可能是最快的),也可以远程推送。
就安排两个步骤(python 和数据提取刷新)而言,我自己使用了一个穷人的解决方案,我在其中一次更新了一个 csv 文件(任务调度程序或 cron 是一些可以使用的工具)和然后在稍晚的时间点设置提取计划。虽然它没有运行 python 脚本然后导致提取刷新的链接(肯定有一个 tabcmd 用于此),但对于我的目的来说它工作得很好,因为我的进程是可靠的,并且应用程序是不是关键任务。