将BigQuery中的许多Firebase数据集聚合到单个数据集

时间:2018-04-03 23:19:37

标签: firebase google-bigquery google-data-studio

首先,我对Firebase和BigQuery相对较新......所以有点天真...

背景

我正在开发一个项目,我们有许多不同的移动应用程序 - 每个国家/地区一个,每个操作系统(iOS,Android) - 所有原始事件数据都被推送到同一个项目中的BigQuery数据集中。按国家/地区分别开发应用程序的理由与监管要求有关。

对于仪表板的目的,我原本希望能够将所有数据集合并到一个聚合数据集(每年有表格),按日期通过" partition_date"我添加的专栏。我的目标是利用BigQuery嵌套结构的功能,并维护原始Firebase表中的原始嵌套字段。

我在过去一个月左右的时间里一直在搜索,但我还没有遇到任何其他用户正在处理许多数据集的用例。

问题

  • 采用这种方法是否有意义(将所有数据集聚合到按日期划分的表中,以及基于应用名称的嵌套字段)?
  • 作为替代方案 - 我尝试对表格进行非规范化处理,并按日期对表格进行分片...尽管由于扁平化嵌套结构,得到的表格(不出意外)要大得多,这让我觉得这种方法不太理想。我真的应该考虑这种方法吗?
  • 我应该考虑制作一个相对简单的KPI汇总表吗?我已经避免使用这种方法,因为它限制了我使用日期范围过滤器的能力,这些过滤器动态地动态计算唯一身份用户(在Data Studio中使用COUNT_DISTINCT(user_dim.app_info.app_instance_id)

最终目标是授权任何用户(例如,不了解SQL的人)能够回答所有应用程序中的简单问题(例如,昨天有多少用户打开了应用程序),并让我们结束用户在仪表板界面中使用日期范围过滤器。

我已经能够通过查询所有数据集来编写即席查询以获得答案,但我找不到一个好的解决方案,这将使仪表板内的非技术用户更容易。

此外,这是我的第一个Stack Overflow问题...如果我太模糊,包括太多问题或者滥用平台,请告诉我。

提前感谢任何想法。

1 个答案:

答案 0 :(得分:1)

如果您的最终目标是让用户能够回答简单的问题,那么汇总KPI数据对我来说是有意义的。我可能会通过设置一个计划的每日作业来选择所有数据集中的相关数据并将其加载到新数据集中,然后可以在Data Studio中使用。新数据集可以具有默认的Firebase日期表后缀,以支持日期范围过滤器。

我对BigQuery和Firebase也比较陌生,所以也许有更好的方法。

您可以在此处找到有关在BigQuery中进行日程安排的更多信息:Schedule query in BigQuery