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)。