Логическая путаница в поиске способа создания отчетов с помощью BigQuery - PullRequest
0 голосов
/ 17 октября 2019

Я вне логики для высокоприоритетной задачи. Задача состоит в том, чтобы найти способ сообщать о том, как активность клиентов меняется со временем в приложении для совместного использования транспортных средств. У нас есть мнение, написанное на BigQuery, в котором говорится, активно ли клиент пользуется услугой в течение 30, 90 дней и является ли он частым пользователем или нет. Клиент, пользующийся услугой больше определенного порогового значения в месяц, называется высокопользовательским, ультрапользовательским, соответственно, на основе пройденного порогаМы классифицировали пользователя как активного в течение 30/90 дней, неактивного пользователя, высокого / ультра пользователя. Но эта категория меняется со временем. Например: - активный пользователь за последние 30 дней может стать неактивным пользователем. - неактивный пользователь, который никогда не пользовался услугой, может внезапно стать высокопользовательским / ультра-пользователем в течение текущего месяца, а со следующего месяца может вообще не использовать услугу

У нас есть данные по всем услугам, используемымcustomer.

Действительно запутался и застрял в поиске наилучшей стратегии, чтобы определить, сколько ценности и объема генерируется типами клиентов. Что я хочу, так это сообщить об этом в историческом контексте.

Любая идеявысоко ценитсяЭто очень важно для меня сейчас, и я действительно застрял.

Это часть представления BigQuery, которое у меня есть прямо сейчас.

enter image description here

Это значения имен столбцов:

id: идентификатор клиента non_active_customer: клиент, который никогда не пользовался сервисом, но зарегистрировал приложение

non_active_customer_14: клиент не активен в течение последних 14 дней non_active_customer_30: клиент не активен в течение последних 30 дней

active_customer_90_int: 1, если клиент пользовался услугой в последние 90 дней 0 в противном случае

active_customer_30_int: 1 если клиент пользовался услугой в последние 30 дней 0 в противном случае

heavy_customer_int: 1 Если клиент использовал услугу более чемпорог за последние 90 дней 0 в противном случае

heavy_customer_30_int: 1 Если клиент использовал услугу более определенного порога за последние 30 дней 0 в противном случае

ultra_customer_int: 1 Если клиент использовал услугу более чем очень высокий порог0 в противном случае

ultra_customer_30_int: 1 Если клиент использовал услугу mчем очень высокий порог за 30 дней 0 в противном случае

Но каждый месяц результат этого представления меняется. Поэтому тип клиента также изменяется (я имею в виду, что значения в столбцах меняются). Требуется сообщить об этом в историческом контексте, чтобы мы знали, как клиент со временем меняется от одного типа к другому.

Я не уверен, что это хорошая идея - взять логику из представления и выполнить запросза каждый месяц и сохранить данные в хранилище с указанием даты? Я думаю, что таким образом я могу знать тип клиента для конкретного месяца и таким образом я могу отслеживать, как тип клиента изменяется.

Пожалуйста, помогите. Спасибо.

1 Ответ

2 голосов
/ 18 октября 2019

Если вы хотите сообщить о группе клиентов, как они были в определенный момент времени, то может быть полезно создать таблицы, в которых хранится эта информация, потому что, как вы совершенно правильно скажете, если вы работаете с живым просмотром, показывать это только можноты сейчас".

Например, если вы хотите отслеживать это изменение каждый месяц, а затем создавать таблицу каждый месяц *, которая показывает идентификатор клиента и сегменты, в которых был каждый идентификатор, вы можете сопоставить эти идентификаторы клиента с вашимтаблицы основной базы данных и обобщение статистики на уровне группы.

У меня была такая же проблема с историческими данными, чтобы заполнить ее, я написал скрипт на python, который запускал сегменты клиентов с помощью скользящего окна, чтобы автоматизировать процессоглядываясь назад во времени - при условии, что у вас есть данные, вы можете сделать это тоже. Вы также можете использовать BigQuery Scripting (в бета-версии на момент написания) как способ сделать это в пользовательском интерфейсе BigQuery.

. * Это будет тот же запрос, что и ваша силано вы можете сохранить в таблице, возможно, с отметкой данных, чтобы показать, что момент времени тоже соответствует.

...