| 
 | 
| 
 
best practices медленно меняющееся измерение 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Всех приветствую. Кто может поделиться опытом разработки кубов с медленно меняющимися измерениями? Что я имею в виду: Есть таблица фактов с количеством записей в пару-тройку сотен миллионов, гранулярностью до дня. Есть, например, измерение "клиент", представленный в фактах id. Имеется таблица переходов клиентов из одного состояния в другое с записью вида: клиент-состояние-с дата-по дата. Есть справочник состояний, пусть пока простой: id, name. Как лучше отобразить состояние клиента в кубе на конкретную дату? Джойнить факты с таблицей переходов клиент-состояние с хранением состояния в фактах? Или "раскручивать" таблицу переходов состояний на каждый день для каждого клиента и связывать, фактически две фактовые таблицы через измерения? С учетом того, что самих клиентов может быть несколько миллионов и календарь охватывать несколько лет? А если еще хочется иерархию родитель-потомок по состоянию? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.11.2019, 18:17 | 
  
  
  
   | 
||
| 
 
best practices медленно меняющееся измерение 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  а может просто "состояние клиента на дату" положить в таблицу фактов? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.11.2019, 18:42 | 
  
  
  
   | 
||
| 
 
best practices медленно меняющееся измерение 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  londinium, "...Джойнить факты с таблицей переходов клиент-состояние с хранением состояния в фактах?..." Именно так сейчас в большинстве случаев и реализовано. Там, где измерения очень большие ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.11.2019, 18:51 | 
  
  
  
   | 
||
| 
 
best practices медленно меняющееся измерение 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я бы просто положил в факты еще на уровне etl. Просто и быстро. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.11.2019, 20:45 | 
  
  
  
   | 
||
| 
 
best practices медленно меняющееся измерение 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  IlyamI, я вижу два варианта - простой и сложный 1) Сложный - таблицу измерения генерируем со всеми изменениями состояний с IDENTITY, в таблице факта по дате определяем нужный нам IDENTITY клиента и добавляем в таблицу - связь с измерением по этому полю 2) Простой - генерируем измерением ключам код клиента, код начала месяца, в таблицу факта добавляем дату начала месяца, связь по составному ключу - дата начала месяца + код клиента ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.11.2019, 18:08 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=49&msg=39888767&tid=1857449]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    65ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    47ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 13ms | 
| total: | 170ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...