【问题标题】:Export data from Python to Tableau directly将数据从 Python 直接导出到 Tableau
【发布时间】:2019-02-26 14:26:51
【问题描述】:

我有一个将数据导出到 csv 的 python 代码,然后我将该 csv 加载到 Tableau 中。我不想将 csv 加载到画面中。

有没有一种方法可以让我的 python 脚本的 return 值直接放入画面中?

问题类似于Export data from Python into Tableau using JSON?,但他们询问Json格式,答案是使用csv。如果可能,我想跳过 csv 步骤。我返回的数据将采用表格格式。

【问题讨论】:

  • 你为什么要那个? CSV 是用于表格数据交换的 格式,简单、紧凑、只有文本,几乎可以从任何语言或软件访问。您还想使用什么其他格式?
  • 我想跳过写入 csv 的中间步骤,然后让画面加载它。我不想要其他格式,抱歉不清楚。我只想将 python 直接连接到 tableau。

标签: python tableau-api


【解决方案1】:

考虑使用TabPy。它将脚本创建的值作为工作簿中的计算字段返回。

否则,Tableau 纯粹作为数据源之上的一个层运行。不幸的是,没有直接将数据加载到其中的事情。

我通常处理此类作业的方式是让 Python 将数据直接加载到某种数据存储中。然后,所有新信息(或被覆盖的信息)都可以通过 Tableau 工作簿的现有数据连接进行查看。

无需使用正式数据库的简单方法是始终将 CSV 加载到具有相同名称的相同位置。然后,使用预先存在的连接打开 Tableau 后,只需单击“刷新”即可。

我了解您的目标是让 Tableau 直接从 Python 填充您的数据,很抱歉这可能不是您想要的答案,但需要完成一些后端工作。但是,如果处理得当,任何用户的最终效果都可能直接从 Python 呈现。

【讨论】:

  • 谢谢 Daniel,所以 TabPy 允许我将脚本创建为计算字段,但我还必须使用数据存储吗?我将不得不阅读有关 TabPy 的更多信息。我正在考虑只做 csv 的事情,我真的很想跳过那个中间步骤,但如果它最简单,也许是最好的。
  • 我没有尝试在 Tableau 工作簿中没有预先存在的数据的情况下使用 TabPy。通常,它的使用方式是使用 Tableau 中的字段调用脚本 - 当用户想要做 Tableau 本身无法做的事情时。 (认为​​ K 表示聚类或相关性。)理论上它可以在没有预先存在的数据的情况下将数据返回到 Tableau,但是是的,非常值得研究。 (例如,我的 Python 脚本直接输出到 AWS S3 中的 CSV,然后由 AWS Athena 通过 Tableau 读取。它非常高效,但如果您只是想快速寻找一些东西,那就有点麻烦了。)
【解决方案2】:

确保您当前的 Tableau 数据提取是“Tableau 数据源”,然后使用“Tableau 数据提取命令行实用程序”将数据推送到 Tableau。您使用 os.system 或 subprocess 来调用 tableau 可执行文件。一个警告是这个东西只能在 Windows 上运行。

https://onlinehelp.tableau.com/current/pro/desktop/en-us/extracting_TDE.htm

从 Tableau 站点加载 csv 文件示例:

C:\Program Files\Tableau\Tableau 2019.1\bin>tableau addfiletoextract --server https://our_server_name --username OurServerSignIn --password "OurServerPwd" --project "New Animations" --datasource "CurrentYrOverYrStats" --file "C:\Users\user1\Documents\DataUploadFiles\AprMay.csv"

【讨论】:

  • 嗨,我不想加载csv,我想直接加载python数据。
  • 如果您使用 Tableau Server,最好使用 Python 和 Sheets API 将数据推送到 Google 表格,然后使用 Tableau 将该表格作为数据源引用。
  • 啊,我正在使用画面工作簿。没有办法将python的输入文件带入tableau?
【解决方案3】:

Tableau Desktop“连接”屏幕中的现有选项之一是“Web 数据连接器”,它可以连接到任何类型的 Web 服务器并通过 a well-documented protocol 获取数据。我怀疑这将包括a web server running on localhost written in Python

如果您想走这条路,则需要更改您现有的 Python 脚本以将其转换为通过网络数据连接传输脚本输出的网络服务器,或者(最好)制作一些非常通用的 Python 代码,可以以这种方式包装任意类型的任意脚本,将其输出公开为网络数据连接。

当然,您必须让 Python 脚本继续运行,监听来自 Tableau 的连接。

【讨论】:

  • 我认为这超出了我的技术知识!不过谢谢!
猜你喜欢
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多