在Firebase数据库上为各种指标创建仪表板

在Firebase数据库上为各种指标创建仪表板,firebase,firebase-realtime-database,google-bigquery,Firebase,Firebase Realtime Database,Google Bigquery,我在firebase数据库表中有事件,其中每个事件都有特定字段。其中一个字段是事件类型。我想实现的是能够以图形形式可视化,每天有多少种类型的事件发生 如何在firebase数据库中执行类似操作 问题1。是否可以在firebase中直接执行此操作 问题2。我是否需要将数据移动到其他数据源(如大查询)并在那里设置仪表板?完全可以直接在Firebase实时数据库上创建包含聚合数据的仪表板。但是,您必须采取与BigQuery不同的方法 对于关系数据库,您将通过运行聚合查询来创建仪表板。例如,为了显示每种

我在firebase数据库表中有
事件
,其中每个事件都有特定字段。其中一个字段是
事件类型
。我想实现的是能够以图形形式可视化,每天有多少种类型的事件发生

如何在firebase数据库中执行类似操作

问题1。是否可以在firebase中直接执行此操作


问题2。我是否需要将数据移动到其他数据源(如大查询)并在那里设置仪表板?

完全可以直接在Firebase实时数据库上创建包含聚合数据的仪表板。但是,您必须采取与BigQuery不同的方法

对于关系数据库,您将通过运行聚合查询来创建仪表板。例如,为了显示每种类型的事件数量,您将运行类似于“按类型从事件组中选择类型,计数(*)”的操作

Firebase实时数据库(以及大多数NoSQL数据库)没有这样的
groupby
操作,没有
COUNT()
方法。这意味着您必须将所有数据加载到仪表板中,并在那里进行分组/计数,这相当昂贵。这就是为什么在NoSQL数据库中,您通常会为数据库中的每种类型保留一个运行计数,并在每次写入操作中更新该计数。虽然这会增加每次写入操作的开销,但执行此操作时,仪表板本身突然变得非常简单。有关简单计数器的示例,请参阅

这种方法只有在预先知道要在仪表板中显示哪些计数器(和其他聚合)时才有效。如果不是这样,许多开发人员使用实时数据库的夜间备份将数据接收到另一个系统中,该系统更适合于探索性查询,例如BigQuery


这两种方法都可以很好地工作。正确的方法取决于您的具体使用情况(例如,您是否知道仪表板中需要的确切数据,或者您是否仍在计算这些数据?)以及您最满意的方法。

谢谢Frank。我知道确切的数据。我启用了firebase数据库的备份(将数据移动到BigQuery)。它在google存储中创建了一个json.gz文件。是否可以使用这些夜间备份来创建仪表板(可能使用BigQuery?)是的,这是可能的。给它一个旋转,如果你被卡住了,贴一个问题,问你尝试了什么,出了什么问题。