0

我以前在这里提出过一个话题,但有人告诉我,这可能是一个更好的地方来发布我的问题。我想知道是否可以通过 C# 查询 Azure 分析服务中的表。我将在 Azure Functions 中运行 C# 程序。我试图按照此示例进行操作,但是当我尝试运行此代码时,我不确定如何在 Azure 分析服务中引用我的表。

我的表的名称是 Trans Legacy,当我尝试运行一个简单的 SQL 命令时:

SELECT * FROM [Trans Legacy]

我得到:

错误:用户“username”无权访问引用的挖掘模型“Legacy Trans”,或者对象不存在。

我不确定这是否可行,或者我是否正确引用了表格。

谢谢你。

编辑:这是我的代码

/*
This function will create a partition of the fact tables that will contain the current month's data
*/
#r "Microsoft.AnalysisServices.Tabular.DLL"
#r "Microsoft.AnalysisServices.Core.DLL"
#r "Microsoft.AnalysisServices.AdomdClient.dll"
#r "System.Configuration"
using System;
using System.Configuration;
using Microsoft.AnalysisServices.Tabular;
using Microsoft.AnalysisServices.AdomdClient;

public static void Run(string input, TraceWriter log)
{
    log.Info($"C# manually triggered function called with input: {input}");

   var connStr = ConfigurationManager.ConnectionStrings["AAS"].ConnectionString;
   AdomdConnection conn = new AdomdConnection(connStr);
   conn.Open();
   string commandText = @"SELECT 
   year(max(dates)) AS year,
   month(max(dates)) as month
   FROM [Legacy Trans]";
   AdomdCommand cmd = new AdomdCommand(commandText, conn);
   AdomdDataReader dr = cmd.ExecuteReader();
       while (dr.Read())
   {
       Console.WriteLine(Convert.ToString(dr[0]));
   }
   dr.Close();
   conn.Close();
 }    

我正在使用的ddls如下:

  1. Microsoft.AnalysisServices.Core.DLL - 版本。14.0.800.117
  2. Microsoft.AnalysisServices.Tabular.DLL - 版本 14.0.800.117
  3. Microsoft.AnalysisServices.AdomdClient.dll - 版本 14.0.801.241
4

1 回答 1

0

@Joel,我认为您正在为 Azure Aanalysis Services 使用旧版本的客户端库。这些必须是 15.x 版本。让我知道这个是否奏效。我现在需要做类似的事情并进行研究。

请参阅以下链接以下载客户端库 - https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-data-providers

有关类似问题,请参阅以下链接 - 使用 ADOMD.NET 连接到 Azure 分析时出现连接字符串错误

于 2018-04-05T19:01:31.957 回答