Определение таблицы фактов в дизайне хранилища данных
Я пытаюсь спроектировать свой первый киоск данных со звездообразной схемой из листа Excel, содержащего информацию о вызовах службы поддержки, этот лист содержит 33 поля, включая различную информацию, и я не могу определить таблицу фактов, потому что я хочу сделать отчетность позже на основе разных KPI. Я хочу знать, как легко определить меры таблицы фактов, и у меня есть еще один вопрос: может ли таблица фактов содержать только внешние ключи измерений и никаких мер? Заранее спасибо, ребята, и извините за мой плохой английский.
2 ответа
Вы можете иметь более одной таблицы фактов.
Таблица фактов представляет событие или процесс, который вы хотите проанализировать.
Структура таблиц фактов зависит от процесса или события, которое вы пытаетесь проанализировать.
Вам необходимо сообщить нам события или процессы, которые вы хотите проанализировать, прежде чем мы сможем помочь вам в дальнейшем.
Может ли таблица фактов содержать только внешние ключи измерений и никаких мер?
Да. Это называется таблицей фактов без фактов.
Допустим, вы хотите сделать базовый анализ звонков:
Ваша полная таблица может выглядеть так
CALL_ID
START_DATE
DURATION
AGENT_NAME
AGENT_TENURE (how long worked for company)
CUSTOMER_NAME
CUSTOMER_TENURE (how long a customer)
PRODUCT_NAME (the product the customer is calling about)
RESOLVED
Вы бы превратили это в таблицу фактов, например так:
CALL_ID
START_DATE_KEY
AGENT_KEY
CUSTOMER_KEY
PRODUCT_KEY
DURATION (measure)
RESOLVED (quasi-measure)
И у вас будет таблица измерений DATE, таблица измерений AGENT, таблица измерений CUSTOMER и таблица измерений PRODUCT.
Agile Data Warehouse Design - хорошая книга, как и книги Кимбалла.
В общем, способ, которым я это сделал (и есть несколько способов сделать что-либо), состоит в том, что на категориальные данные ссылаются с помощью FKey в таблице фактов, но на все, что вы хотите выполнить агрегации (обычно в виде типов данных). $/integer /doubles и т. д.) также могут быть в таблице фактов. Так, например, таблица фактов может содержать иерархию типов, например, product_category >> product_name, и обычно она также содержит поле времени и / или местоположения; все из которых будут ссылаться FKEY на таблицу поиска. Столбцы показателя обычно представляют собой целочисленные данные или данные о деньгах и используются в статистических функциях, сгруппированных по другим полям, например:
select sum(measureOne) as sum, product_category from facttable
where timeCol between X and Y group by product_category...etc
Однажды, несколько лет назад, у меня была таблица фактов, в которой не было столбца мер... потому что единственная мера, которую я имел, основывалась на подсчете, который я делал бы динамически, группируя различные измерения в таблице фактов.