Freigeben über


Abrufen von Metadaten – Arbeiten mit Schema-Rowsets

Wenn Sie mehr Metadaten benötigen, als im ADOMD.NET Objektmodell verfügbar sind, bietet ADOMD.NET die Möglichkeit, den vollständigen XML-Bereich für Analyse (XMLA), OLE DB, OLE DB für OLAP und OLE DB für Data Mining-Schema-Rowsets abzurufen:

XML für Analysemetadaten
Die XML für Analysis-Schema-Rowsets stellen eine Methode zum Abrufen von Informationen auf niedriger Ebene zum Server bereit. Verfügbare Informationen umfassen die auf dem Server verfügbaren Datenquellen, die vom Anbieter reservierten Schlüsselwörter, die vom Anbieter unterstützten Literale und vieles mehr. Sie können sogar ein XML für das Analysis-Schema-Rowset verwenden, um alle vom Anbieter unterstützten Schema-Rowsets zu ermitteln.

OLE DB-Metadaten
Die OLE DB-Schema-Rowsets stellen eine Branchenstandardmethode zum Abrufen von Informationen aus einer Vielzahl von Anbietern bereit.

OLAP-Metadaten
Schemainformationen, die für eine analytische Datenquelle bereitgestellt werden, umfassen Datenbanken oder Kataloge, die aus der analytischen Datenquelle, Cubes und Miningmodellen in einer Datenbank verfügbar sind, Rollen, die für Cubes in der Datenquelle vorhanden sind, und vieles mehr.

Data Mining-Metadaten
Zusätzlich zu OLAP-Metadaten können Data Mining-Metadaten mithilfe von Schema-Rowsets abgerufen werden. Die verfügbaren Rowsets machen Informationen zu den verfügbaren Data Mining-Modellen in der Datenbank, den verfügbaren Miningalgorithmen, den Parametern, die der Algorithmus benötigt, Miningstrukturen und vieles mehr verfügbar.

Für jede dieser verschiedenen Schema rowsets rufen Sie Metadaten aus dem Rowset ab, indem Sie entweder einen GUID- oder XMLA-Namen mit der GetSchemaDataSet Methode des AdomdConnection Objekts übergeben.

Abrufen von Metadaten durch Übergabe von GUIDs

Die AdomdSchemaGuid Klasse enthält eine Liste von Feldern, die die Schema-Rowsets darstellen, die am häufigsten von Anbietern und analytischen Datenquellen unterstützt werden. Um allgemeine und anbieterspezifische Metadaten von einem Anbieter oder einer analytischen Datenquelle abzurufen, verwenden Sie die GUIDs, die AdomdSchemaGuid im Objekt enthalten sind, mit einer der folgenden Methoden:

Hinweis

Der ADOMD.NET Datenanbieter macht Schemainformationen über Funktionen verfügbar, die von Ihrem spezifischen Anbieter und der analytischen Datenquelle zur Verfügung gestellt werden. Jeder Anbieter und jede Datenquelle können unterschiedliche Metadaten bereitstellen.

Abrufen von Metadaten durch Übergeben von XMLA-Namen

Die folgenden Methoden verwenden als Argumente den XMLA-Schemanamen, der angibt, welche Schemainformationen zurückgegeben werden sollen, und ein Array von Einschränkungen für diese zurückgegebenen Spalten:

Jede dieser Methoden gibt eine Instanz eines DataSet-Objekts zurück, das mit den Schemainformationen aufgefüllt wird. Das DataSet-Objekt stammt aus dem System.Data-Namespace der Microsoft .NET Framework-Klassenbibliothek.

Example

Im folgenden Beispiel verwendet die GetActions-Funktion eine Verbindung, den Cubenamen, eine Koordinate und einen Koordinatentyp, ruft ein MDSCHEMA_ACTIONS Rowset ab und gibt die für die ausgewählte Koordinate verfügbaren Aktionen zurück.

//The following function can be called with the following data:
//ae.GetActions(conn, "Adventure Works","[Geography].[City]",6 );

//This would return a DataSet containing the actions available for cells
//in the Adventure Works cube on [Geography].[City].
private System.Data.DataSet GetActions(AdomdConnection Connection, string Cube, string Coordinate, int CoordinateType)
{
    //Create a restriction collection to restrict the schema information to be returned.
    AdomdRestrictionCollection restrictions= new AdomdRestrictionCollection();
    restrictions.Add("CUBE_NAME", Cube);
    restrictions.Add("COORDINATE", Coordinate);
    restrictions.Add("COORDINATE_TYPE", CoordinateType); //6 = Cell coordinate

    //Open and return a schema rowset, given the correct restictions
    return Connection.GetSchemaDataSet("MDSCHEMA_ACTIONS", restrictions);
}