BigQuery 和 Firebase - 如何确定每周增长

Posted

技术标签:

【中文标题】BigQuery 和 Firebase - 如何确定每周增长【英文标题】:BigQuery & Firebase - how to determine weekly growth 【发布时间】:2017-01-18 11:59:26 【问题描述】:

我正在尝试构建一个仪表板来跟踪我的 android 应用程序的关键指标。为此,我使用了由 BigQuery 支持的 Firebase 分析。

我正在努力使first_open 事件countratio 的每周增长

当前周 前一周 有史以来最好的一周

我能够在 BigQuery 中将当前周和前一周 first_open 事件计数作为单独的查询(例如以下作为前一周查询的示例):

SELECT
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) + 6 DAY)) AS previousMonday,
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) DAY)) AS previousSunday,
  COUNT(*) as counter,
  h.name as event
FROM `com_package_app_ANDROID.app_events_*`, UNNEST(event_dim) as h
WHERE _TABLE_SUFFIX
BETWEEN
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) + 6 DAY)) 
AND 
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) DAY))
AND 
 h.name='first_open'
GROUP BY event
ORDER BY counter DESC

但我无法通过组合 2 个查询(当前周与前一周)获得比率,而且我无法获得有史以来最好的一周 first_open 计数。

【问题讨论】:

【参考方案1】:

要获得“有史以来最好的一周”,您可以按周对事件进行分组并按次数排序。像这样的...

SELECT 
    DATE_TRUNC(event_date, WEEK) AS week,
    COUNT(*) AS count
FROM BQ_TABLE
WHERE BQ_TABLE.name = 'first_open'
GROUP BY week
ORDER BY count DESC

要获取当前/上一周,您可以将上述查询转换为子查询并按您的目标周过滤。

请注意,“有史以来最好的一周”查询将始终是全表扫描,并且可能会根据事件数量和执行查询的频率而变得昂贵。

【讨论】:

我不确定你能不能这样查询(至少我不能让它工作)。事实上,BQ 中的表格在每日表格中被拆分。另外,event_date 是什么?谢谢 event_date 是您在events 表中使用的任何日期字段。因此,您使用的是每日表而不是每天对一张表进行分区? (可能与firebase与BQ的集成方式有关,我不太熟悉)

以上是关于BigQuery 和 Firebase - 如何确定每周增长的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BigQuery 中合并 Google Ads 和 Firebase 数据 [关闭]

如何计算 Firebase 中的 MAU?我需要 BigQuery 吗?

如何将所有事件数据从 Firebase 导出到 BigQuery?

如何简化和扩展 Firebase 数据库上的 BigQuery 子过滤 event_params

Bigquery & Firebase Analytics - 如何根据不同的参数选择一个事件

如何从 firebase 云功能访问 bigquery 数据?