我在Firebase数据库表中有events
,其中每个事件都有某些字段。字段之一是event_type
。我想要实现的是能够以图形化形式可视化,每种类型的事件每天发生多少次?
如何在Firebase数据库中执行类似的操作?
Q1。可以在firebase中直接执行此操作吗?
Q2。我是否需要将数据移动到其他数据源(例如Big查询)并在那里设置仪表板?
答案 0 :(得分:1)
绝对有可能直接在Firebase实时数据库上创建具有汇总数据的仪表板。但是您必须采用与例如BigQuery。
对于关系数据库,您将通过运行聚合查询来创建仪表板。例如,要显示每种类型的事件数,您将运行类似y = np.array(df['Class'].tolist())
的内容。
Firebase实时数据库(和大多数NoSQL数据库)没有这样的SELECT type, COUNT(*) FROM events GROUP BY type
操作,而不是GROUP BY
方法。因此,这意味着您必须将所有数据加载到仪表板中,并在那里进行分组/计数,这非常昂贵。因此,在NoSQL数据库上,您通常会为数据库中的每种类型保留运行计数,并在每次写入操作时对其进行更新。尽管这给每个写入操作带来了开销,但执行此操作时,仪表板本身突然变得非常简单。有关简单计数器的示例,请参见function-samples repo。
仅当您预先知道要在仪表板上显示哪些计数器(和其他汇总)时,此方法才有效。如果不是这种情况,许多开发人员会使用实时数据库的每晚备份将数据吸收到另一个系统中,该系统更适合探索性查询,例如BigQuery。
这两种方法都可以正常工作。正确的方法取决于您的确切用例(例如,您是否知道仪表板中需要的确切数据,还是仍在找出答案?)以及您最满意的情况。