我正在使用 Google Data Studio 来可视化各种查询的结果(来自同一 BigQuery 数据库中的不同表)。
出于这个原因,我创建并使用了多个数据源连接器。它们中的每一个都包含一个 SQL 查询,并使用定义的输入参数(可以由报告编辑器更改) - 称为“userid”。所有查询和结果图表的 ID 都是相同的。
但是,当我单击“管理 URL 参数”时,我不允许对多个数据源使用相同的 URL 参数(相反,它们被称为 ds0、ds1、ds2 等 - 尽管它们最终都被用作“用户 ID”)。
如果我在“文件 - 报告设置”下添加数据源,则会出现一个新字段“用户 ID”,我可以更改该字段 - 这将使用相同的用户 ID 更新报告中的所有图表(如预期)。这是可行的,但我确实想利用一个 url,它可以根据一个用户 ID 提供包含所有更新查询的报告。
因此,我想我正在监督一些事情 - 应该可以只使用一个查询参数来为所有数据连接器中的所有查询更新相同的“userid”?或者我是否忽略了在一个数据源连接器中触发多个查询的可能性?或者在这种情况下会创建一个充满冗余查询参数的 looong url 吗?
我很好奇你的意见!
致以诚挚的问候:)
这个问题似乎没有什么好的解决办法。
最简单的方法是多次重复该参数——虽然很难看,但很有效。例如,使用URL参数映射屏幕调用参数
u1
、u2
等,然后将它们全部传递即可:
?params={"u1":"foo","u2":"foo"}
(当然是 URL 编码)
这种丑陋主要针对我们开发人员:它违反了我们对 DRY 和干净代码的认识,并使 URL 比需要的长度长得多。然而,大多数人并不关心或了解 URL 参数,因此它与他们无关。
更大的缺点是,当 URL 分发到客户端(书签、移动应用程序)时,每次添加需要相同 URL 参数的新数据源时,都必须无缘无故地将新 URL 分发到客户端。解决此问题的方法是通过简单的重定向器功能动态构建 URL。这可以轻松地实现为一个简单的 Google Cloud Run Function,该函数获取参数并将其扩展为报告所需的多个参数,并通过重定向进行响应。
此问题 https://issuetracker.google.com/issues/180705297 是实现此功能的功能请求。
如果您使用相同的参数对要控制的元素进行分组(选择然后移动 G),那么它将为您提供选择数据源和要应用于该组的参数框的选项。