API отдыха для обновления куба Azure SSAS - PullRequest
0 голосов
/ 22 ноября 2018

В настоящее время я пытаюсь создать API отдыха для обновления куба SSAS в Azure.Я прошел все шаги из этой ссылки .Затем я использую этот код для обновления Cube1:

#r "Microsoft.AnalysisServices.Tabular.DLL"
#r "Microsoft.AnalysisServices.Core.DLL"
#r "System.Configuration"

using System; 
using System.Security; 
using System.Security.Principal; 
using System.Configuration; 
using Microsoft.AnalysisServices.Tabular;

public static void Run(TimerInfo myTimer, TraceWriter log) 
{
    log.Info($"C# Timer trigger function started at: DateTime.Now}");    
    // try  
    // {
    Microsoft.AnalysisServices.Tabular.Server asSrv = new Microsoft.AnalysisServices.Tabular.Server();

    log.Info("Log1");

    var connStr = "Provider=MSOLAP;Data Source=asazure://serveraddress; Initial Catalog=Cube1;User ID=*****;Password=*****"; 
    log.Info("Log2");

    asSrv.Connect(connStr);        

    log.Info("Log3");   

    Database db = asSrv.Databases["Cube1"]; 
    log.Info("Log4");

    Model m = db.Model; 
    m.RequestRefresh(RefreshType.Full);     // Mark the model for refresh
    db.Model.SaveChanges();     //commit  which will execute the refresh
    asSrv.Disconnect();
    // }
    // catch (Exception e)
    // {
    //     log.Info($"C# Timer trigger function exception: {e.ToString()}");
    // }

    log.Info($"C# Timer trigger function finished at: {DateTime.Now}"); 
}

Обычно все должно быть в порядке, но вот мое сообщение об ошибке:

Не удалось загрузить тип 'System.Security.Principal.WindowsImpersonationContext 'from Assembly' mscorlib, Версия = 4.0.0.0, Культура = Нейтральный, PublicKeyToken = *****

Любая идея, чтобы решить эту проблему?

Спасибомного.

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

Обратите внимание, что для служб аналитики Azure доступен REST API.

Вы можете найти его здесь https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-async-refresh

Чтобы использовать его просто

  1. СоздатьПринципал службы Azure AD (приложение)
  2. Добавьте его в качестве администратора на сервер
  3. Получите токен для этого субъекта службы для ресурса https://*.asazure.windows.net
  4. Отправьте POST-запрос на

    https://rollout.asazure.windows.net/servers/serverName/models/resource/refresh

с корпусом

{
  "Type": "Full",
  "CommitMode": "transactional",
  "MaxParallelism": 2,
  "RetryCount": 2,
  "Objects": [
    {
        "table": "DimCustomer",
        "partition": "DimCustomer"
    },
    {
        "table": "DimDate"
    }
  ]
}

Для подробного описания проверьте

https://marczak.io/posts/2019/06/logic-apps-refresh-analysis-services/

0 голосов
/ 22 ноября 2018

Похоже, вам не хватает ссылки на пакет nuget System.Security.Principal

#r "System.Security.Principal"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...