Каков наилучший способ отслеживать таблицы или некоторые данные для аналитики? - PullRequest
0 голосов
/ 22 февраля 2019

Например, возьмите 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 голосов
/ 27 февраля 2019

Создайте модель SalesStatistics, в которой будет храниться количество продаж через каждый заранее заданный интервал.Если требуется ежечасная, дневная и месячная статистика, достаточно хранить почасовую статистику.

Существует два простых способа достичь этого -

  1. Написать задание cron, которое выполняется каждый час, вычислитьколичество продаж в час.
id,   sales_count, timestamp
__________________________________
1231  304          "2 pm, 21st April 2019"
1232  443          "3 pm, 21st April 2019"

Вы можете легко получать почасовые, ежедневные или ежемесячные данные, используя любую СУБД

MYSQL предлагает огромное количество датфункция времени для упрощения запроса данных временного ряда.https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

Использовать встроенный event schedulers в базах данных.В базах данных вы можете запланировать выполнение запроса через определенные промежутки времени и сохранить результат в таблице.[MySQL Event Scheduler][1]
0 голосов
/ 25 февраля 2019

обычно это делается сервисом, таким как Google Analytics.

Документ можно найти здесь: https://support.google.com/analytics/answer/1009612

...