跟踪表格或某些数据以进行分析的最佳方法是什么?

What is the best way to keep track on tables or some data for analytics?

举个例子,django模型类如下。

所以,现在的问题是我如何有效地实施分析以生成每天的产品销售数量、每月的销售数量、每天的利润数量等等

一个可能的解决方案是针对特定日期的每个销售更新计数。但是如果我有非常大的客户群(即 100 万客户和每小时 500 笔销售额)。

那么有没有更好的方法来实现这个呢?

这些架构仅供参考

class Product(models.Model):
    name = models.CharField(max_length=20)
    category = models.ManyToManyField("Category", null=True)
    ...
    ...


class Sales(models.Model):
    product = models.ForeignKey("Product")
    price = models.DecimalField(max_digits=20)
    timestamp = models.DateTimeField()
    ...
    ...

这通常由 google 分析等服务完成。

您可以在此处找到文档:https://support.google.com/analytics/answer/1009612

创建一个模型 SalesStatistics,它存储每个预定义时间间隔的销售计数。如果需要按小时、按天、按月统计,存储按小时统计就可以了。

有两种简单的方法可以实现这一点 -

  1. 写一个每小时 运行s 的 cron 作业,计算一个小时内的销售量。
id,   sales_count, timestamp
__________________________________
1231  304          "2 pm, 21st April 2019"
1232  443          "3 pm, 21st April 2019"

您可以使用任何 RDBMS 轻松地从中检索每小时、每天或每月

MYSQL offers a vast number of date time function to making querying time series data easy. https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

  1. 在数据库中使用内置 event schedulers。在数据库中,您可以安排 运行 在某个时间间隔进行查询,并将结果存储在 table 中。 [MySQL Event Scheduler][1]