Гость
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 3NF и SCD / 25 сообщений из 32, страница 1 из 2
04.11.2019, 19:37
    #39885052
T87
T87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
3NF и SCD
Всем привет!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ваше мнение?

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


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


Voyager_lan,

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

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

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

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

Ваше мнение?

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

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


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