powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
14 сообщений из 14, страница 1 из 1
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854338
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано - есть проект куба и развёрнутый на основе проекта куб.
Создаю в проекте новый вычисляемый элемент / исправляю существующий. Теперь, чтобы добавить элемент в развёрнутый куб, куб надо развернуть заново?
Или можно внести необходимые изменения в уже развёрнутом кубе без повторного разворачивания и процессинга?
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854340
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiДано - есть проект куба и развёрнутый на основе проекта куб.
Создаю в проекте новый вычисляемый элемент / исправляю существующий. Теперь, чтобы добавить элемент в развёрнутый куб, куб надо развернуть заново?
Или можно внести необходимые изменения в уже развёрнутом кубе без повторного разворачивания и процессинга?

изменить в секции calclulate
деплой нужен
по моему в 2016 она понимает и не перебилдит куб - (т.е процессинг не нужен )
но гарантии не дам
ибо сам сейчас на 2012 - и надо изменить одну меру - я буду деплоить когда никого нет
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854394
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть бесплатная программка bidshelper, которая встраивается в меню Visual Studio. С её помощью можно, например, деплоить только MDX script.
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854518
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

не помню, если через проект, потребуется ли пересчет. но можно так:

подключиться через вижуал студию, к существующей базе, добавить элемент в СМ, сохранить (пересчета не потребуется)
аналогичное изменение в существующий проект (деплоить потом, с другими изменениями)
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854575
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот интересный вопрос в продолжение темы.
Открываю в проекте Calculations, нахожу скрипты, копирую, запускаю в SSMS, затем... А что затем - совершенно не понятно.
В созданном после выполнения этих скриптов скрипте "Alter Cube" в разделе <MdxScripts> новых записей не появилось. Обновить куб? Как?

При работе с кубом через C# добавление Calculations идёт при помощи добавления команд в MdxScript, и после добавления команды выполняется код на update скрипта и куба. При этом в свойствах куба видно, что схема куба изменилась, но при подключении к кубу через excel - подключение удачное, а вот сводная таблица данные не возвращает. Вообще.
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854663
PassedBI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StarikNavyне помню, если через проект, потребуется ли пересчет.
не потребуется. Но с bidshelper проще)
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854703
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в SSMS можно сделать Alter вдего куба через XMLA - там MDX скрипт тоже будет

DaniilSeryiВот интересный вопрос в продолжение темы.
Открываю в проекте Calculations, нахожу скрипты, копирую, запускаю в SSMS, затем... А что затем - совершенно не понятно.
В созданном после выполнения этих скриптов скрипте "Alter Cube" в разделе <MdxScripts> новых записей не появилось. Обновить куб? Как?
в C# у Server.Databases["my_SSAS_DB"].Cubes["My_AS_Cube"].DefaultMDXScript .. или MDXSCripts["MyCurrentScr"] на свойство Commands нужно делать не Add а переписывать полностью
т.е. весь блок (как string): предыдущий + новые строки

DaniilSeryiПри работе с кубом через C# добавление Calculations идёт при помощи добавления команд в MdxScript, и после добавления команды выполняется код на update скрипта и куба. При этом в свойствах куба видно, что схема куба изменилась, но при подключении к кубу через excel - подключение удачное, а вот сводная таблица данные не возвращает. Вообще.
открой и посмотри что там - записались-ли твои изменения, элементарная проверка ведь?
можно и пробел забыть, точку с запятой, перенос строки, да всё что угодно..
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854762
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivв C# у Server.Databases["my_SSAS_DB"].Cubes["My_AS_Cube"].DefaultMDXScript .. или MDXSCripts["MyCurrentScr"] на свойство Commands нужно делать не Add а переписывать полностью
т.е. весь блок (как string): предыдущий + новые строки

То есть?
Просто вот так вот сделать нельзя?
Код: c#
1.
2.
3.
4.
5.
6.
Command NC = new Command();
NC.Text = "CREATE MEMBER CURRENTCUBE.[Measures].[НоваяМера] AS Round(Divide([Measures].[СтараяМера1], [Measures].[СтараяМера2], \" - 1\"),2),FORMAT_STRING = \"#,##0.0000;-#,##0.0000\",NON_EMPTY_BEHAVIOR = { [СтараяМера1] }, VISIBLE = 1 ,  ASSOCIATED_MEASURE_GROUP = 'ГруппаМер1';";
MDXSCriptObject.Commands.Add(NC);
MDXSCriptObject.Update();
CubeObject.Update();
break;



Надо будет извращаться с массивом команд из MDX-скрипта, чтобы их сначала запомнить, потом зачистить, а затем заново создать с добавлением новой команды? Абзац...

vikkivоткрой и посмотри что там - записались-ли твои изменения, элементарная проверка ведь?
можно и пробел забыть, точку с запятой, перенос строки, да всё что угодно..

Да нету их там, в том-то и ж...
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854767
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

А проблема в том, что данных не было вообще, даже по тем мерам, которые не рассчитывались, а брались из источника данных напрямую.
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854806
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

начинай с малого, проверь чтобы там "calculate;" осталось
(хотя зависит конечно от нюансов проекта - как агрегации работают)

попробуй сначала малый тэстовый - добавить несколько расчётных мер в конце.

а так да, я текстовые маркеры держу в скрипте по которым точка вхождения определяется
(т.к. последовательность декларирования мер часто важна, как минимум для наглядности),
там поиском после определения координаты начала и конца скрипта (стринговый subset)
бью MDXScript на части (начало{0..х}, конец{y..end})
в середине провожу операции:замену/добавления и т.д., собираю начало+середина+конец.
вот PowerShell пример (чтобы не компилировать .NET C#/VB):
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using assembly Microsoft.Analysisservices
cls;$i="my_ssas_svr\my_ssas_inst";$b="my_ssas_db";$n="`r`n"#new line
$s=new-object Microsoft.Analysisservices.Server
$s.Connect($i);$d=$s.Databases[$b];$c=$d.Cubes[0]
$m=$c.DefaultMdxScript;$t=$m.commands.Text
$t=$t +$n+ "create calculated member currentcube.[Measures].[my_test1] as 1;"+ $n +"create calculated member currentcube.[Measures].[my_test2] as 2;"
#$m.Commands[0].Text
$m.Commands[0].Text=$t
#$m.Commands[0].Text
$d.Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull,[Microsoft.AnalysisServices.UpdateMode]::Update)
#$m.Commands[0].Text
$s.Disconnect();Remove-Variable * -ea 0;$Error.Clear()
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854820
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivDaniilSeryi,

начинай с малого, проверь чтобы там "calculate;" осталось
(хотя зависит конечно от нюансов проекта - как агрегации работают)

попробуй сначала малый тэстовый - добавить несколько расчётных мер в конце.

а так да, я текстовые маркеры держу в скрипте по которым точка вхождения определяется
(т.к. последовательность декларирования мер часто важна, как минимум для наглядности),
там поиском после определения координаты начала и конца скрипта (стринговый subset)
бью MDXScript на части (начало{0..х}, конец{y..end})
в середине провожу операции:замену/добавления и т.д., собираю начало+середина+конец.
вот PowerShell пример (чтобы не компилировать .NET C#/VB):
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using assembly Microsoft.Analysisservices
cls;$i="my_ssas_svr\my_ssas_inst";$b="my_ssas_db";$n="`r`n"#new line
$s=new-object Microsoft.Analysisservices.Server
$s.Connect($i);$d=$s.Databases[$b];$c=$d.Cubes[0]
$m=$c.DefaultMdxScript;$t=$m.commands.Text
$t=$t +$n+ "create calculated member currentcube.[Measures].[my_test1] as 1;"+ $n +"create calculated member currentcube.[Measures].[my_test2] as 2;"
#$m.Commands[0].Text
$m.Commands[0].Text=$t
#$m.Commands[0].Text
$d.Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull,[Microsoft.AnalysisServices.UpdateMode]::Update)
#$m.Commands[0].Text
$s.Disconnect();Remove-Variable * -ea 0;$Error.Clear()



Идею понял.
А после выполнения скрипта с кубом что-то делать надо дополнительно (как-то обрабатывать / иное)?
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39854825
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

изменения в скрипте не требуют обработки физических мер/измерений/агрегаций

у расчётной {FormulaEngine / Calculated Members} части очень короткий кэш,
практически всё на лету/во время выполнения запроса

максимум это разобраться с текущими сессиями,
чтобы пользователи работали с новой версией, а не из их локального кэша

тут уже были ветки в которых давались списки изменений после
которых кубы требуют обработки, в основном это структурные изменения
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39855073
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё прошло отлично. Какое же удовольствие написать несколько строк кода, выполнить его, и понять, что всё работает как надо, и не нужно заново деплоить тестовый куб...

Теперь следующие два вопроса -
1) как без повторного развёртывания куба откорректировать источник данных, а то в запросах-источниках новые поля появились?
2) Партиции группы мер придётся менять и обрабатывать после добавления новых полей в источнике данных в любом случае?
...
Рейтинг: 0 / 0
Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
    #39855088
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

1) никак
2) да
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как в развёрнутом кубе исправить вычисляемую меру? И где её искать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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