gpt4 book ai didi

BigQuery 中的 Firebase 队列

转载 作者:行者123 更新时间:2023-12-02 02:57:06 27 4
gpt4 key购买 nike

我正在尝试使用 BigQuery 复制 Firebase 队列。我尝试了这篇文章中的查询:Firebase exported to BigQuery: retention cohorts query ,但我得到的结果没有多大意义。

我设法让 period_lag 0 的用户与我在 Firebase 中看到的类似,但是,其余数字看起来不正确:

结果: enter image description here

缺少一个 period_lag(只看到 0,1 和 3 -> 没有 2)并且每个滞后期的用户计数看起来也不正确!我希望看到类似的东西:

Firebase 群组: enter image description here

我很确定问题在于我如何将原始查询中的参数替换为来自 Firebase 的参数。以下是我在原始查询中更新的部分:

#standardSQL
WITH activities AS (
SELECT answers.user_dim.app_info.app_instance_id AS id,
FORMAT_DATE('%Y-%m', DATE(TIMESTAMP_MICROS(answers.user_dim.first_open_timestamp_micros))) AS period
FROM `dataset.app_events_*` AS answers
JOIN `dataset.app_events_*` AS questions
ON questions.user_dim.app_info.app_instance_id = answers.user_dim.app_info.app_instance_id
-- WHERE CONCAT('|', questions.tags, '|') LIKE '%|google-bigquery|%'

(...)

WHERE cohorts_size.cohort >= FORMAT_DATE('%Y-%m', DATE('2017-11-01'))
ORDER BY cohort, period_lag, period_label

所以我使用 user_dim.first_open_timestamp_micros 而不是 create_dateuser_dim.app_info.app_instance_id 而不是 idparent_id。知道我做错了什么吗?

最佳答案

我认为在如何以及将哪些数据检索到 activities 表中的概念存在误解。让我说明一下您链接的另一个 StackOverflow 问题中出现的案例与您尝试重现的案例之间的区别:

  • 在另一个问题中,answers.creation_date 指的是一个不固定的日期值,单个用户可以有不同的值。我的意思是,同一个用户可以在两个不同的日期发布两个不同的答案,这样,您最终会得到两个 activities 条目,例如:{[ID:user1, date:2018-01 ],[ID:user1, date:2018-02],[ID:user2, date:2018-01]}.
  • 在您的问题中,answers.user_dim.first_open_timestamp_micros 的使用指的是过去固定的日期值,因为如前所述 in the documentation ,该变量指的是用户首次打开应用的时间(以微秒为单位)。该值是唯一的,因此,对于每个用户,您将只有一个 activities 条目,例如:{[ID:user1, date:2018-01],[ID:user2, date :2018-02],[ID:user3, date:2018-01]}.

我认为这就是为什么您没有获得有关用户滞后保留的信息的原因,因为您没有记录用户每次访问应用程序时的情况,而只是他们第一次访问时的情况。

而不是使用 answers.user_dim.first_open_timestamp_micros,您应该从我之前分享的文档链接中的可用值中寻找另一个值,可能是 event_dim.dateevent_dim.timestamp_micros,尽管您必须考虑到这些字段指的是一个事件而不是一个用户,所以您应该做一些先预处理。出于测试目的,您可以使用一些 publicly available BigQuery exports for Firebase .


最后,作为旁注,JOIN 一个表本身是没有意义的,因此关于您编辑的标准 SQL 查询,最好是:

#standardSQL
WITH activities AS (
SELECT answers.user_dim.app_info.app_instance_id AS id,
FORMAT_DATE('%Y-%m', DATE(TIMESTAMP_MICROS(answers.user_dim.first_open_timestamp_micros))) AS period
FROM `dataset.app_events_*` AS answers
GROUP BY id, period

关于BigQuery 中的 Firebase 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48731113/

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