Поделиться через


Работа с наборами строк схемы в ADOMD.NET

Если требуется больший объем метаданных, чем тот, который доступен в модели объектов ADOMD.NET, компонент ADOMD.NET имеет возможность извлекать полный спектр наборов строк схемы XML для аналитики (XMLA), OLE DB, OLE DB для OLAP и OLE DB для интеллектуального анализа данных:

  • Метаданные XML для аналитики
    Наборы строк схемы XML для аналитики предоставляют метод для получения сведений низкого уровня о сервере. Эти сведения включают имеющиеся на сервере источники данных, ключевые слова, зарезервированные поставщиком, литералы, поддерживаемые поставщиком и др. Набор строк схемы XML для аналитики можно использовать даже для обнаружения всех наборов строк схемы, поддерживаемых поставщиком.

    Дополнительные сведения см. в разделе Наборы строк схемы XML для аналитики

  • Метаданные OLE DB
    Наборы строк схемы OLE DB предоставляют стандартный для отрасли метод получения сведений от различных поставщиков.

    Дополнительные сведения см. в разделе Наборы строк схемы OLE DB

  • Метаданные OLAP
    Сведения схемы, предоставленные для источника аналитических данных, включают базы данных или каталоги, доступные из этого источника аналитических данных, кубы и модели интеллектуального анализа в базе данных, роли, существующие для кубов в источнике данных и др.

    Дополнительные сведения см. в разделе Наборы строк схемы поставщика OLE DB для OLAP

  • Метаданные интеллектуального анализа данных
    Помимо метаданных OLAP при помощи наборов строк схемы можно получать и метаданных интеллектуального анализа данных. Доступные наборы строк выдают сведения об имеющихся в базе данных моделях интеллектуального анализа данных, имеющихся алгоритмах интеллектуального анализа, требуемых алгоритмом параметрах, структурах интеллектуального анализа и др.

    Дополнительные сведения см. в разделе Наборы строк схемы интеллектуального анализа данных

Метаданные из каждого из этих различных наборов строк схемы извлекаются путем передачи идентификатора GUID или имени XMLA с методом GetSchemaDataSet объекта AdomdConnection.

Получение метаданные с помощью передачи идентификаторов GUID

Класс AdomdSchemaGuid содержит список полей, представляющих наборы строк схемы, которые обычно поддерживаются поставщиками и источниками аналитических данных. Чтобы получить от источника аналитических данных или поставщика как общие метаданные, так и метаданные, характерные для этого поставщика, с одним из следующих методов используются идентификаторы GUID, содержащиеся в объекте AdomdSchemaGuid:

ПримечаниеПримечание

Поставщик данных ADOMD.NET выдает сведения схемы через функциональность, предоставляемую конкретным поставщиком и источником аналитических данных. Каждый поставщик и источник данных могут предоставлять разные метаданные.

Получение метаданных при помощи передачи имен XMLA

Следующие методы в качестве аргументов принимают имя схемы XMLA, указывающее, сведения какой схемы должны быть возвращены, а также массив ограничений на возвращаемые столбцы:

Каждый из этих методов возвращает экземпляр объекта DataSet, заполненный сведениями схемы. Объект DataSet принадлежит к пространству имен System.Data библиотеки классов платформы Microsoft .NET Framework.

Пример

В следующем примере функция GetActions принимает соединение, имя куба, координату и тип координаты, извлекает Набор строк MDSCHEMA_ACTIONS и возвращает действия, доступные в выбранной координате.

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