Recuperación de metadatos: trabajar con conjuntos de filas de esquema

Cuando necesite más metadatos de los que están disponibles en el modelo de objetos de ADOMD.NET, ADOMD.NET proporciona la capacidad de recuperar la gama completa de conjuntos de filas de esquema para XML for Analysis (XMLA), OLE DB, OLE DB para OLAP y OLE DB para minería de datos.

XML para metadatos de análisis
Los conjuntos de filas de esquema XML for Analysis proporcionan un método para recuperar información de bajo nivel sobre el servidor. La información disponible incluye los orígenes de datos disponibles en el servidor, las palabras clave reservadas por el proveedor, los literales admitidos por el proveedor, etc. Incluso puede usar un conjunto de filas de esquema XML for Analysis para detectar todos los conjuntos de filas de esquema admitidos por el proveedor.

Metadatos de OLE DB
Los conjuntos de filas de esquema OLE DB proporcionan un método estándar del sector para recuperar información de diversos proveedores.

Metadatos OLAP
La información de esquema proporcionada para un origen de datos analítico incluye bases de datos o catálogos disponibles en el origen de datos analíticos, cubos y modelos de minería de datos en una base de datos, roles que existen para cubos en el origen de datos, etc.

Metadatos de minería de datos
Además de los metadatos OLAP, los metadatos de minería de datos se pueden recuperar mediante conjuntos de filas de esquema. Los conjuntos de filas disponibles exponen información sobre los modelos de minería de datos disponibles en la base de datos, los algoritmos de minería de datos disponibles, los parámetros que el algoritmo requiere, las estructuras de minería de datos, etc.

Para cada uno de estos conjuntos de filas de esquema, puedes recuperar los metadatos del conjunto de filas pasando un GUID o un nombre XMLA con el método GetSchemaDataSet del objeto AdomdConnection.

Recuperación de metadatos mediante GUIDs

La AdomdSchemaGuid clase contiene una lista de campos que representan los conjuntos de filas de esquema más admitidos por proveedores y orígenes de datos analíticos. Para recuperar metadatos generales y específicos del proveedor de un proveedor o un origen de datos analíticos, use los GUID que se encuentran en el objeto AdomdSchemaGuid con uno de los siguientes métodos:

Nota:

El proveedor de datos de ADOMD.NET expone información de esquema a través de la funcionalidad disponible por su proveedor específico y el origen de datos analíticos. Cada proveedor y origen de datos pueden proporcionar metadatos diferentes.

Recuperar metadatos pasando nombres XMLA

Los métodos siguientes toman como argumentos el nombre del esquema XMLA que identifica la información de esquema que se va a devolver y una matriz de restricciones en esas columnas devueltas:

Cada uno de estos métodos devuelve una instancia de un objeto DataSet que se rellena con la información de esquema. El objeto DataSet procede del espacio de nombres System.Data de la biblioteca de clases de Microsoft .NET Framework.

Example

En el ejemplo siguiente, la función GetActions toma una conexión, el nombre del cubo, una coordenada y un tipo de coordenada, recupera un conjunto de filas de MDSCHEMA_ACTIONS y devuelve las acciones disponibles en la coordenada seleccionada.

//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);
}