jak*_*kes 8 r tableau-api rserve
我有一堆R脚本可以读取各种来源的数据,执行所需的所有分析并进行一些可视化.现在,我需要将可视化部分传递给Tableau,并在后者中准备整个仪表板.
从我知道我可以全部保存data.frames到.Rdata文件,并在加载的Tableau他们,但似乎从长远来看,要cumbersone,而整个程序应尽可能自动化.
我要知道的第二个选项是读取Tableau中的数据,连接到R via Rserve并从中调用简单的R脚本Tableau.这是一个选择,但是:
所以我的问题是集成R和Tableau的最佳方法是什么,以便在我执行RI中的所有分析之后只能用几个图更新早期Tableau仪表板中的数据?
有两种主要方法可以将 Tableau 和 R 一起使用,以适应不同的用例。第一种方法是使用 R 上游来准备和分析数据,然后将这些数据提供给 Tableau 以用于生成和共享可视化。第二种方法是让 Tableau 通过 RServe 以交互方式连接到 R。在这种情况下,Tableau 使用 R 来有效地调用函数并返回值,然后 Tableau 可以将这些值合并到可视化中。一个很好的例子是让 Tableau 将数据值发送到 R,然后可以通过之前训练的分类器模型对其进行评分。R提供模型评估;Tableau 提供交互式可视化。
您的案例似乎属于第一类 - 使用 R 上游来生成输入到 Tableau 的数据。在这种情况下,您可以将数据保存为 Tableau 可以连接到的任何格式(表格)格式:csv、Rdata、数据库表、xlsx、shp。你的选择。
您还可以考虑将生成的数据转换为 Tableau 数据提取格式(以前为 .tde,现在为 .hyper),这将加快分析速度并简化数据发布。Tableau 具有允许 Python(以及 Java、C 等)生成数据提取的 API,并且还具有用于 Windows 生成数据提取的命令行实用程序。
如果您的目标是自动化 ETL 过程,您应该考虑使用 Tableau Prep 工具 - 它可以将您的 Rdata 文件转换为数据提取,而无需您编写脚本。要考虑的最后一个主题是让您的数据可供使用 Tableau Server 的人员和工作簿使用。当您准备好执行该步骤时,您可以通过多种方式选择如何在 Tableau Server 上发布和刷新数据。通过让服务器按计划启动刷新,或者在 R 脚本执行后启动刷新。还有另一个 API 在后一种情况下很有用,称为 Tableau REST API,并且 Tableau 还在 github 上发布了一个开源库,使得通过 Python 使用 REST API 变得容易。Tableau 已宣布计划让 Tableau Server 在 2019 年执行表准备流程。
RServe 的交互式用例在很多情况下都很棒,但似乎不是您想要的。需要注意的是:该功能是为交互式使用而设计的。如果您在 R 中进行长时间运行的计算,例如要训练复杂的 ML 模型,那么通常最好将其作为单独的步骤进行,并在想要构建和共享交互式可视化时将 Tableau 纳入其中。