【问题标题】:Accessing SSAS cubes using WCF data services使用 WCF 数据服务访问 SSAS 多维数据集
【发布时间】:2011-12-12 05:34:14
【问题描述】:

我有一个要求,我需要从 SSAS 多维数据集检索数据并将其发送到 OData。怎么可能呢?任何帮助将不胜感激。任何指向示例代码的指针也将不胜感激。

感谢和问候,

文卡特什。 S

【问题讨论】:

    标签: ssas odata wcf-data-services


    【解决方案1】:

    您可以使用 ADOMD.Net 执行查询并使用 wcf 发送结果。下面是我常用的类。

    class MDXQueryEngine : IMDXQueryEngine
    {
        private readonly string _serverName;
        private readonly string _initalCatalog;
    
        public MDXQueryEngine(string serverName, string initalCatalog)
        {
            _serverName = serverName;
            _initalCatalog = initalCatalog;
        }
    
        public TResult Execute<TResult>(MDXQuery query, Func<IDataReader, TResult> work)
        {
            var connectionString = string.Format("Data Source={0}; Initial Catalog={1}", _serverName, _initalCatalog);
            TResult result;
    
            using (var conn = new AdomdConnection(connectionString))
            {
                conn.Open();
                using(var cmd =  conn.CreateCommand())
                {
                    cmd.CommandText = query.Expression;
                    using (var reader = cmd.ExecuteReader())
                    {
                        result = work(reader);
                    }
                }
            }
    
            return result;
        }
    }
    

    【讨论】:

    • 嗨,埃里克,你能详细说明你的答案吗?我是整个 MDXQuery 世界的新手,理想情况下,您能否提供一个请求执行和填充模型的示例。
    • 只是补充一点,理想情况下,我会寻找与 EF 集成的解决方案。假设我有一个模型结构,并且我定义了一个基于模型的查询。一个简单的示例就可以了。
    【解决方案2】:

    您可以使用 LINQ 和 ADO.NET Entity Framework 查询 SSAS 多维数据集。 您将需要 SSAS 实体框架提供程序才能做到这一点: http://agiledesignllc.com/products

    此选项使构建 WCF 数据服务变得简单而简单。

    【讨论】:

      【解决方案3】:

      我假设它是 SSAS 多维数据集。不确定具体的框架可以做到这一点。 但一种可能的解决方案: 使用存储过程包装多维数据集 (MDX)。 (从 SP 使用 MDX 访问 SSAS) 您可以创建 WCF 数据服务,添加 EM 并为 EM 指定存储过程。您应该能够将它们公开为 oData。

      【讨论】:

      • 更多关于如何通过存储过程访问MDX:您可以使用openquery:SELECT * FROM OPENQUERY(linked_server_olap,mdx_query)
      • 感谢您的快速回复。我更多的是从 WCF 数据提供者的角度来看。是写自定义提供者还是反射提供者直接获取底层数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多