0

我想编写一个代码,类似于此链接底部的代码(https://azure.microsoft.com/en-us/blog/automating-azure-analysis-services-processing-with-azure-functions/ ) 在 Visual Studio 中并构建一个 DLL 文件。但是,我不想使用连接字符串,而是想使用 Azure 门户中的现有链接服务。

目标是创建一个刷新我的多维数据集的 DLL,同时使用我的 Azure 门户中已经存在的现有链接服务。

这可能吗?

谢谢。

#r "Microsoft.AnalysisServices.Tabular.DLL"

#r "Microsoft.AnalysisServices.Core.DLL"

#r "System.Configuration"

using System;

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();

                var connStr = ConfigurationManager.ConnectionStrings["AzureASConnString"].ConnectionString; // Change this to a Linked Service connection

                asSrv.Connect(connStr);

                Database db = asSrv.Databases["AWInternetSales2"];

                Model m = db.Model;

                db.Model.RequestRefresh(RefreshType.Full);     // Mark the model for refresh

                //m.RequestRefresh(RefreshType.Full);     // Mark the model for refresh

                m.Tables["Date"].RequestRefresh(RefreshType.Full);     // Mark only one table 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}"); 

}    
4

1 回答 1

0

所以我猜你正在使用数据工厂,并且你想从你的管道中处理你的分析服务模型。我看不出您的问题实际上与数据湖存储有什么关系。

若要从数据工厂(仅限 v2)触发 Azure Functions,您必须使用 Web 活动。可以将链接服务作为有效负载的一部分传递,如文档中所示。它看起来像这样:

{
"body": {
    "myMessage": "Sample",
    "linkedServices": [{
        "name": "MyService1",
        "properties": {
            ...
        }
    }]
}

但是,数据工厂中没有分析服务关联服务,至少,我没有听说过这样的事情。然而,从管道传递连接字符串似乎是个好主意。您可以将其作为管道参数传递到您的 web 请求正文中。

在管道中创建参数 在此处输入图像描述

将其添加到您的 Web 活动负载

{
    "body": {
            "AzureASConnString": "@pipeline().parameters.AzureASConnString"
}

您可以从此处描述的函数中检索此值

于 2018-02-05T12:21:49.433 回答