|
3NF и SCD
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите такую вещь. Планирую строить DWH по Инмону в 3NF в DDS слое. Заказчик хочет гибкости и пока не понимает, что вообще в итоге будет в этом DWH. Также есть требования к хранению истории изменений некоторых измерений. Например Product. Есть у него ссылка на Brand. По Кимбалу я бы просто сделал Brand атрибутом Product, накрутил бы SCD2 и жил счастливо. Но что делать если у меня 3NF? Что если одна версия продукта будет соответствовать двум версиям брендов? Мне продукт тоже нарезать на эти версии брендов? А если у меня будет 3,5,10 ссылок на другие справочники из продукта? Это ж застрелиться можно нарезать всё это. Как в 3NF ведете историчность? Или она вообще для этого не предназначена? Что тогда делать с историей? Хранить в отдельной аудиторской таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2019, 19:37 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
T87, Не обращайте на это внимание, ребрендинг крайне не частое явление, и новый продукт, который является копией старого (но с новым брендом), будет в 99% заведен именно как новый продукт, а не версия. Или вы планируете хранить версии и при ошибках ввода? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2019, 21:39 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Критик, Да, я согласен, что в данном случае проблема немного высосана из пальца. А если всё-таки абстрагироваться от продуктов? То как решается задача? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2019, 23:44 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
T87, Назвался груздем - полезай в кузов. Хотите 3NF - как вы и сказали, делайте отдельные аудиторские таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 01:07 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Поверх DDS у вас же все-равно какой-то Data Mart будет, вот там и сделаете SCD2. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 01:14 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Remind Поверх DDS у вас же все-равно какой-то Data Mart будет, вот там и сделаете SCD2. Да, тоже думал об этом. Но получается что витрины должны быть синхронизированы с DDS без задержек. Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 10:56 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Remind T87, Назвался груздем - полезай в кузов. Хотите 3NF - как вы и сказали, делайте отдельные аудиторские таблицы. Ок. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 10:59 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
T87, История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 12:59 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
T87 Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день Почему? По таблице с аудитом вы всегда сможете корректно построить SCD2 за прошедший месяц. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 14:18 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Remind T87 Я к тому, что если есть витрина, для которой обновление актуально раз в месяц, то мне всё равно придется измерения эти обновлять каждый день Почему? По таблице с аудитом вы всегда сможете корректно построить SCD2 за прошедший месяц. А, ну так получается аудит в DDS + SCD2 в DMT ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 17:00 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
T87, именно. Вообще вся суть Инмоновского подхода, что поверх EDW обязательно должен быть dimensional слой витрин. Простые смертные вообще не должны иметь возможность кверить EDW напрямую. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 20:36 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Remind T87, именно. Вообще вся суть Инмоновского подхода, что поверх EDW обязательно должен быть dimensional слой витрин. Простые смертные вообще не должны иметь возможность кверить EDW напрямую. Да, датамарты у меня естественно в планах. Особенно учитывая, что над ними ssas кубы будут ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 21:55 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Подниму темку: Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД? Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных. Почему: - в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные - etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS. Ваше мнение? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 19:39 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Критик Подниму темку: Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД? Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных. Почему: - в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные - etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS. Ваше мнение? Контр-почему: - почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД? - если загрузка истории должна быть высоконадежной, то для этого должны быть приняты соответствующие архитектурные решения. В противном случае избегание отдельных дыр в истории есть нездоровый перфекционизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 23:29 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Критик Подниму темку: Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД? Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных. Почему: - в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные - etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS. Ваше мнение? SCD2 - это все-таки элемент ХД. В источнике данных его нет, а есть историзация справочников (а-ля регистры в 1С). Если мы тут пишем SCD2, подразумевая этот случай для удобства, то да, действительно может (и в большинстве случаев не в online-системах учета будет) изменяться эта временная метка задним числом. Понятно, что многие изменения в источнике задним числом являются результатом несовершенного (автоматизированного) процесса и приведут к пересчету большего объема данных в ХД, но это данность, за которую нужно ПЛАТИТЬ бизнесу или своевременно исправлять (а лучше планировать эти изменения в источнике). В любом случае все изменения нужно логировать, чтобы после иметь возможность разобраться в истинных причинах этих изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 09:52 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
.Евгений - почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД? А как вы корректно обработаете изменение SCD0 в источнике, если у вас в ХД эта сущность идет в виде SCD2? Правка источника заключается просто в исправлении ошибки, "которая всегда была". И естественно, что человек, который вносил исправления в первичке - может совсем не знать о ХД и о том, что там нужно тоже поправить справочник. Voyager_lan, Насчет логирования я совершенно не возражаю, я про то, что в основную сущность справочника в DDS не нужно вносить период действия записи, если этого периода действия нет в источнике, потому что так "ошибка" будет только накапливаться. То есть как-то так: - Источник:Справочник SCD0 ... - DDS:Справочник SCD0 (может использоваться где угодно в расчетах) --- DDS:Лог справочника в любом виде (только для разбора всяких сложных ситуаций, в расчетах не используется) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 13:12 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Критик .Евгений - почему исправление ошибок в исходной системе некорректно обрабатывается процессами ЕТЛ и отражается в данных ХД? А как вы корректно обработаете изменение SCD0 в источнике, если у вас в ХД эта сущность идет в виде SCD2? Правка источника заключается просто в исправлении ошибки, "которая всегда была". И естественно, что человек, который вносил исправления в первичке - может совсем не знать о ХД и о том, что там нужно тоже поправить справочник. Вы ввели новое допущение, что система-источник не прилагает усилий по интеграции с ХД и не предлагает оператору указать срок действия записи. В таком случае это забота процесса загрузки данных, которая может решаться различными способами:
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 15:35 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Voyager_lan, ...я про то, что в основную сущность справочника в DDS не нужно вносить период действия записи, если этого периода действия нет в источнике, потому что так "ошибка" будет только накапливаться....[/quot] Судя по всему, у вас наболело с такими случаями... Звучит со смыслом для большого количества случаев когда мы снимаем протокол изменений с источника и трансформируем его в SCD2 Для этого справочника. Если нет в источнике, тогда незачем это и бизнесу. Но бывают-таки исключения. У меня как раз (пока один) такой случай сейчас есть. И пока приложение не допилят будем использовать change tracking - данные для расчетов. А вот если количество таких исключений начнет расти, то затраты на поддержку не обрадуют ни низы не верхи. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 10:49 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Полковник. T87, История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три. По-моему велосипеды давно изобретены, Data Vault и Якорная модель . Эти версионируют связи не задумываясь. Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 13:36 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
a_voronin Полковник. T87, История изменений атрибутов, это ерунда, подумайте как вы будете хранить историю изменений связей об'ектов, простой пример - накладная было три позиции, потом стало пять, потом стало семь, а потом снова три. По-моему велосипеды давно изобретены, Data Vault и Якорная модель . Эти версионируют связи не задумываясь. Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки. Вы как-то плохо прочитали условие задачи ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 13:52 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
T87 a_voronin пропущено... По-моему велосипеды давно изобретены, Data Vault и Якорная модель . Эти версионируют связи не задумываясь. Хотя сейчас есть темпоралы на многих современных Бд. Которые это версионирование дать из коробки. Вы как-то плохо прочитали условие задачи То что я вам написал является ответом на "Что если одна версия продукта будет соответствовать двум версиям брендов? Мне продукт тоже нарезать на эти версии брендов? А если у меня будет 3,5,10 ссылок на другие справочники из продукта? Это ж застрелиться можно нарезать всё это.Как в 3NF ведете историчность?" Эти две модели решают вопрос историчности. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 13:59 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
a_voronin, По-моему я не вам задавал вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 19:21 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Сейчас работаю с ХД, в которой реализована SCD2 при отсутствии историчности в источнике - это ппц, одни заявки на изменение периодов привязок. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 10:56 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Критик Сейчас работаю с ХД, в которой реализована SCD2 при отсутствии историчности в источнике - это ппц, одни заявки на изменение периодов привязок. А потому что у бизнеса на этапе анализа спросили "нужно?", и они не разобравшись ответили "конечно!". А как дошло до дела, так и не понимают как этим пользоваться. Классика... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 12:21 |
|
3NF и SCD
|
|||
---|---|---|---|
#18+
Критик Подниму темку: Коллеги, более общий вопрос - а как вы вообще относитесь к SCD2, возникающих в ХД? Я сейчас склоняюсь к тому, что ХД вообще не должно само генерить никаких SCD2-данных. Почему: - в первичной системе возможны ошибки и при их исправлении в первичке - в ХД останутся плохие данные - etl-процесс может упасть, и починен может быть только, скажем, завтра, значит вся относительно корректная историчность летит в Тартар Имхо, либо SCD2 полностью берется из первичной системы, либо в ХД генерятся только логи, которые однозначно запрещено использоваться при расчетах в DDS. Ваше мнение? Я сейчас над подобной задачей думаю, и наоборот - хочу реализовать SCD2, генерящиеся в ХД. В источнике (навик) историчности нет. А пользователям нужна - девчонки, которые отчетность делают, очень просят возможность "замораживать" отчеты. Плохие данные, упавший etl и т.д. - да, может негативно на это влиять. Но очень уж больших минусов в этом нет. Те же плохие данные - до тех пор, пока в системе не исправили - все отчеты будут показывать эти плохие данные. Потому как они физически есть в системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 14:53 |
|
|
start [/forum/topic.php?fid=49&msg=39994456&tid=1857239]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 126ms |
0 / 0 |