Дизайн таблицы, который может вместить различные фильтры и сгруппировать по пунктам - PullRequest
0 голосов
/ 11 июля 2019

Мне нужна помощь в разработке базы данных агрегированной таблицы.

У меня есть денормализованная таблица, в которой хранится информация о веб-сеансе пользователя, такая как источник, автор страницы, местоположение пользователя, время посещения страницы и т. Д.

У меня есть определенные аналитические запросы, такие как количество уникальных пользователей за определенный период времени, количество пользовательских сессий и т. Д., Которые могут обслуживаться различными фильтрами, такими как WHERE author = 'ABC' или WHERE user_location = 'UK' и т. Д.

Поскольку объем данных, которые будут сканироваться при инициировании вышеупомянутых запросов, будет значительно большим, у меня был план создать сводную таблицу поверх фактической таблицы. Тем не менее, я застрял при этом, поскольку я не могу обслуживать вышеупомянутые запросы из агрегированной таблицы. Это потому, что я вижу значительный всплеск количества, когда фильтры не применяются. Вот таблица, которую я спроектировал. Гранулярность таблицы составляет 1 запись для каждого местоположения / автора / источника.

create table agg (
date_key bigint,
num_sess int,
author varchar(255),
location varchar(255),
source varchar(255)
);

Я хотел бы получить некоторые предложения относительно структуры таблицы, которые я должен иметь, чтобы иметь агрегированное представление.

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