---
title: "Таблица фактов со смешанными гранулами"
description: "Таблица фактов со смешанными гранулами – это таблица фактов, в которой у нас есть меры с различной г..."
author: "crmkz"
published: "2018-11-13T17:46:59+00:00"
modified: "2018-11-13T17:46:59+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/tablica-faktov-so-smeshannymi-granulami-819230"
markdown_url: "https://yvision.kz/post/tablica-faktov-so-smeshannymi-granulami-819230/markdown"
site_name: "Yvision.kz"
---

# Таблица фактов со смешанными гранулами

> Таблица фактов со смешанными гранулами – это таблица фактов, в которой у нас есть меры с различной г...

Таблица фактов со смешанными гранулами – это таблица фактов, в которой у нас есть меры с различной гранулярностью. Например, одна мера является еженедельной, а другая – ежемесячной. В этом посте я хотел бы рассказать о преимуществах и недостатках этого подхода. Kimball Group однозначно заявила, что меры в таблице фактов должны иметь одинаковую гранулярность (см. главу 2 книги Кимбалла – The Data Warehouse Toolkit).

Но всегда проще объяснить на примере (см на сайте)

Это – витрина данных. В ней представлены еженедельные и ежемесячные меры, но отсутствуют ежедневные. Нужно ли нам создавать две таблицы фактов, одну еженедельную и одну ежемесячную, например вот такие (№1):

В приведенной выше таблице фактов черные строки являются недельными значениями, тогда как красные строки являются месячными. Они обе помещаются в одну и ту же таблицу фактов, но в разных столбцах. В строках, где существует недельная мера, месячная мера равна нулю. И наоборот. Поэтому еженедельные и ежемесячные итоги верны:

select D.Week, sum(F.WeeklyMeasure) from FactMixedGrain F join DimDate D on F.DimDate = D.DimDate group by D.Week

select D.Month, sum(F.MonthlyMeasure) from FactMixedGrain F join DimDate D on F.DimDate = D.DimDate group by D.Month

Обычно основная причина исполнения варианта №2 состоит в необходимости хранить еженедельные и ежемесячные показатели в одной таблице фактов. Это позволяет сэкономить время на разработку, особенно в части ETL. Легче заполнить одну таблицу, чем две.

Это преимущества. Теперь о недостатках. Проблема с вариантом №2 заключается в том, что гранулярность в таблице фактов является смешанной – есть две гранулы. На практике мы имеем другие ключевые столбцы измерения в таблице фактов. И еще у нас есть другие столбцы мер в таблице фактов. Некоторые из этих мер еженедельные, а некоторые – ежемесячные.

Продолжение с примерами на сайте: http://sanatel.kz/paper_mixed_grain_fact_tables.htm

---

Source: [https://yvision.kz/post/tablica-faktov-so-smeshannymi-granulami-819230](https://yvision.kz/post/tablica-faktov-so-smeshannymi-granulami-819230)