Мы хотим начать анализ наших данных с использованием некоторых методов машинного обучения AutoML.Мы хотели бы создать таблицу, в которой фоновый процесс будет объединять и подготавливать нашу реляционную БД (mysql), чтобы было легко экспортировать электронную таблицу, которая будет импортирована в некоторую программу AutoML (возможно, h2o).
На нашей платформе пользователи могут выполнять несколько типов действий, которые мы называем «Действия».Что мы хотели бы сделать, так это отследить сверхурочное время их участия с момента создания их учетной записи и передать эти данные в нашу программу AutoML для анализа, чтобы определить, приводит ли определенное поведение к определенным результатам (например, уменьшение определенных действий приводит к аннулированию их учетной записи).
В конечном итоге нам нужна электронная таблица следующего формата:
user_id |активность_тип |week1_count |week2_count |week3_count |... |weekN_count
Подсчет каждой недели - это счет этой активности для этого пользователя в каждую неделю после его активности.Как видите, общее количество столбцов будет увеличиваться каждую неделю.Поскольку разрешение указывается в неделях, количество столбцов должно быть разумным.Мы начали 5 лет назад (5 * 52 = 260 недель) и, может быть, мы пойдем еще на 20?(52 * 20 = 1040weeks / столбцов).Выполняется в электронной таблице и довольно близко к максимальному количеству столбцов для mysql (1017 в нашей версии mysql).
Однако мне интересно, может ли альтернативная структура быть такой же производительной без создания столбцов для каждой недели:
user_id |активность_тип |год недели |count
Есть ли плюсы / минусы для любого подхода?В частности, мы также хотели бы использовать эту таблицу в качестве исходных данных для подачи в графические библиотеки, чтобы показать каждое действие с течением времени.