1

我在“内存中”模式下创建了一个表格项目。我想每天刷新数据。有没有办法安排每天刷新数据的工作?

4

1 回答 1

1

你的选择是相当有限的atm

  • 您不能直接从门户自动化它(您可以在此处投票支持此类功能)
  • 您可以从 azure 函数触发刷新

    #r "D:\home\site\wwwroot\yourfunccatalog\bin\Microsoft.AnalysisServices.DLL"
    #r "D:\home\site\wwwroot\yourfunccatalog\bin\Microsoft.AnalysisServices.Core.DLL"
    #r "D:\home\site\wwwroot\yourfunccatalog\bin\Microsoft.AnalysisServices.Tabular.DLL"
    using System;
    
    
    public static void Run(string input, TraceWriter log)
    {
    var server = new Microsoft.AnalysisServices.Tabular.Server();
    server.Connect("Provider=MSOLAP;Data Source=asazure://[...];User ID=[...];Password=[...];Catalog=[...];Persist Security Info=True; Impersonation Level=Impersonate;");
    var model = server.Databases[0].Model;
    model.RequestRefresh(Microsoft.AnalysisServices.Tabular.RefreshType.Full);
    model.SaveChanges();
    server.Disconnect();
    }
    

您必须在运行之前上传 dll(在我的情况下为 c:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies)

xmla 脚本应该是这样的(还没有测试过!)

<Statement xmlns="urn:schemas-microsoft-com:xml-analysis">
{
  "refresh": {
    "type": "full",
    "objects": [
      {
        "database": "Your database name here"
      }
    ]
  }
}

</Statement>
  • 使用 c# 表格对象模型
于 2017-01-27T16:43:37.867 回答