2015-07-16 10 views
1

Я довольно новичок в хранилище данных и SSIS, но мне было поручено заполнить хранилище данных транзакционными записями из двух разных подразделений материнской компании. Моя проблема ... Я модифицирую пакет SSIS, который заполняет измерение Product (SKU) для размещения продуктов, относящихся к двум разделам, и я получил несколько наименований продуктов, которые существуют в обоих разделах. Мне нужно решение для размещения списка продуктов для каждого подразделения в ОДНОЙ таблице размеров. Это возможно??Data Warehouse - дублирующие элементы измерения для нескольких подразделений

Для иллюстрации:

https://www.dropbox.com/s/hkda4n1bfs5o178/Capture.JPG?dl=0

Где widget_3 'и '' widget_4 являются имени одинакова в обоих отделах, но они НЕ тот же продукт. Просто получилось назвать то же самое. Я предполагаю, что это распространенная проблема, но я не хочу вносить какие-либо изменения в схему таблиц измерений, прежде чем сначала обратиться к кому-то.

Я работаю с таблицей размеров продукта, которая имеет [MemberID] в качестве первичного ключа и [Продукт] как уникальное не кластерное ограничение с IGNORE_DUP_KEY = OFF. Мой первый инстинкт состоял в том, чтобы изменить схему таблицы, чтобы изменить IGNORE_DUP_KEY на ON и полагаться на атрибут [Division], чтобы помочь заполнить данные в таблице фактов; используйте [Product] и [Division] для идентификации [MemberID] при обновлении.

Что-то вроде этого ??:

https://www.dropbox.com/s/fjzvsh80mtp3ozs/Capture2.JPG?dl=0

Я собираюсь вниз неправильный путь?

Примечания: - Использование SQL 2008

+0

Ваш размер продукта не должен иметь ничего, что связано с делением. Эта информация должна быть в какой-то таблице фактов. –

+0

Спасибо! Я действительно включаю данные деления в таблицу фактов подробностей продаж, но я пытался сохранить универсальный размер продукта в нескольких подразделениях. Мне никогда не приходило в голову, что они могут иметь одинаковое название продукта. Думаю, я попытаюсь сделать то, что предложил momobo; который должен использовать префикс в случае столкновения. – cmel3891

ответ

0

Это в конце дня бизнес-проблемы. Если в двух отделах есть конфликт имен, этот конфликт должен быть разрешен до представления данных togheter, иначе отдел обнаружит, что они видят некоторые продажи своего продукта, который им не принадлежит.

После того, как вы поняли, как относиться к этому на глобальном уровне (например, у вас будет небольшой префикс отдела в случае столкновения, но это необходимо согласовать), проблема будет автоматически решена.

Когда отделы не могут быть достигнуты или не согласны с решением, у вас может быть две колонки с названием продукта, каждая для каждого из двух отделов, и использовать их для переключения в PK (я не буду включать деление или на по крайней мере, я его не покажу, потому что это запутывает для конечных пользователей). Но я рекомендую найти бизнес-решение, а не техническое.

+1

Спасибо! Я полностью понимаю и соглашаюсь с вашим решением. Я думаю, что попробую префиксное решение. – cmel3891