powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
8 сообщений из 8, страница 1 из 1
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894634
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: очередной подопытный куб SSAS на основе MS SQL Server 2016.
В кубе есть группа мер, в которую надо добавить новые меры при помощи C# AMO.
Добавить новые столбцы в таблицу-источник данных при помощи C# AMO - не проблема. Выполнено.

А вот на их основе создать новые меры - тут и начинаются проблемы.
Если верить https://docs.microsoft.com/ru-ru/bi-reference/amo/programming-amo-olap-basic-objects#measuregroup-objects
, то для добавления новой меры достаточно указать сервер, базу данных SSAS, и куб в ней, затем нужную группу мер, и, завершить процесс, корректно указав таблицу-источник и столбец-источник:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    
    MeasureGroup mg = cube.MeasureGroups.FindByName("Internet Sales");  
    if ( mg != null)  
       mg.Drop();  
    mg = cube.MeasureGroups.Add("Internet Sales");  
    mg.StorageMode = StorageMode.Molap;  
    mg.ProcessingMode = ProcessingMode.LazyAggregations;  
    mg.Type = MeasureGroupType.Sales;  

  
    Measure meas;  
  
    meas = mg.Measures.Add("Internet Sales Amount");  
    meas.AggregateFunction = AggregationFunction.Sum;  
    meas.FormatString = "Currency";  
    meas.Source = CreateDataItem(db.DataSourceViews[0], "FactInternetSales", "SalesAmount");   


Так как пересоздавать группу мер я не хочу, то получается:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            MeasureGroup mg = OLAPCube.MeasureGroups.FindByName(comboBoxMG.Text);

            Measure meas;
            meas = mg.Measures.Add(textBox3.Text);
            meas.AggregateFunction = AggregationFunction.Sum;
            meas.FormatString = "#,##0.00;-#,##0.00";
            meas.Source = CreateDataItem(OLAPDB.DataSourceViews[0], comboBoxTables.Text, comboBoxColumns.Text);
            meas.DisplayFolder = "Имя папки";
            meas.Visible = true;

            OLAPCube.Update();
            OLAPDB.Update();
            OLAPServer.Disconnect();



Всё это проходит и выполняется без ошибок, но вот увы - новая мера в группе мер не появляется.
Проблема в коде, ДНК или в том, что не у всех партиций были добавлены новые столбцы в источники?
Что ещё очень интересно, после просмотра XMLA-кода для создания группы мер источник для неё не совпал с источником данных для партиций.
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894650
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,
не подскажу - хотя я лажу по amo Сейчас но только в режиме чтения
а ПРАКТИЧЕСКИЙ СМЫСЛ создания мер на лету ?
зачем ? в реальности
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894695
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор
DaniilSeryi,
не подскажу - хотя я лажу по amo Сейчас но только в режиме чтения
а ПРАКТИЧЕСКИЙ СМЫСЛ создания мер на лету ?
зачем ? в реальности


Чтобы куб заново не деплоить.
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894713
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

Это очень странно - чтобы не деплоть куб, вы его деплоите через c#
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894770
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо - клонируй существующую меру (чтобы не париться с установкой каждой property) на MG без партиций (т.к. всё равно они станут не валидными), там меняй id/name и тип_данных/источник (колонна естествено только из той-же таблицы что и у уже существующих в MG мер), с минимальной валидацией commit на сервер из своей AMO сессии (в принципе как указали выше VS практически тоже самое делает на заднем плане, только кликами на GUI).. ну и естественно это серьёзное структурное изменение - куб прилетит в unprocessed.
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894847
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv
имхо - клонируй существующую меру (чтобы не париться с установкой каждой property) на MG без партиций (т.к. всё равно они станут не валидными), там меняй id/name и тип_данных/источник (колонна естествено только из той-же таблицы что и у уже существующих в MG мер), с минимальной валидацией commit на сервер из своей AMO сессии (в принципе как указали выше VS практически тоже самое делает на заднем плане, только кликами на GUI).. ну и естественно это серьёзное структурное изменение - куб прилетит в unprocessed .


Ну тогда идея автора - умирает


по моему добавление вычилсимых мер при деплое проходит на ура - без перестройки куба.
Опять же а как тестировать в таком случае новую меру ? - тлоько в очевидных случаях
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894870
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор
vikkiv
имхо - клонируй существующую меру (чтобы не париться с установкой каждой property) на MG без партиций (т.к. всё равно они станут не валидными), там меняй id/name и тип_данных/источник (колонна естествено только из той-же таблицы что и у уже существующих в MG мер), с минимальной валидацией commit на сервер из своей AMO сессии (в принципе как указали выше VS практически тоже самое делает на заднем плане, только кликами на GUI).. ну и естественно это серьёзное структурное изменение - куб прилетит в unprocessed .


Ну тогда идея автора - умирает


по моему добавление вычилсимых мер при деплое проходит на ура - без перестройки куба.
Опять же а как тестировать в таком случае новую меру ? - тлоько в очевидных случаях


Речь не про Calculations - они добавляются без проблем и на лету, и ничего процессить / обрабатывать после этого не надо - уже много раз делал, а про Measure.
И да, добавление Measure должно задеть только одну группу мер - в которую добавляем меру. А тут уже достаточно обработать / отпроцессить всего одну партицию из этой группы после добавления Measure, и куб уже Partially Processed, и с ним можно работать. При условии, что в остальных группах мер обработано хотя бы по одной мере, разумеется.
Но вот не работает добавление Measure, увы. Просто нет изменений в списке мер группы.
Пойду по сложному пути - добавлю нужные столбцы в источники всех партиций группы, а не только в подопытную. А потом попробую добавить.
...
Рейтинг: 0 / 0
Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
    #39894964
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос закрыт, всё получилось.
Что сделано - обновил код источников всех партиций группы. И добавил в код две строки:
1) указание типа данных меры;
2) Команду на обновление группы мер.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
            MeasureGroup mg = OLAPCube.MeasureGroups.FindByName(comboBoxMG.Text);

            Measure meas;
            meas = mg.Measures.Add(textBox3.Text);
            meas.AggregateFunction = AggregationFunction.Sum;
            meas.FormatString = "#,##0.00;-#,##0.00";
            meas.Source = CreateDataItem(OLAPDB.DataSourceViews[0], comboBoxTables.Text, comboBoxColumns.Text);
            meas.DisplayFolder = "Имя папки";
            meas.Visible = true;
            //добавил две строки ниже
            meas.DataType = MeasureDataType.Double;
            mg.Update(UpdateOptions.ExpandFull);
            //добавил две строки выше
            OLAPCube.Update();
            OLAPDB.Update();
            OLAPServer.Disconnect();
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Не получается добавить меру в группу мер куба SSAS при помощи C# AMO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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