Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Make Dimension "on the fly" in the MDX / 10 сообщений из 10, страница 1 из 1
23.12.2004, 13:57
    #32841615
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
Всем Привет

Вот такой вопрос, к примеру, в моем кубе есть 3 дименшина, два из которых представляют собой метаданные. Например Country и Регион. А вот один дименшин называется Profiles.
Структура таблицы Profile:

CREATE TABLE [Profile] (
[cod_Profile] [numeric](18, 0) NOT NULL ,
[cod_Article] [numeric](18, 0) NOT NULL ,
)

Структура fact таблицы:
CREATE TABLE [fact_article] (
[article_id] [numeric](18, 0) NOT NULL ,
[country_id] [bigint] NOT NULL ,
[region_id] [bigint] NOT NULL
EAV int
)

Дименшен Profile имеет level cod_profile и связан с fact_article через колонку cod_article = article_id.

Что мне нужно получить:
1. Самый простой случай. Chart по оси X – Country, По оси Y к примеру Number Of Articles, Distributed By Region.
2. Тоже простой случай: Chart по оси X – Profiles: По оси Y Number Of Articles
3. Сложнее уже: Chart по оси X – Profiles: По оси Y Number Of Articles, но теперь каждый Profile должен быть Distributed By Profile. Что это значит ? Это значит к примеру что если Profile 1 (P1) имеет 10 articles и среди этих 10 articles 5 связаны еще с Profile2 (P2) a другие 5 еще связанны с P3 то chart должен показать bar высотой в 10 (количество артиклов для P1) половина из которых будет подкрашена в один цвет (P2) а другие 5 в другой цвет (P3).
Если бы из 10 артиклов для P1 только 2 пересекались бы с P2 и 5 с P3 то чарт был бы высотой в 7 артиклов , 2 из которых были зелеными для P2 и 5 допустим черными – для P3
Вопрос, как теперь сделать такое. Невозможно поставить один и тотже дименшен в MDX на двух осях. Либо добавлять новый дименшен Profile_DW основанный на той-же таблице что и Profile и который точно так-же соеденялся с fact_table. Теперь можно по одной оси ставить одно, по другой другое. Но этот метод не годится, потому что если я на этом же кубе запущу к примеру случай 1 (Country-Region) то количество articlov будет другим, большим, за счет нового dimension. C количеством артиклов еще можно полечить введя Distinct Count, но все равно у меня есть к примеру другое measure EAV и оно тоже дублируется.
Вопрос, как построить по одной оси Profiles, по другой оси то же Profiles и увидеть пересечение. Через какие-то aliases ? Делать новое дименшиен на лету в MDX ?
Подскажите please
...
Рейтинг: 0 / 0
27.12.2004, 12:27
    #32845799
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
Up.

Люди, посоветуйте чего-нибуть :-)
...
Рейтинг: 0 / 0
27.12.2004, 13:55
    #32846023
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
McLuad

CREATE TABLE [Profile] (
[cod_Profile] [numeric](18, 0) NOT NULL ,
[cod_Article] [numeric](18, 0) NOT NULL ,
)



что у вас в этой таблице PK?
...
Рейтинг: 0 / 0
27.12.2004, 15:29
    #32846317
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
backfire McLuad

CREATE TABLE [Profile] (
[cod_Profile] [numeric](18, 0) NOT NULL ,
[cod_Article] [numeric](18, 0) NOT NULL ,
)



что у вас в этой таблице PK?

PK в данном случае составной ключ на (cod_profile, cod_article)
...
Рейтинг: 0 / 0
27.12.2004, 15:40
    #32846340
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
McLuad
PK в данном случае составной ключ на (cod_profile, cod_article)

тогда связка с таблицей фактов только по cod_article представляется мне сомнительным решением и все последующие ухищрения не приведут к "чистому" решению проблемы. Я бы пересмотрел дизайн, чтобы привести его к классике.
...
Рейтинг: 0 / 0
27.12.2004, 16:41
    #32846503
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
А может стоит денормализовать таблицу фактов и уже в неё записывать предпросчитанные значения id_profile, id_profile_by, percent_by?
Измерения для profile тогда нужны два (рrofile, profile_by).
Годится такой алгоритм. к сожалению, только для маленького числа profile.
С другой стороны, если рисуете график, эта величина должна быть небольшой.
...
Рейтинг: 0 / 0
27.12.2004, 18:51
    #32846779
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
Va1entinА может стоит денормализовать таблицу фактов и уже в неё записывать предпросчитанные значения id_profile, id_profile_by, percent_by?
Измерения для profile тогда нужны два (рrofile, profile_by).
Годится такой алгоритм. к сожалению, только для маленького числа profile.
С другой стороны, если рисуете график, эта величина должна быть небольшой.

К сожалению, не тот случай. Один артикле может быть связан со многоми профайлами. А самих артиклов вообще немеряно
...
Рейтинг: 0 / 0
27.12.2004, 19:47
    #32846823
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
McLuad
К сожалению, не тот случай. Один артикле может быть связан со многоми профайлами. А самих артиклов вообще немеряно

Так надо сделать "тот" случай, чтобы была схема "звезда" ("снежинка"). С остальным будете иметь проблемы долго и больно.
...
Рейтинг: 0 / 0
27.12.2004, 20:04
    #32846832
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
backfire McLuad
К сожалению, не тот случай. Один артикле может быть связан со многоми профайлами. А самих артиклов вообще немеряно

Так надо сделать "тот" случай, чтобы была схема "звезда" ("снежинка"). С остальным будете иметь проблемы долго и больно.

Скажем если один артикле связан с 3 профайлами, то в факт таблице получается будет 3 записи с разными Profile_id ?
Я такое сделать могу, вопрос в том, что очень много получится таких записей. К примеру 10 миллионов артиклов, в среднем связь с 5 профайлами, получается 50 милионов, а мне нужно каждый раз делать фулл update, потому что узера могут добавлять/удалять профайлы для каждого артикла за любой период, даже для исторических данных. Incremental update ne prokatit.
...
Рейтинг: 0 / 0
28.12.2004, 10:24
    #32847181
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Make Dimension "on the fly" in the MDX
Всё равно, насколько я понял, данные profile/by_profile
не зависят от article. Они связываются с article по
первому profile. Поэтому их можно рассчитать заранее.
Для какого числа article строится график?
Как они выбираются?
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Make Dimension "on the fly" in the MDX / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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