Решение для разработки схемы Star Mart star

Мне нужно перевести БД в ДМ, но у меня есть некоторые сомнения по поводу того, что это схема БД:

Это простая БД для хранения авторов, книг и различных вещей (внешние ключи таблицы авторов являются ошибками, а таблица "книга" - еще одним полем, называемым годом). Я должен построить DM, чтобы проанализировать, как авторы работают трудные годы (соавторы и книги). Я хотел бы добавить даже способ увидеть цитаты автора... DM, который я создаю, выглядит примерно так:

Теперь я сомневаюсь: как я могу добавить цитаты в этом datamart?

PS для цитирования я имею в виду книгу, которая цитирует автора, и я работаю с чайником и Penthao

1 ответ

Цитаты и авторство книг имеют разную степень детализации. Как таковые, они должны быть в разных таблицах фактов.

Как бы я это сделал:

  1. Таблица фактов цитирования: зерно - 1 цитирование 1 человека в 1 книге. внешние ключи предназначены для измерения времени, цитирования автора, измерения автора, измерения книги и всего, что вам может понадобиться. Эта витрина данных дает вам прямые подсчеты цитат человека X с разбивкой по времени, автору книги и т. Д.

  2. Таблица фактов авторства: можно подумать, что зерно - это 1 книга, но на самом деле это не так. Зерно - 1 автор 1 книги. Это самый атомарный уровень данных. Чтобы подсчитать количество книг, вы можете указать, что 1 книга, в соавторстве с 1 человеком, считается как 1 книга, как 0,5, как 1 / Количество соавторов или как любая другая полезная метрика. Если вы также хотите считать книги, вы должны использовать метрику 1/N вместе с любыми другими, которые вы считаете полезными.

  3. Отношения соавторства: пытаться определить авторов, которые публикуют больше всего вместе: это сложнее. Здесь фактическая гранулярность также является авторством, но с 1 записью для каждой пары соавторов. Итак, если книга написана Альбертом, Биллом и Чарльзом, вы получите 1 запись с автором Альбертом и соавтором Биллом, одну для Альберта как автора и Чарльза как соавтора и т. Д. (Все 6 комбинаций). Это позволяет получить полный список авторов и их соавторов и подсчитать, сколько раз они объединяются, но все будет отображаться как двойной счет: Альберт + Билл и Билл + Альберт появляются дважды. Лучший способ отфильтровать дубликаты - это определить "авторов в алфавитном порядке, где хранятся Альберт + Билл, Альберт + Чарльз и Билл + Чарльз, но не остальные, или на стороне клиента, удалив дубликаты как сообщение запроса". -переработка.

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

Наконец, один комментарий: эта проблема, кажется, не лучше всего обрабатывается витриной данных. Метаданные книги не имеют фиксированной схемы данных, и для всех этих поисков лучше всего использовать схему без схемы (посмотрите Elastic Search и Mongo DB, возможно, они лучше подходят для этой конкретной задачи.

Другие вопросы по тегам