Abrufen von Metadaten – Arbeiten mit dem ADOMD.NET-Objektmodell
ADOMD.NET bietet ein Objektmodell zum Anzeigen der Cubes und untergeordneten Objekte, die in einer analytischen Datenquelle enthalten sind. Jedoch sind nicht alle Metadaten für eine bestimmte analytische Datenquelle über das Objektmodell verfügbar. Das Objektmodell bietet nur Zugriff auf die Informationen, die von einer Clientanwendung am sinnvollsten angezeigt werden können, damit ein Benutzer interaktiv Befehle erstellen kann. Aufgrund der geringeren Komplexität der darzustellenden Metadaten ist das ADOMD.NET-Objektmodell einfacher zu verwenden.
Im ADOMD.NET-Objektmodell bietet das AdomdConnection -Objekt Zugriff auf Informationen zu den OLAP-Cubes (Online Analytical Processing) und Miningmodellen, die für eine analytische Datenquelle definiert sind, sowie auf zugehörige Objekte wie Dimensionen, benannte Mengen und Miningalgorithmen.
Abrufen von OLAP-Metadaten
Jedes AdomdConnection -Objekt verfügt über eine Auflistung von CubeDef -Objekten, die die für den Benutzer oder die Anwendung verfügbaren Cubes darstellen. Das CubeDef -Objekt macht Informationen über den Cube sowie verschiedene Objekte verfügbar, die mit dem Cube verknüpft sind, z. B. Dimensionen, Key Performance Indicators, Measures, benannte Mengen usw.
Wenn möglich, sollten Sie das CubeDef -Objekt verwenden, um Metadaten in Clientanwendungen darzustellen, die für die Unterstützung mehrerer OLAP-Server oder für allgemeine Anzeige- und Zugriffszwecke von Metadaten konzipiert sind.
Hinweis
Bei anbieterspezifischen Metadaten oder für die Anzeige oder den Abruf detaillierter Metadaten sollten Sie Metadaten mithilfe von Schemarowsets abrufen. Weitere Informationen finden Sie unter Working with Schema Rowsets in ADOMD.NET.
Im folgenden Beispiel wird das CubeDef -Objekt verwendet, um die sichtbaren Cubes und ihre Dimensionen vom lokalen Server abzurufen:
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();
}
Abrufen von Data Mining-Metadaten
Jedes AdomdConnection Objekt verfügt über mehrere Sammlungen, die Informationen zu den Data Mining-Funktionen der Datenquelle bereitstellen:
Enthält MiningModelCollection eine Liste aller Miningmodelle in der Datenquelle.
Stellt MiningServiceCollection Informationen zu den verfügbaren Miningalgorithmen bereit.
Macht MiningStructureCollection Informationen zu den Miningstrukturen auf dem Server verfügbar.
Um zu bestimmen, wie Abfragen für ein Miningmodell auf dem Server ausgeführt werden, durchlaufen Sie die Microsoft.AnalysisServices.AdomdServer.MiningModel.Columns-Auflistung. Jedes MiningModelColumn -Objekt macht die folgenden Merkmale verfügbar:
Gibt an, ob das Objekt eine Eingabespalte (IsInput) ist.
Gibt an, ob das Objekt eine Vorhersagespalte (IsPredictable) ist.
Die einer diskreten Spalte zugeordneten Werte (Values)
Der Datentyp in der Spalte (Type).