Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Всем привет!

Подскажите такую вещь. Планирую строить DWH по Инмону в 3NF в DDS слое. Заказчик хочет гибкости и пока не понимает, что вообще в итоге будет в этом DWH. Также есть требования к хранению истории изменений некоторых измерений. Например Product. Есть у него ссылка на Brand. По Кимбалу я бы просто сделал Brand атрибутом Product, накрутил бы SCD2 и жил счастливо. Но что делать если у меня 3NF? Что если одна версия продукта будет соответствовать двум версиям брендов? Мне продукт тоже нарезать на эти версии брендов? А если у меня будет 3,5,10 ссылок на другие справочники из продукта? Это ж застрелиться можно нарезать всё это.
Как в 3NF ведете историчность? Или она вообще для этого не предназначена? Что тогда делать с историей? Хранить в отдельной аудиторской таблице?
4 ноя 19, 19:37    [22009513]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34263
Блог
T87,

Не обращайте на это внимание, ребрендинг крайне не частое явление, и новый продукт, который является копией старого (но с новым брендом), будет в 99% заведен именно как новый продукт, а не версия.

Или вы планируете хранить версии и при ошибках ввода?
4 ноя 19, 21:39    [22009545]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Критик,

Да, я согласен, что в данном случае проблема немного высосана из пальца. А если всё-таки абстрагироваться от продуктов? То как решается задача?
4 ноя 19, 23:44    [22009611]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Remind
Member

Откуда: UK
Сообщений: 523
T87, Назвался груздем - полезай в кузов. Хотите 3NF - как вы и сказали, делайте отдельные аудиторские таблицы.
5 ноя 19, 01:07    [22009636]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Remind
Member

Откуда: UK
Сообщений: 523
Поверх DDS у вас же все-равно какой-то Data Mart будет, вот там и сделаете SCD2.
5 ноя 19, 01:14    [22009640]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Remind
Поверх DDS у вас же все-равно какой-то Data Mart будет, вот там и сделаете SCD2.

Да, тоже думал об этом. Но получается что витрины должны быть синхронизированы с DDS без задержек. Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день
5 ноя 19, 10:56    [22009787]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Remind
T87, Назвался груздем - полезай в кузов. Хотите 3NF - как вы и сказали, делайте отдельные аудиторские таблицы.

Ок. Спасибо.
5 ноя 19, 10:59    [22009793]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Полковник.
Member

Откуда:
Сообщений: 1901
T87,

История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три.
5 ноя 19, 12:59    [22009887]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Remind
Member

Откуда: UK
Сообщений: 523
T87
Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день

Почему? По таблице с аудитом вы всегда сможете корректно построить SCD2 за прошедший месяц.
5 ноя 19, 14:18    [22009948]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Remind
T87
Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день

Почему? По таблице с аудитом вы всегда сможете корректно построить SCD2 за прошедший месяц.

А, ну так получается аудит в DDS + SCD2 в DMT
5 ноя 19, 17:00    [22010110]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Remind
Member

Откуда: UK
Сообщений: 523
T87, именно. Вообще вся суть Инмоновского подхода, что поверх EDW обязательно должен быть dimensional слой витрин. Простые смертные вообще не должны иметь возможность кверить EDW напрямую.
5 ноя 19, 20:36    [22010233]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Remind
T87, именно. Вообще вся суть Инмоновского подхода, что поверх EDW обязательно должен быть dimensional слой витрин. Простые смертные вообще не должны иметь возможность кверить EDW напрямую.

Да, датамарты у меня естественно в планах. Особенно учитывая, что над ними ssas кубы будут
5 ноя 19, 21:55    [22010254]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34263
Блог
Подниму темку:

Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД?
Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных.

Почему:
- в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные
- etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар

Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS.

Ваше мнение?
28 авг 20, 19:39    [22189050]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
.Евгений
Member

Откуда:
Сообщений: 574
Критик
Подниму темку:

Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД?
Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных.

Почему:
- в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные
- etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар

Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS.

Ваше мнение?
Я не понимаю, что означает фраза "ХД вообще не должно". ХД - это не самоценная вещь, оно должно обслуживать потребности бизнеса в рамках своих возможностей. Потребность бизнеса в версионировании данных, которую не может удовлетворить источник (в силу неважно каких причин), не есть что-то немыслимое.

Контр-почему:
- почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД?
- если загрузка истории должна быть высоконадежной, то для этого должны быть приняты соответствующие архитектурные решения. В противном случае избегание отдельных дыр в истории есть нездоровый перфекционизм.
28 авг 20, 23:29    [22189141]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Voyager_lan
Member

Откуда:
Сообщений: 1492
Критик
Подниму темку:

Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД?
Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных.

Почему:
- в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные
- etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар

Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS.

Ваше мнение?

SCD2 - это все-таки элемент ХД. В источнике данных его нет, а есть историзация справочников (а-ля регистры в 1С). Если мы тут пишем SCD2, подразумевая этот случай для удобства, то да, действительно может (и в большинстве случаев не в online-системах учета будет) изменяться эта временная метка задним числом. Понятно, что многие изменения в источнике задним числом являются результатом несовершенного (автоматизированного) процесса и приведут к пересчету большего объема данных в ХД, но это данность, за которую нужно ПЛАТИТЬ бизнесу или своевременно исправлять (а лучше планировать эти изменения в источнике). В любом случае все изменения нужно логировать, чтобы после иметь возможность разобраться в истинных причинах этих изменений.
31 авг 20, 09:52    [22189727]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34263
Блог
.Евгений
- почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД?


А как вы корректно обработаете изменение SCD0 в источнике, если у вас в ХД эта сущность идет в виде SCD2?
Правка источника заключается просто в исправлении ошибки, "которая всегда была". И естественно, что человек, который вносил исправления в первичке - может совсем не знать о ХД и о том, что там нужно тоже поправить справочник.


Voyager_lan,

Насчет логирования я совершенно не возражаю, я про то, что в основную сущность справочника в DDS не нужно вносить период действия записи, если этого периода действия нет в источнике, потому что так "ошибка" будет только накапливаться.

То есть как-то так:
- Источник:Справочник SCD0
...
- DDS:Справочник SCD0 (может использоваться где угодно в расчетах)
--- DDS:Лог справочника в любом виде (только для разбора всяких сложных ситуаций, в расчетах не используется)
31 авг 20, 13:12    [22189834]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
.Евгений
Member

Откуда:
Сообщений: 574
Критик
.Евгений
- почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД?


А как вы корректно обработаете изменение SCD0 в источнике, если у вас в ХД эта сущность идет в виде SCD2?
Правка источника заключается просто в исправлении ошибки, "которая всегда была". И естественно, что человек, который вносил исправления в первичке - может совсем не знать о ХД и о том, что там нужно тоже поправить справочник.

Вы ввели новое допущение, что система-источник не прилагает усилий по интеграции с ХД и не предлагает оператору указать срок действия записи. В таком случае это забота процесса загрузки данных, которая может решаться различными способами:
  • использование даты загрузки;
  • чтение иных данных источника (аудит операций) или иных источников с последующим совмещением;
  • приостановка загрузки записи до ручного ввода недостающих данных (внутри ХД);
  • и др.
31 авг 20, 15:35    [22189903]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Voyager_lan
Member

Откуда:
Сообщений: 1492
Voyager_lan,
...я про то, что в основную сущность справочника в DDS не нужно вносить период действия записи, если этого периода действия нет в источнике, потому что так "ошибка" будет только накапливаться....[/quot]

Судя по всему, у вас наболело с такими случаями...
Звучит со смыслом для большого количества случаев когда мы снимаем протокол изменений с источника и трансформируем его в SCD2 Для этого справочника. Если нет в источнике, тогда незачем это и бизнесу.
Но бывают-таки исключения. У меня как раз (пока один) такой случай сейчас есть. И пока приложение не допилят будем использовать change tracking - данные для расчетов.
А вот если количество таких исключений начнет расти, то затраты на поддержку не обрадуют ни низы не верхи.
1 сен 20, 10:49    [22190183]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4806
Полковник.
T87,

История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три.


По-моему велосипеды давно изобретены, Data Vault и Якорная модель . Эти версионируют связи не задумываясь.

Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки.
1 сен 20, 13:36    [22190318]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
a_voronin
Полковник.
T87,

История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три.


По-моему велосипеды давно изобретены, Data Vault и Якорная модель . Эти версионируют связи не задумываясь.

Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки.

Вы как-то плохо прочитали условие задачи
1 сен 20, 13:52    [22190333]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4806
T87
a_voronin
пропущено...


По-моему велосипеды давно изобретены, Data Vault и Якорная модель . Эти версионируют связи не задумываясь.

Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки.

Вы как-то плохо прочитали условие задачи


То что я вам написал является ответом на "Что если одна версия продукта будет соответствовать двум версиям брендов? Мне продукт тоже нарезать на эти версии брендов? А если у меня будет 3,5,10 ссылок на другие справочники из продукта? Это ж застрелиться можно нарезать всё это.Как в 3NF ведете историчность?"

Эти две модели решают вопрос историчности.
1 сен 20, 13:59    [22190341]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Полковник.
Member

Откуда:
Сообщений: 1901
a_voronin,

По-моему я не вам задавал вопрос.
1 сен 20, 19:21    [22190550]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34263
Блог
Сейчас работаю с ХД, в которой реализована SCD2 при отсутствии историчности в источнике - это ппц, одни заявки на изменение периодов привязок.
9 ноя 20, 10:56    [22228597]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
T87
Member

Откуда:
Сообщений: 169
Критик
Сейчас работаю с ХД, в которой реализована SCD2 при отсутствии историчности в источнике - это ппц, одни заявки на изменение периодов привязок.

А потому что у бизнеса на этапе анализа спросили "нужно?", и они не разобравшись ответили "конечно!". А как дошло до дела, так и не понимают как этим пользоваться. Классика...
9 ноя 20, 12:21    [22228656]     Ответить | Цитировать Сообщить модератору
 Re: 3NF и SCD  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2204
Критик
Подниму темку:

Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД?
Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных.

Почему:
- в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные
- etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар

Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS.

Ваше мнение?

Я сейчас над подобной задачей думаю, и наоборот - хочу реализовать SCD2, генерящиеся в ХД. В источнике (навик) историчности нет. А пользователям нужна - девчонки, которые отчетность делают, очень просят возможность "замораживать" отчеты.

Плохие данные, упавший etl и т.д. - да, может негативно на это влиять. Но очень уж больших минусов в этом нет.
Те же плохие данные - до тех пор, пока в системе не исправили - все отчеты будут показывать эти плохие данные. Потому как они физически есть в системе.
9 ноя 20, 14:53    [22228784]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / OLAP и DWH Ответить