Tableau能否以编程方式返回非UI结果?

时间:2016-02-11 16:58:42

标签: tableau tableau-server

Tableau是一种用于可视化数据的出色工具。但是,它被设计为数据(ETL)管道中的最后一站。

我的Tableau工作簿使用一堆Table Calcs来生成"推荐订单列表"。我想要自动化并执行它们,而不是查看它们。这将使Tableau成为准ML过程的引擎。

换句话说,我想让Tableau成为我的ETL管道的一部分并将数据发送到另一层。如何编写执行Tableau工作簿并接收结果数据集的后端程序?

有关我要自动化的示例数据,请参阅本文末尾:   http://robm26.blogspot.com/2015/10/keep-your-factory-humming-with-tableau.html

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

上面的答案是正确的,tabcmd是把它拉出来的方法。我们在python中使用一个函数来生成tabcmd请求,以便可以对它们进行批处理。

import subprocess

def runTabCmd(cmd):
    # run tableau command and display the output
    print cmd

    if run_tabcmd == 'yes':
        p = subprocess.Popen(
            cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        for line in p.stdout.readlines():
            print line

你可能已经知道了,但是对于我们来说这是一种完全自动化拉动和加载到另一个python包中的方法,比如scikit-learn用于简化的ML解决方案

我编辑这个答案是为了同意拉塞尔的回答。 Tableau不是ETL工具,不应该这样使用。如果您绝对做某事,您可以使用我提供的内容。否则,最佳做法是使用专为此工作设计的工具。

答案 1 :(得分:2)

你不会不喜欢我要给你的答案 - “不要这样做”。

Tableau并不意味着是一个更大的ETL管道中的任务,并且您遇到问题的原因使其按照您想要的方式运行,这并不意味着要完成。

除了您已经想出如何在Tableau中获得所需的结果(“工作已完成”)之外,Tableau并未在您描述的场景中为您提供任何实际价值。使用专为此类工作而构建的工具(如Alteryx)。

答案 2 :(得分:1)

您可以轻松使用tabcmd以CSV格式获取视图的结果,以后可以在ETL过程中使用。如果需要自动化它,可以编写脚本并使用cron作业执行它。我本人有几个视图导出为CSV,稍后在我的ETL流中用于为我们的CRM提供信息。

请记住完全按照您希望导出为CSV的方式创建视图 - 通常包括字段的顺序。另一个提示是我不让它使用默认的“测量名称”和“测量值” - 以确保我的CSV上的所有内容都很好,我在行/列部分手动添加了字段。