参数
什么是参数?
参数 是一种特殊类型的变量,用于指定查询的输入。
设置参数允许最终用户输入一个值(如在仪表板或报告中),以更改查询返回的数据,通常通过 度量 或 维度 进行筛选。参数将此值传递给正在运行的查询,而该查询的结果将取决于该人输入的任何值。
参数与变量和参数的区别
您可能会看到“参数”与“变量”或“参数”可以互换使用,因此在此指出一些区别是值得的。参数是变量的一种类型;它只是将一些特定的输入值传递给正在运行的程序或查询。并非所有变量都是参数;您也可能有在您的程序或查询中设置的变量,并且不能由另一侧的任何人修改。
参数指的是在程序或查询运行时传递的值本身。例如,如果您将参数设置为{{productID}}
,并输入值34
,则您的参数是34。参数定义了将有一个输入值,但输入值本身是参数。
所以,从技术上讲,这些术语都是不同的,只要您通常是指一个用于传递值的位置或容器,以便您可以过滤结果,就可以互换使用这些术语。
Metabase中的参数
在Metabase中,您可以使用筛选小部件或通过URL设置参数。参数在Metabase中有几种不同的应用方式
SQL模板
通过在Metabase中的SQL查询中添加参数,您可以创建SQL模板,这些模板添加了筛选小部件,允许人们轻松更改查询运行时该参数的值。
如果我们想在查询中使用People
表来计算每个州有多少客户时创建SQL模板,我们会使用
SELECT count(*)
FROM people
WHERE state = {{State}}
通过将{{State}}
包裹在双大括号中,我们创建了一个参数,该参数为此问题添加了一个筛选小部件,让人们在输入他们想要的州时,无需更改查询本身的文本,如图1所示
仪表板筛选
仪表板筛选允许您设置应用于仪表板的参数。例如,您可以创建一个仪表板筛选,允许人们输入一个State
值,并将该筛选与仪表板上的问题或卡片中的State
列相关联。然后当人们输入他们想要的值(如图2所示的北卡罗来纳州)时,他们会相应地看到这些卡片的变化。
当您在仪表板筛选中输入值时,您会注意到URL会更改以包含该值。
自定义目的地
您还可以将参数插入URL以指定当人们在仪表板中点击图表时会发生什么。例如,您可以通过使用卡片结果中的值来构造一个URL,并将人们引导到具有该ID的其他仪表板或外部网站,从而设置一个自定义目的地。
也许您有一个包含跟踪您库存中不同产品销售情况的问题的仪表板,并有一个仪表板筛选,允许人们输入他们想要检查的产品。您可以通过将那个产品的ID传递到自定义目的地,并通过带有该ID值的参数化URL将人们发送到您网站上该产品的页面,来更进一步。当您访问该网站时,其URL可能看起来像这样
https://www.your-website.com/products/id?productID=34
在这种情况下,URL中的productID=34
就是您的参数。
嵌入
当在您的应用程序中嵌入Metabase问题和仪表板时,您可以设置参数以自定义不同用户在查看这些嵌入时看到的内容。