Size: a a a

Django [ru] #STAY HOME

2020 March 23

МР

Михаил Романов in Django [ru] #STAY HOME
KeepСalm
прописал где находится проект
гуникорн запускаешь который в virtual env?
источник

K

KeepСalm in Django [ru] #STAY HOME
я могу проще скинуть в личку конфиги,чтобы наглядно было
источник

K

KeepСalm in Django [ru] #STAY HOME
подключаю
источник

МР

Михаил Романов in Django [ru] #STAY HOME
KeepСalm
я могу проще скинуть в личку конфиги,чтобы наглядно было
присылай
источник

FI

Fedor Ivanov in Django [ru] #STAY HOME
Добрый день! В БД есть модели диалогов и сообщений,  каждое сообщение привязано к конкретному диалогу.
Хочу сделать такой урл:
api/dialogs/{id}/messages/{id}.


Нужно каким-то образом обозначить queryset (чтобы отдавались сообщения только указанного диалога).
Как в rest framework сделать подобную вещь наиболее правильно?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Fedor Ivanov
Добрый день! В БД есть модели диалогов и сообщений,  каждое сообщение привязано к конкретному диалогу.
Хочу сделать такой урл:
api/dialogs/{id}/messages/{id}.


Нужно каким-то образом обозначить queryset (чтобы отдавались сообщения только указанного диалога).
Как в rest framework сделать подобную вещь наиболее правильно?
во первых
api/dialogs/{id}/messages/{id}

так не получится указать по крайней мере именоваными аргументами
во вторых судя по урлу у тебя получение одного сообщения
источник

FI

Fedor Ivanov in Django [ru] #STAY HOME
Dan Tyan
во первых
api/dialogs/{id}/messages/{id}

так не получится указать по крайней мере именоваными аргументами
во вторых судя по урлу у тебя получение одного сообщения
получение одного сообщения, например, чтобы редактировать его

Может я вообще не тот подход выбираю?()
источник

S

Serj in Django [ru] #STAY HOME
Добрый день, подскажите пожалуйста каким образом делают аналитику когда счет количества данных в БД идет уже на миллионы?

Есть приложение, которое, можно сказать, считает клики - в день этих кликов может быть до миллиона. Технически клик в БД имеет много различных колонок с данными.
По всем этим данным нужно делать аггрегации, фильтрации, считать количество кликов, количество уникальных кликов и еще с десяток всяких значений по формулам по запросу пользователя.
Если пользователь хочет посмотреть данные сразу за месяц или несколько, то записей по идее может быть пару десятков миллионов.
Как при этих условиях делать real-time аналитику? Если тупо считать в postgres со всеми возможными индексами и тд, то получается довольно медленно, потому что если, например, юзер выбирает сортировку по како-нибудь агрегированному параметру, то базе нужно будет сагрегировать тупо все записи и отсортировать их, пагинация тут не поможет. Materialized view как тут применить я тоже не могу прикинуть, потому что всяких агрегаций и фильтраций слишком много, под каждую отдельно materialized view не сделаешь.

Подскажите советом, как в таких случаях обычно делают? Может я упускаю какую-нибудь крутую возможность psql или что-то еще?
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
Serj
Добрый день, подскажите пожалуйста каким образом делают аналитику когда счет количества данных в БД идет уже на миллионы?

Есть приложение, которое, можно сказать, считает клики - в день этих кликов может быть до миллиона. Технически клик в БД имеет много различных колонок с данными.
По всем этим данным нужно делать аггрегации, фильтрации, считать количество кликов, количество уникальных кликов и еще с десяток всяких значений по формулам по запросу пользователя.
Если пользователь хочет посмотреть данные сразу за месяц или несколько, то записей по идее может быть пару десятков миллионов.
Как при этих условиях делать real-time аналитику? Если тупо считать в postgres со всеми возможными индексами и тд, то получается довольно медленно, потому что если, например, юзер выбирает сортировку по како-нибудь агрегированному параметру, то базе нужно будет сагрегировать тупо все записи и отсортировать их, пагинация тут не поможет. Materialized view как тут применить я тоже не могу прикинуть, потому что всяких агрегаций и фильтраций слишком много, под каждую отдельно materialized view не сделаешь.

Подскажите советом, как в таких случаях обычно делают? Может я упускаю какую-нибудь крутую возможность psql или что-то еще?
clickhouse - почитай, посмотри
источник

S

Serj in Django [ru] #STAY HOME
Alexander Shavelev
clickhouse - почитай, посмотри
Держать в джанге две БД, одну чисто для аналитики?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Fedor Ivanov
получение одного сообщения, например, чтобы редактировать его

Может я вообще не тот подход выбираю?()
есть два варианта

более ортодоксальный (на мой взгляд)

у тебя должен быть viewset для message и фильтрация по диалогу

те урл будет api/messages/?dialog={dialog_id}


второй вариант


урл - api/dialogs/{id}/messages/
в viewset диалога action метод
в котором будет фильтрация сообщений по текущему отбъекту
источник

S

Serj in Django [ru] #STAY HOME
Serj
Держать в джанге две БД, одну чисто для аналитики?
в основном приложении просто данные по этим кликам тоже нужны.
Или типа всю агрегацию для аналитики делать в кликхаус, а тупо список кликов тащить из постргеса?
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
Serj
Держать в джанге две БД, одну чисто для аналитики?
я тебе точно не скажу, ибо хз твои цели и requirements

но для аналиитики на больших данных - многим нравится кликхаус

есть, вроде, и для пг какое-то расширение что превращает его частично в olap бд. больш ничего не знаю про него
источник

S

Serj in Django [ru] #STAY HOME
спасибо, пойду за подробностями в гугл
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
Serj
в основном приложении просто данные по этим кликам тоже нужны.
Или типа всю агрегацию для аналитики делать в кликхаус, а тупо список кликов тащить из постргеса?
можно клики так же из кликхауса тащить

а пг использовать для юзеров, товаров и тд

пс сам кликхаус появился считай шо из-за кликов, его делали для яндекс метрики
источник

S

Serj in Django [ru] #STAY HOME
понял, надеюсь оно к джанге нормально цепляется
источник

S

Serj in Django [ru] #STAY HOME
а монгу чисто теоретически для этих целей можно использовать?
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
Serj
понял, надеюсь оно к джанге нормально цепляется
хз, из совета по кликхаусу, он не любит одиночные инсерты, лучше пачками
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
Serj
а монгу чисто теоретически для этих целей можно использовать?
теоретически - можно шо угодно использовать)
но с монгой это будет криво, имхо
источник

S

Serj in Django [ru] #STAY HOME
Alexander Shavelev
теоретически - можно шо угодно использовать)
но с монгой это будет криво, имхо
а почему?
источник