powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MSTR связь фактов и измерений
6 сообщений из 6, страница 1 из 1
MSTR связь фактов и измерений
    #39442509
expel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простой кейс, 2 таблицы:

Product_fact: product_key, qty_realesed
Product_dim: id, category, type

Оказлось что если у вас разные имена ключей, то выбрать таблицу для джойна нельзя.
Нужно применить "heterogeneous mapping", окей:
-создали аттрибут category
-создали Form ID и добавили в него expression на таблицу фактов
-добавили DESC - Category

А теперь когда строим отчеты, получаем такой SQL:

Код: plsql
1.
2.
3.
select f.product_key, max(d.category) category, qty_realesed
from Product_fact f join Product_dim d ON d.id = f.product_key
group by f.product_key



А хотим получить, нормальный, с группировкой по категории а не по ключу:

Код: plsql
1.
2.
3.
select d.category, qty_realesed
from Product_fact f join Product_dim d ON d.id = f.product_key
group by d.category



Итого хотим: "heterogeneous mapping" + группировка не по ID
Возможно ли такое сделать простым способом ?
...
Рейтинг: 0 / 0
MSTR связь фактов и измерений
    #39443051
Beegoody
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expel,

Вам нужно создать один атрибут. В ID атрибута поместить product_key из факта и id из измерения(гетерогенный маппинг), при этом в качестве lookup таблицы выбрать измерение.В атрибут добавить форму DESC, в которую поместить category из измерения.

Что у вас не получилось? Это основы работы с метамоделью в architect. Читайте внимательнее документацию по ProjectDesign.
...
Рейтинг: 0 / 0
MSTR связь фактов и измерений
    #39443216
expel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Beegoody,

Вот я именно так и сделал как вы написали, но это не работает.
Сейчас разобрался, нужно создать 2 аттрибута:
1) ID с гетерогенным маппингом (ID_FACT, ID_DIM)
2) ID = Category и указать attribute children на первый.
...
Рейтинг: 0 / 0
MSTR связь фактов и измерений
    #39443380
Beegoody
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expel,

У вас получался такой запрос:

select f.product_key, max(d.category) category, qty_realesed
from Product_fact f join Product_dim d ON d.id = f.product_key
group by f.product_key

Так было из-за того, что не верно указана LookUp таблица(в вашем случае была таблица фактов)
Проверьте чтобы лукап таблица была Prodcut_dim
...
Рейтинг: 0 / 0
MSTR связь фактов и измерений
    #39443638
expel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Beegoody,

Да он всегда рисует этот max, если делать через 1 аттрибут.
Lookup все стоят на дименшенах и это не помогает.

Теперь когда сделал через 2 аттрибута(парент-чайлд), появились проблемы с добавлением нового измерения:

Customer_dim: id, location, age

Аттрибуты для него создал точно такие же, и хочу сделать в разрезе двух измерений.
И теперь MSTR мне рисует какой-то лишний extra join:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select	a12.category AS category,
	a13.location AS endedby,
	sum(a11.notices_sent) AS WJXBFS1
from	Product_Fact a11
	join	Product_dim	a12
	  on 	(a11.product_key= a12.id)
	join	Customer_dim a13
	  on 	(a11.customer_key = a13.id and 
	a12.id = a13.id)
group by	a12.category ,
	a13.location 



and a12.id = a13.id - откуда это я вообще не понимаю.
Изменил все названия столбоцов, установил все mapping method = manual.
Ничего не помогает =(
...
Рейтинг: 0 / 0
MSTR связь фактов и измерений
    #39443674
Beegoody
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expel,

Добавьте в архитекте 3 таблицы из источника. Product_fact, Product_dim,Customer_dim. При добавлении таблицы в метамодель не создавайте атрибуты. Закройте и сохраните метамодель.
Через Developer создайте атрибут Category с двумя формами:
1.ID имеющая два expression (1.Product_Key из факта и 2. id из Product_dim, лукап поставьте на измерении Product_dim)
2. DESC имеющая один expression (1. category из Product_dim)

Создайте атрибут Customer с двумя формами:
1. ID имеющая два expression (1.customer_key из факта и 2.id из Customer_dim, лукап поставьте на измерении Customer_dim)
2. DESC имеющая один expression( 1. Location из Customer_dim)

Не создавайте пока никакие связи parent-child.
Проапдейте схему. В отчет закиньте два атрибута Category и Customer ну и какой-нибудь метрику по верх факта из Product_fact, например. При это в гриде проверье что формы DESC из обоих атрибутов отображаются в ReportObjects. Сохраните отчет и сгенерите SQL View.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MSTR связь фактов и измерений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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