0

我有一个简单的 Web 应用程序 UI(它存储了某些数据集参数(为简单起见,假设它们都是单个 Redshift 数据库中的所有数据表,但架构/表名称可能会有所不同,并且 Redshift 在 AWS 中)。Tableau 安装在同一 AWS 账户中的 EC2 实例。

我正在尝试确定一种将“参数”作为数据源(即在 EC2/AWS 上的 Tableau 内的连接字符串中)传递的自动方式,而不是手动创建数据源连接并输入各种客户请求。

用户的流程是说 50 个用户在 UI 上选择各种参数(为简单起见,假设参数在 AWS 中存储为 JSON 文件)-> 参数被发送到 Tableau 并创建数据源 -> 在 Tableau 内建立连接,无需客户在后端“看到”任何东西 -> 客户能够使用 Tableau 中的数据并相应地创建表格和图表。

我如何至少通过批处理作业或云形成设置来做到这一点?“hacky”解决方案很好。

奖励:如果以上内容可以在多个用户之间实时实现,那就太棒了。

** 我愿意使用其他解决此问题的仪表板 UI 工具,例如 QuickSight **

在 EC2 上安装 Tableau 后,我在查找有关如何将参数传递到连接字符串本身和/或什至手动参数化的文章/文档时遇到问题。

例如,customer1 选择“public_schema.dataset_currentdata”和“public_scema.dataset_yesterday”,一个客户选择“other_schema.dataser_currentdata”,所有这些都存在于单个数据库中。

应该生成 3 个数据源(以上各一个),但只有选择的数据源应该对选择它的客户开放,即 customer2 应该只看到 other_schema.dataset_currentdata 的连接。

我在想的一个技巧是在客户提出请求时启动一个安装了 Tableau 的云形成模板,相应地创建连接,完成后只需删除云形成模板。我主要不确定如何建立连接,即传入参数。我不确定旋转 50 个 EC2 是否明智。:D

到目前为止,我看到的一个问题是创建手动提取会限制行数。因此,我认为我需要根据客户请求进行实时连接。因此,我试图解决这个问题。

4

1 回答 1

0

您可以结合使用基本嵌入和应用过滤器来做到这一点。这将加载 Tableau 工作簿。然后,您将根据用户从 JSON 中选择的任何值应用过滤器。

最后缺少的部分是您将使用参数而不是过滤器,并通过初始 sql将这些值传递给数据库。

于 2019-09-04T19:08:12.583 回答