我已经将Firebase项目与Big查询集成在一起,以存储Firebase分析事件。我正在使用Data Studio可视化数据。我正在尝试根据用户属性过滤事件。我有3个用户属性,例如部门,用户名和app_version。我可以使用任何一个用户属性名称来过滤事件,但不能使用2个或全部三个用户属性来过滤事件。 例如,我正在尝试从正在使用v1.8(app_version)并属于factory(department)的John Cena(用户名)获取事件。但是没有成功,一旦我在过滤器中选择任何一个用户属性,这些用户属性就会在其他过滤器中消失。 有什么建议吗?
答案 0 :(得分:1)
如果需要使用WHERE
子句中的用户属性值,则可以执行以下操作:
SELECT *
FROM (
SELECT *,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key = 'app_version').string_value AS appVersion,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='userName').string_value as userName,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='department').string_value as department,
FROM `xxxxxxxxxxx.analytics_yyyyyyyyy.events_*`
WHERE _TABLE_SUFFIX between '20180521' AND '20240131'
) AS TOT
AND TOT.appVersion = '2.3.0'
AND TOT.userName = 'Example'
AND TOT.department = 'DepA'
答案 1 :(得分:0)
好的,所以我找到了解决方案。我需要将用户属性放到单独的列中。 我使用自定义查询创建了一个新的数据源,如下所示:
SELECT *,(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='app_version').string_value AS app_version,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='userName').string_value as userName,
(SELECT x.value FROM UNNEST(user_properties) x WHERE x.key='department').string_value as department
FROM `xxxxxxxxxxx.analytics_yyyyyyyyy.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20180521' AND '20240131';