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

时间:2019-02-22 04:07:54

标签: python django django-models django-queryset analytics

对于一个实例,采用如下的django模型类。

因此,现在的问题是,如何有效地执行分析以生成每天的产品销售数量,每月的销售数量,每天的利润数量等等

一个可能的解决方案是在特定日期的每个销售更新计数上。但是如果我有很大的客户群(即1百万客户和每小时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()
    ...
    ...

2 个答案:

答案 0 :(得分:1)

这通常是通过Google Analytics(分析)之类的服务来完成的。

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

答案 1 :(得分:1)

创建一个模型SalesStatistics,该模型存储每个预定义间隔的销售数量。如果需要每小时,每天和每月的统计信息,则存储小时统计信息就足够了。

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

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

您可以使用任何RDBMS轻松地每小时,每天或每月撤退

  

MYSQL提供了大量的日期时间功能,使查询时间序列数据变得容易。 https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

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