使用 ADOMD.NET 对象模型

ADOMD.NET 提供了一个用于查看分析数据源中包含的多维数据集和从属对象的对象模型。但通过对象模型并不能获得给定分析数据源中的所有元数据。通过对象模型只可访问那些对客户端应用程序的显示而言最有用的信息,以允许用户以交互方式构造命令。由于要显示的元数据的复杂性较低,因而 ADOMD.NET 对象模型的使用较为简单。

在 ADOMD.NET 对象模型中,通过 AdomdConnection 对象可访问有关针对分析数据源定义的联机分析处理 (OLAP) 多维数据集和挖掘模型以及相关对象(如维度、命名集和挖掘算法)的信息。

检索 OLAP 元数据

每个 AdomdConnection 对象有一个 CubeDef 对象的集合,集合中的对象表示可供用户或应用程序使用的多维数据集。CubeDef 对象公开有关多维数据集以及与多维数据集相关的各种对象(如维度、关键绩效指标、度量值、命名集等)的信息。

对于旨在支持多个 OLAP 服务器或进行常规元数据显示和访问的客户端应用程序,应尽可能在其中使用 CubeDef 对象表示元数据。

注意注意

对于特定于访问接口的元数据,或用于元数据的详细显示和访问,请使用架构行集检索元数据。有关详细信息,请参阅使用 ADOMD.NET 中的架构行集

下面的示例使用 CubeDef 对象从本地服务器检索可见多维数据集及其维度:

private string RetrieveCubesAndDimensions()
{
    System.Text.StringBuilder result = new System.Text.StringBuilder();

    //Connect to the local server
    using (AdomdConnection conn = new AdomdConnection("Data Source=localhost;"))
    {
        conn.Open();

        //Loop through every cube
        foreach (CubeDef cube in conn.Cubes)
        {
            //Skip hidden cubes.
            if (cube.Name.StartsWith("$"))
                continue; 

            //Write the cube name
            result.AppendLine(cube.Name);

            //Write out all dimensions, indented by a tab.
            foreach (Dimension dim in cube.Dimensions)
            {
                result.Append("\t");
                result.AppendLine(dim.Name);
            }
        }

        //Close the connection
        conn.Close();
    }

    //Return the results
    return result.ToString();
}

检索数据挖掘元数据

每个 AdomdConnection 对象有多个提供数据源的数据挖掘功能相关信息的集合:

若要确定对服务器中的挖掘模型的查询方式,请遍历 Columns 集合。每个 MiningModelColumn 对象公开以下特征:

  • 对象是否为输入列 (IsInput)。

  • 对象是否为预测列 (IsPredictable)。

  • 与离散列关联的值 (Values)。

  • 列中数据的类型 (Type)。