node.js - 我应该如何攻击 JavaScript 重堆栈中的大型 GroupBy 记录集?

标签 node.js group-by firebase keen-io

我目前在一个项目中使用 Node.js 和 Firebase,我都喜欢。我的挑战是我需要存储数百万个销售订单行,这些行看起来像这样:

{ companyKey: 'xxx', orderKey : 'xxx', 行键:'xxx', itemKey : 'xxx', orderQty: '5', 订单日期:'12/02/2015' }

我想像下面的伪代码一样查询这些记录:

从 mydb 中选择 sum(orderQty) where companyKey = 'xxx' and itemKey = 'xxx' groupby orderDate

根据Firebase count group by等各种原因, groupby 通常是一个棘手的问题。我在使用 Oracle 实体化 View 之前已经完成了它,但我想使用某种服务来为我完成所有这些后端工作,这样我就可以 CRUD 那些销售订单,而不必担心聚合维护。我在另一篇 stackoverflow 帖子中读到,Keen.io 可能是解决这个问题的好方法。

如果互联网专家使用 JavaScript 繁重的堆栈,并且他们希望外部服务每天为他们进行聚合,他们将如何解决这个问题?

我正在考虑的几点。我会在他们出现时更新:

1) 看来我可能不得不将 Keen.io 从列表中删除。 100 万行的价格为 125 美元。我不需要 Keen.io 提供的所有功能,只需要按天聚合。

2) 使用 Sequelize + PostGreSQL 似乎是一个不错的妥协。我仍然可以使用 JavaScript,一种 ORM 来减轻痛苦,而且 PostGreSQL 托管通常很便宜。

最佳答案

听起来您想要显示某项商品随时间的销售趋势。这非常适合事件数据平台,因为显示随时间变化的趋势对于查询语言来说确实是原生的。在 Keen IO 中,“按时间分组”的想法被表达为“时间范围”(例如 previous_7_days)和“间隔”(例如每天)的概念。

这是使用简单的 sum 运行它的方法在 Keen 中查询:

var sum = new Keen.Query("sum", {
  event_collection: "sales",
  target_property: "orderQty",
  timeframe: "previous_12_weeks",
  interval: "weekly",
  filters: [
    {
      property_name: "companyKey",
      operator: "eq",
      property_value: "xxx"
    },
    {
      property_name: "itemKey",
      operator: "eq",
      property_value: "yyy"
    }
  ]
});

事实上,您可以使用 group_by 在单个查询中计算所有公司和产品的总和。

var sum = new Keen.Query("sum", {
  event_collection: "sales",
  target_property: "orderQty",
  timeframe: "previous_12_weeks",
  interval: "weekly",
  group_by: ["companyKey", "itemKey"]
});

Keen 最近更新了他们的定价。根据查询的频率,如果您每月有数百万笔新交易,这样的事情会很轻松,每月只需 10 美元。

关于node.js - 我应该如何攻击 JavaScript 重堆栈中的大型 GroupBy 记录集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35664322/

相关文章:

javascript - 在 while 循环中使用 wait 是一个坏习惯吗

node.js - 为同一路线 sails 多个处理程序

linq-to-sql - Linq to SQL-按订购的总数量分组产品

python - 将按结果分组保存到单独的 CSV 文件中

reactjs - React + Firebase 托管

node.js - 如何在 nodejs 中为发现的微服务做客户端负载平衡

node.js - 使用 express.js 动态加载路由

mysql查询优化where与inner join

firebase - 在 firestore 规则中限制子集合中的文档数量

ios - 无法加载网页,错误为 : The operation couldn’t be completed. NSURLErrorDomain 错误 -999 将 Ionic 应用程序部署到 iOS 设备