Еще один пример того , как можно обрабоатывать данные EssBase, например, используя библиотеки Microsoft SQL Server AnalysisServices.
Это позволит решить следующие задачи
1) Кастомизация выгрузки для внешних информационных систем
2) Публикация данных в MsSQL с помощью CLR функции
Данное решение хорошо тем , что не зависит от нативных библиотек Oracle, и следовательно, работоспособно с минимальными настройками в любом окружении.
Ниже приведен пример кода с примечаниями.
Код, выполняющий подключение к Essbase:
using System;using Microsoft.AnalysisServices.AdomdClient;namespace EssbaseXMLA{class Program{static void Main(string[] args){connect();Console.Read();}static void connect(){Console.WriteLine(“Connecting…”);AdomdConnection cn = new AdomdConnection();cn.ConnectionString = “Data Source=http://SERVERNAME/aps/XMLA; Initial Catalog=CATALOGNAME; DataSourceInfo=\”Provider=Essbase;Data Source=DATASOURCE\”;Persist Security Info=True;User ID=USERID;Password=PASSWORD”;cn.Open();Console.WriteLine(“State=” + cn.State.ToString());CubeCollection cubes = cn.Cubes;Console.WriteLine(“Cube Count=” + cubes.Count.ToString());CubeDef cube = cubes[0];Console.WriteLine(“Cube name=” + cube.Name);Console.WriteLine(“Dimensions count=” + cubes[0].Dimensions.Count.ToString());foreach (Dimension dim in cubes[0].Dimensions){Console.WriteLine();Console.WriteLine(“Dimension = ” + dim.Name);}string mdx = “MDX QUERY“;AdomdCommand cmd = new AdomdCommand(mdx, cn);AdomdDataReader dr = cmd.ExecuteReader();while (dr.Read()){Console.WriteLine();for (int i = 0; i < dr.FieldCount; i++){Console.WriteLine(dr[i].ToString());}}dr.Close();cn.Close();cn.Dispose();}}}
Примечания
1.Параметры ConnectionString:
CATALOGNAME = Имя приложения
DATASOURCE = IP адрес
USERID = Имя пользователя для подключения к Essbase
2.Библиотека Microsoft.AnalysisServices.AdomdClient
Распространяется вместе с Microsoft SQL Server AnalysisServices.
В ФС обычно находится здесь C:\Program Files\Microsoft.NET\ADOMD.NET\100