firebase-realtime-database - 如何有效地从 Firebase 实时数据库中获取 7 天、30 天的摘要?
问题描述
在 firebase 数据库中,我创建了一个名为“orders”的数据库。要存储的数据具有以下格式:
{
cost: orderCost,
createdAt: createdAt,
}
在 firebase 中,树如下所示:
我想要实现的是根据createAt
时间戳快速获取最近 7 天或 30 天的成本总和。
我想到的是创建索引createdAt
,并基于它运行查询。
但是如果数据集很大,比如几百万个条目,运行上述查询是否仍然有效?
请提供您的建议。谢谢!
解决方案
基本上你想要的是一个计数器/聚合。根据您需要摘要的粒度以及数据摄取/文档写入的速率,您将:
- 使用Cloud Function 触发器对成本总和进行每日聚合
- 如果数据量很大,请使用分布式计数器更新总和。
有了可用的每日汇总统计信息,您可以通过仅查询N个文档来进行任何临时的N天摘要。
如果您热衷于探索其他选项,还可以将 Firebase 中的数据推送到 BigQuery 等分析工具。
推荐阅读
- ruby-on-rails-5 - Rubocop 自动更正将参数更改为 %i[ 在 rails 5.2
- amazon-web-services - 如何将根域指向提供 S3 静态站点的 CloudFront 分配?我在 Google Domains 上
- python-3.x - cv2.KalmanFilter.predict 中的错误
- dll - Metasploit 错误“过程入口点 _gmtime64_s 无法位于动态链接库 msvcrt.dll 中”
- javascript - 如何制作曲线链接并同时在链接上添加工具提示?
- node.js - 使用节点 ES 模块功能(.mjs)时如何从根目录导入节点模块?
- php - max+1 无干扰
- javascript - 将变量的总和添加到自身
- php - PHP - 将 JSON 附加到新类别中的现有文件
- node.js - 如何将 Opus 流从 Discord 流式传输到 RTP