Выгрузка данных из Essbase c помощью C#

Еще один пример того , как можно обрабоатывать данные 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