powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 3NF и SCD
25 сообщений из 32, страница 1 из 2
3NF и SCD
    #39885052
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Подскажите такую вещь. Планирую строить DWH по Инмону в 3NF в DDS слое. Заказчик хочет гибкости и пока не понимает, что вообще в итоге будет в этом DWH. Также есть требования к хранению истории изменений некоторых измерений. Например Product. Есть у него ссылка на Brand. По Кимбалу я бы просто сделал Brand атрибутом Product, накрутил бы SCD2 и жил счастливо. Но что делать если у меня 3NF? Что если одна версия продукта будет соответствовать двум версиям брендов? Мне продукт тоже нарезать на эти версии брендов? А если у меня будет 3,5,10 ссылок на другие справочники из продукта? Это ж застрелиться можно нарезать всё это.
Как в 3NF ведете историчность? Или она вообще для этого не предназначена? Что тогда делать с историей? Хранить в отдельной аудиторской таблице?
...
Рейтинг: 0 / 0
3NF и SCD
    #39885069
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87,

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

Или вы планируете хранить версии и при ошибках ввода?
...
Рейтинг: 0 / 0
3NF и SCD
    #39885102
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик,

Да, я согласен, что в данном случае проблема немного высосана из пальца. А если всё-таки абстрагироваться от продуктов? То как решается задача?
...
Рейтинг: 0 / 0
3NF и SCD
    #39885115
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87, Назвался груздем - полезай в кузов. Хотите 3NF - как вы и сказали, делайте отдельные аудиторские таблицы.
...
Рейтинг: 0 / 0
3NF и SCD
    #39885117
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поверх DDS у вас же все-равно какой-то Data Mart будет, вот там и сделаете SCD2.
...
Рейтинг: 0 / 0
3NF и SCD
    #39885191
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Remind
Поверх DDS у вас же все-равно какой-то Data Mart будет, вот там и сделаете SCD2.

Да, тоже думал об этом. Но получается что витрины должны быть синхронизированы с DDS без задержек. Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день
...
Рейтинг: 0 / 0
3NF и SCD
    #39885194
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Remind
T87, Назвался груздем - полезай в кузов. Хотите 3NF - как вы и сказали, делайте отдельные аудиторские таблицы.

Ок. Спасибо.
...
Рейтинг: 0 / 0
3NF и SCD
    #39885238
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87,

История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три.
...
Рейтинг: 0 / 0
3NF и SCD
    #39885268
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87
Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день

Почему? По таблице с аудитом вы всегда сможете корректно построить SCD2 за прошедший месяц.
...
Рейтинг: 0 / 0
3NF и SCD
    #39885362
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Remind
T87
Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день

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

А, ну так получается аудит в DDS + SCD2 в DMT
...
Рейтинг: 0 / 0
3NF и SCD
    #39885435
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87, именно. Вообще вся суть Инмоновского подхода, что поверх EDW обязательно должен быть dimensional слой витрин. Простые смертные вообще не должны иметь возможность кверить EDW напрямую.
...
Рейтинг: 0 / 0
3NF и SCD
    #39885448
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Remind
T87, именно. Вообще вся суть Инмоновского подхода, что поверх EDW обязательно должен быть dimensional слой витрин. Простые смертные вообще не должны иметь возможность кверить EDW напрямую.

Да, датамарты у меня естественно в планах. Особенно учитывая, что над ними ssas кубы будут
...
Рейтинг: 0 / 0
3NF и SCD
    #39993628
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму темку:

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

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

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

Ваше мнение?
...
Рейтинг: 0 / 0
3NF и SCD
    #39993676
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Подниму темку:

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

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

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

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

Контр-почему:
- почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД?
- если загрузка истории должна быть высоконадежной, то для этого должны быть приняты соответствующие архитектурные решения. В противном случае избегание отдельных дыр в истории есть нездоровый перфекционизм.
...
Рейтинг: 0 / 0
3NF и SCD
    #39994007
Voyager_lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Подниму темку:

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

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

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

Ваше мнение?

SCD2 - это все-таки элемент ХД. В источнике данных его нет, а есть историзация справочников (а-ля регистры в 1С). Если мы тут пишем SCD2, подразумевая этот случай для удобства, то да, действительно может (и в большинстве случаев не в online-системах учета будет) изменяться эта временная метка задним числом. Понятно, что многие изменения в источнике задним числом являются результатом несовершенного (автоматизированного) процесса и приведут к пересчету большего объема данных в ХД, но это данность, за которую нужно ПЛАТИТЬ бизнесу или своевременно исправлять (а лучше планировать эти изменения в источнике). В любом случае все изменения нужно логировать, чтобы после иметь возможность разобраться в истинных причинах этих изменений.
...
Рейтинг: 0 / 0
3NF и SCD
    #39994098
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений
- почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД?


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


Voyager_lan,

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

То есть как-то так:
- Источник:Справочник SCD0
...
- DDS:Справочник SCD0 (может использоваться где угодно в расчетах)
--- DDS:Лог справочника в любом виде (только для разбора всяких сложных ситуаций, в расчетах не используется)
...
Рейтинг: 0 / 0
3NF и SCD
    #39994141
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
.Евгений
- почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД?


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

Вы ввели новое допущение, что система-источник не прилагает усилий по интеграции с ХД и не предлагает оператору указать срок действия записи. В таком случае это забота процесса загрузки данных, которая может решаться различными способами:
  • использование даты загрузки;
  • чтение иных данных источника (аудит операций) или иных источников с последующим совмещением;
  • приостановка загрузки записи до ручного ввода недостающих данных (внутри ХД);
  • и др.
...
Рейтинг: 0 / 0
3NF и SCD
    #39994350
Voyager_lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Voyager_lan,
...я про то, что в основную сущность справочника в DDS не нужно вносить период действия записи, если этого периода действия нет в источнике, потому что так "ошибка" будет только накапливаться....[/quot]

Судя по всему, у вас наболело с такими случаями...
Звучит со смыслом для большого количества случаев когда мы снимаем протокол изменений с источника и трансформируем его в SCD2 Для этого справочника. Если нет в источнике, тогда незачем это и бизнесу.
Но бывают-таки исключения. У меня как раз (пока один) такой случай сейчас есть. И пока приложение не допилят будем использовать change tracking - данные для расчетов.
А вот если количество таких исключений начнет расти, то затраты на поддержку не обрадуют ни низы не верхи.
...
Рейтинг: 0 / 0
3NF и SCD
    #39994442
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.
T87,

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


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

Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки.
...
Рейтинг: 0 / 0
3NF и SCD
    #39994456
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Полковник.
T87,

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


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

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

Вы как-то плохо прочитали условие задачи
...
Рейтинг: 0 / 0
3NF и SCD
    #39994461
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87
a_voronin
пропущено...


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

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

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


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

Эти две модели решают вопрос историчности.
...
Рейтинг: 0 / 0
3NF и SCD
    #39994614
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

По-моему я не вам задавал вопрос.
...
Рейтинг: 0 / 0
3NF и SCD
    #40016438
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас работаю с ХД, в которой реализована SCD2 при отсутствии историчности в источнике - это ппц, одни заявки на изменение периодов привязок.
...
Рейтинг: 0 / 0
3NF и SCD
    #40016464
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Сейчас работаю с ХД, в которой реализована SCD2 при отсутствии историчности в источнике - это ппц, одни заявки на изменение периодов привязок.

А потому что у бизнеса на этапе анализа спросили "нужно?", и они не разобравшись ответили "конечно!". А как дошло до дела, так и не понимают как этим пользоваться. Классика...
...
Рейтинг: 0 / 0
3NF и SCD
    #40016521
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Подниму темку:

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

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

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

Ваше мнение?

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

Плохие данные, упавший etl и т.д. - да, может негативно на это влиять. Но очень уж больших минусов в этом нет.
Те же плохие данные - до тех пор, пока в системе не исправили - все отчеты будут показывать эти плохие данные. Потому как они физически есть в системе.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 3NF и SCD
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]