gpt4 book ai didi

google-bigquery - 如何使用 DataStudio 过滤 BigQuery 数组

转载 作者:行者123 更新时间:2023-12-03 20:27:43 25 4
gpt4 key购买 nike

我在 BigQuery 中有一个包含两列的数据集:
1.网址
2. 标签

URL 是单个值,TAGS 是一个数组(示例如下):

行 |网址 |标签
1 | x.com |驴
|孔
|生活
|这里

DataStudio 中的过滤器可以用于 BigQuery 数组,即标签列吗?

我想单击 DataStudio 中的过滤器下拉列表并查看列表:
1.驴
2. 孔
3. 生活
4.这里

下面是查询 BigQuery 数组的代码,我必须使用 where exists 和 unnest 从标签列中获取结果

select * FROM `any_table`
where exists(select * from unnest(tags) as tags where tags = 'donkey')

https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays#scanning-for-specific-values

最佳答案

在 Data Studio 中使用数组很容易,因为它们是 native 支持的。只需为 TAGS 设置过滤器字段,它会像所有单独的字段一样工作。语义是,如果数组中至少有一项与过滤器匹配,则被过滤的图表或表格将仅包含顶级行。

不过有一些注意事项。

您的表格模型几乎就是这样,所以如果您要在 Data Studio 中为 Count 制作记分卡的 URL ,你会得到 1。如果你做同样的事情 CountTAGS ,你会得到 4。通过这种方式,我认为 be 行为是大多数人期望的理想选择——你可以访问所有原始数据,就像你在 BigQuery 结果网格中看到的一样。

如果您使用的是 BI Engine然而,为了加速您的仪表板,我注意到行为有时会有所不同。 . .即看起来更像是数据得到 CROSS JOIN 'd,复制非数组值以匹配数组的行。所以没有计数示例,一个表同时包含 COUNT(URL)COUNT(TAGS)将显示两者的值是 4 .这可能会弄乱一些计数/求和,因此在处理此问题时请注意并小心。仅当您在同一个 chart/table 中同时选择数组字段和非数组字段时才会发生这种情况。 . .否则行为就是你所期望的。这对于 BI 引擎无法加速的某些比较尤其令人困惑,因为这会改变语义,可能会破坏您的报告。如果您只使用 COUNT_DISTINCT 之类的东西对于那些顶级字段,无论哪种方式都可以正常工作。否则,您可能需要重构数据以确保安全。

如果您有一个 vert 大数据集并且担心读取的数据超出需要,您还可以使用 Data Source Parameters作为将过滤器值发送到查询的一种方式,然后只返回已在 BigQuery 端过滤的结果 - 尽管大多数人更喜欢直接在 Data Studio 中执行此操作的灵活性。

关于google-bigquery - 如何使用 DataStudio 过滤 BigQuery 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57278463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com