|
|
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. - есть метрика Revenue, гранулярность день/арена - есть метрики DisplayAds, VideoAds, гранулярность день/арена/игра/домен - хочется сделать метрику ModeledRevenue c гранулярностью день/арена/игра/домен - сначала надо вычислить для арена/день RevenuePerRequest = Revenue / (DisplayAds + VideoAds) - затем для день/арена/игра/домен ModeledRevenue = (DisplayAds + VideoAds) * RevenuePerRequest сделал вот такое Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. работает, но не совсем: - если выбрать в качестве измерений дату, арену, то разбивка по игре, домену тоже работает - если выбрать в качестве измерений только игру, то ничего не работает - в любом случае Totals'ы не работают помогите пожалуйста куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2018, 00:57 |
|
||
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
сделал фэйковые меры в measure group и все поехало. CREATE MEMBER CURRENTCUBE.[Measures].[Test Rev Per Req] AS NULL; CREATE MEMBER CURRENTCUBE.[Measures].[Test Modeled Revenue] AS NULL; SCOPE([Dim Calendar].[Calendar YQMD].[Date].Members, [Dim Arena].[Arena Name] .[Arena Name] .Members); SCOPE([Measures].[Test Revenue Per Request]); THIS = IIF([Measures].[Display Ads] + [Measures].[Video Ads] > 0, ([Measures].[Revenue]) / ([Measures].[Display Ads] + [Measures].[Video Ads]), NULL); END SCOPE; SCOPE([Measures].[Test Modeled Revenue], [Dim Domain] .[Domain Name] .[Domain Name].Members, [Dim Content].[Content Name] .[Content Name] .Members); THIS = ([Measures].[Display Ads] + [Measures].[Video Ads]) * ([Measures].[Test Revenue Per Request], ROOT([Dim Content]), ROOT([Dim Domain])); END SCOPE; END SCOPE; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2018, 02:02 |
|
||
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
churupaha, Потому что вычисляемые меры сами собой не агрегируются. Поэтому либо писать для них в скрипте агрегацию, либо, как вы сделали, создавать фейковые меры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2018, 18:07 |
|
||
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
bideveloper, а вы не подскажете, почему подобное может тупить? верно ли я понимаю, что даже в случае если scope assignment применен к реальным мерам , т. е. "переписываю" реальные меры, то как такового переписывания не происходит, просто ассайнится формула и при обращении вычисляется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 18:36 |
|
||
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
churupahaДоброго времени суток. - есть метрика Revenue, гранулярность день/арена - есть метрики DisplayAds, VideoAds, гранулярность день/арена/игра/домен - хочется сделать метрику ModeledRevenue c гранулярностью день/арена/игра/домен - сначала надо вычислить для арена/день RevenuePerRequest = Revenue / (DisplayAds + VideoAds) - затем для день/арена/игра/домен ModeledRevenue = (DisplayAds + VideoAds) * RevenuePerRequest сделал вот такое Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Вместо Код: sql 1. 2. 3. 4. 5. попробуйте так - сначала идет scope для "Test Revenue Per Request", а затем за ним независимый scope для "Test Modeled Revenue" Код: sql 1. 2. 3. 4. 5. 6. 7. вдруг быстрее пойдет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 21:46 |
|
||
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, таоке ощущение, что примеры выше обрабатываются движком так: строится произведение множеств значений атрибутов (полное, даже то, чего нет в таблицах фактов) и оно вычисляет для всех. в итоге переписал так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Всё летает по щелчку мышки. Получается сейчас он рассчитывает только для того что есть в таблице фактов в зависимости от контекста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 19:01 |
|
||
|
рассчеты в scoped assignment
|
|||
|---|---|---|---|
|
#18+
churupahaAndy_OLAP, таоке ощущение, что примеры выше обрабатываются движком так: строится произведение множеств значений атрибутов (полное, даже то, чего нет в таблицах фактов) и оно вычисляет для всех Для scope поверх scope так и есть. churupahaВсё летает по щелчку мышки. Получается сейчас он рассчитывает только для того что есть в таблице фактов в зависимости от контекста. В лучших традициях мудрого еврея из Лениграда Моши Пасуманского. Поздравляю, коллега, Вы стали гуру оптимизации :) Таки кроме шуток - здорово, что смогли переписать просто и наглядно. За это Вам спасибо скажут те, кто придет Вам на смену в этом проекте через пару-тройку лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 18:53 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=39617763&tid=1857939]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 496ms |

| 0 / 0 |

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