Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
Всем Привет Вот такой вопрос, к примеру, в моем кубе есть 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 13:57 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
Up. Люди, посоветуйте чего-нибуть :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 12:27 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
McLuad CREATE TABLE [Profile] ( [cod_Profile] [numeric](18, 0) NOT NULL , [cod_Article] [numeric](18, 0) NOT NULL , ) что у вас в этой таблице PK? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 13:55 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 15:29 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
McLuad PK в данном случае составной ключ на (cod_profile, cod_article) тогда связка с таблицей фактов только по cod_article представляется мне сомнительным решением и все последующие ухищрения не приведут к "чистому" решению проблемы. Я бы пересмотрел дизайн, чтобы привести его к классике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 15:40 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
А может стоит денормализовать таблицу фактов и уже в неё записывать предпросчитанные значения id_profile, id_profile_by, percent_by? Измерения для profile тогда нужны два (рrofile, profile_by). Годится такой алгоритм. к сожалению, только для маленького числа profile. С другой стороны, если рисуете график, эта величина должна быть небольшой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 16:41 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
Va1entinА может стоит денормализовать таблицу фактов и уже в неё записывать предпросчитанные значения id_profile, id_profile_by, percent_by? Измерения для profile тогда нужны два (рrofile, profile_by). Годится такой алгоритм. к сожалению, только для маленького числа profile. С другой стороны, если рисуете график, эта величина должна быть небольшой. К сожалению, не тот случай. Один артикле может быть связан со многоми профайлами. А самих артиклов вообще немеряно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 18:51 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
McLuad К сожалению, не тот случай. Один артикле может быть связан со многоми профайлами. А самих артиклов вообще немеряно Так надо сделать "тот" случай, чтобы была схема "звезда" ("снежинка"). С остальным будете иметь проблемы долго и больно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 19:47 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
backfire McLuad К сожалению, не тот случай. Один артикле может быть связан со многоми профайлами. А самих артиклов вообще немеряно Так надо сделать "тот" случай, чтобы была схема "звезда" ("снежинка"). С остальным будете иметь проблемы долго и больно. Скажем если один артикле связан с 3 профайлами, то в факт таблице получается будет 3 записи с разными Profile_id ? Я такое сделать могу, вопрос в том, что очень много получится таких записей. К примеру 10 миллионов артиклов, в среднем связь с 5 профайлами, получается 50 милионов, а мне нужно каждый раз делать фулл update, потому что узера могут добавлять/удалять профайлы для каждого артикла за любой период, даже для исторических данных. Incremental update ne prokatit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 20:04 |
|
||
|
Make Dimension "on the fly" in the MDX
|
|||
|---|---|---|---|
|
#18+
Всё равно, насколько я понял, данные profile/by_profile не зависят от article. Они связываются с article по первому profile. Поэтому их можно рассчитать заранее. Для какого числа article строится график? Как они выбираются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 10:24 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32846023&tid=1871934]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 376ms |

| 0 / 0 |
