2016-02-16 2 views
0

Мы создаем карту данных из источника данных, который мы даем. Я создал следующие таблицы в файле mart.Как решить, если в массиве данных есть две разные степени детализации?

FactPopulation (Fact table which has population data per year) 
FactMeeting count (Fact table which has event info occur almost everyday 2005-) 
DimMeeting Topic (Name of Meetings) 
DimGeography (Place) 
DimDate (Date Dimension) 

Так что, если я хочу сделать анализ Население и встречаются с разной степенью детализации. Я хочу проводить анализ по годам и месяцам. Можно ли объединить обе таблицы фактов в одно или любое предложение?

+0

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

+0

Дело в том, что я хочу создать только одну таблицу фактов вместо двух таблиц фактов. Поэтому я хочу комбинировать Factpopulation и FactMettingCount togather в одной таблице и делать анализ. – Justin

+0

Зачем вам это нужно? Это звучит как плохой дизайн для меня, если нет какой-то причины, которая пока неясно из вашего вопроса. –

ответ

0

После того, как данные свернуты до определенной степени детализации, самый простой способ пойти глубже, чем зерно сказать, что зерно FactMeeting будет состоять в том, чтобы оглянуться назад на источник и произвести другой сверток на нужном зерне. Подумайте о создании таблицы FactMeetingByCounty, которая свернута, так что метрика count - по окружности. Затем создайте комбинированные данные, которые вы используете в качестве отдельной таблицы.

Альтернативой может быть создание таблицы, после которой вы используете эту «новую логику зерна», и логику, используемую при создании факта FactPopulation.

Много вариантов здесь.

0

Что такое FactPopulation? От имени я предполагаю, что он представляет собой популяцию места с течением времени.

Это то же самое, что и DimGeography? Если это так, сделайте население атрибутом этого измерения и сделайте его медленно изменяющимся измерением типа 2, чтобы учитывать изменение популяции с течением времени.

EDIT ПОСЛЕ К.П 1:

Это помогло бы, если было несколько примеров данных, или более полные имена столбцов в фактах и ​​размеров вы предложили, но моя интерпретация, что модель, как это будет решить вашу проблему:

dim_event (id,name,...) 
dim_geography (id,country,city,...,population,from_date,to_date) 
dim_date (id,cal_date,cal_year,cal_month,...) 
fact_meeting (event_id,geography_id,date_id,...,attendee_count) 

Вы знакомы с медленно изменяющимися размерами? Измерение типа 2 будет обрабатывать изменение популяции с течением времени.

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

+0

Factpopulation - это количество населения в разных городах по году. Там, где значение FactMeeting рассчитывается каждый день, и я хочу объединить их для анализа в месяц и в год. – Justin

Смежные вопросы