
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.05.2017, 15:20
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
Всем доброго времени суток, Пожалуйста, наставьте на путь истинный в следующем вопросе - возможно ли сделать правильный many-to-many как: Есть измерение SalesSigns: SalesSign_IDDescription0«Реализация внутренняя»1«Реализация на сторону»2«Реализация по плану продаж» Есть таблица фактов Sales (Date_ID, Order_ID, BridgeSalesSign_ID, Amount) Есть бридж и измерение BridgeSalesSigns, выглядит как: SalesSign_IDBridgeSalesSign_ID 00110111211 Т.е. в бридже перечислены возможные комбинации признаков продажи, и в таблице фактов отражен этот же ключ. Сделал в кубе many-to-many (SalesSigns -> бридж BridgeSalesSigns -> Sales) на основе этой схемы, но, предсказуемо, при процессинге ругается на не-уникальность ключа измерения BridgeSalesSigns (BridgeSalesSigns_ID) Проигнорировал для него KeyDuplicate, процессинг прошел, но наверняка это неправильный путь. Если немножко предыстории, то в таблице фактов изначально присутствовало отдельное поле для каждого признака, соответственно, нужно было делать отдельное измерение для каждого признака (наверняка, это самый правильный путь). Но затем я решил попробовать конкатенировать поля признаков в одно поле и через бридж соединить с общей таблицей признаков (такую общую таблицу было бы удобно иметь даже просто из визуальных соображений). AdventureWorks смотрел, но там бридж имеет уникальный составной ключ, да и вообще иной подход применяется… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2017, 16:49
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
max_kov, Эээ, у вас тут продвинутый подход однако :)... Классический M2M - измерения BridgeSalesSigns нет совсем. Есть измерение SalesSigns, в M2M таблице записываем SalesFact_IDSalesSigh_ID123100123102130230130231 И дальше - делаем на основании M2M таблицы M2M measuregroup, и подвязываем через нее измерение SalesSigns. В вашем примере - это подход к так называемой технологии компрессии M2M , описанной, например, здесь . Там вводятся 2 промежуточные таблицы и скрытое измерение SalesSign_Matrix. Связка будет такая SalesFact -- SalesFact-Matrix M2M -- SalesSign Matrix Dim -- Matrix-SalesSigns M2M -- SalesSigns Dim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2017, 16:49
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
https://www.google.by/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjvop-K0oPUAhXF0RoKHUTuC_IQFggjMAA&url=http://www.sqlbi.com/wp-content/uploads/The_Many-to-Many_Revolution_2.0.pdf&usg=AFQjCNHXLS7lT-IJ7QRJ7VIH5zlt0jgWXw&sig2=duvS_8ceoaBJVuOzsAeEhQ Очень толковая статья про M2M Много чего там есть зы где то там есть и бак-апы этих тестовых БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2017, 17:10
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
max_kov, в измерении BridgeSalesSigns оставьте только один столбец BridgeSalesSign_ID с уникальными значениями, тогда все будет работать корректно. Связь с таблицей фактов Sales будет идти через группу мер BridgeSalesSigns, в которой 2 столбца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2017, 17:14
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
Т. е. получается такая связь Группа мер Sales - связь с промежуточным измерением BridgeSalesSigns по столбцу BridgeSalesSign_ID - связь с промежуточной группой мер BridgeSalesSigns - связь с измерением SalesSigns по столбцу SalesSign_ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2017, 17:23
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
Еще уточню, чтобы было совсем понятно ) По настройкам в SSAS: Группа мер BridgeSalesSigns связана напрямую с измерением BridgeSalesSigns по столбцу BridgeSalesSign_ID и напрямую с измерением SalesSigns по столбцу SalesSign_ID. Группа мер Sales связана напрямую с измерением BridgeSalesSigns по столбцу BridgeSalesSign_ID и как many to many с измерением SalesSigns через промежуточную группу мер BridgeSalesSigns. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2017, 18:17
|
|||
|---|---|---|---|
|
|||
SSAS - правильный many-to-many |
|||
|
#18+
"Если б Остап узнал, что он играет такие мудреные партии и сталкивается с такой испытанной защитой, он крайне бы удивился" (Источник указывать, думаю, необязательно :-)) Благодарю всех, кто откликнулся, буду дальше копать! В правильном (теперь уже) направлении! :-) Осподи! Столько накручено вокруг простого Select SUM(Sales.Amount), SalesSigns.SalesSign_ID From SalesSigns Left Outer Join BridgeSalesSigns On SalesSigns.SalesSign_ID=BridgeSalesSigns.SalesSign_ID Left Outer Join Sales ON Sales.BridgeSalesSign_ID = BridgeSalesSigns.BridgeSalesSign_ID Group By SalesSigns.SalesSign_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=49&mobile=1&tid=1858244]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 272ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...