Работа с наборами строк схемы в 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
Сведения схемы, предоставленные для источника аналитических данных, включают базы данных или каталоги, доступные из этого источника аналитических данных, кубы и модели интеллектуального анализа в базе данных, роли, существующие для кубов в источнике данных и др.Дополнительные сведения см. в разделе Наборы строк схемы для OLAP (OLE DB)
Метаданные интеллектуального анализа данных
Помимо метаданных OLAP, при помощи наборов строк схемы можно получать и метаданные интеллектуального анализа данных. Доступные наборы строк выдают сведения об имеющихся в базе данных моделях интеллектуального анализа данных, имеющихся алгоритмах интеллектуального анализа, требуемых алгоритмом параметрах, структурах интеллектуального анализа и др.Дополнительные сведения см. в разделе Наборы строк схемы интеллектуального анализа данных
Метаданные из каждого из этих различных наборов строк схемы извлекаются путем передачи идентификатора GUID или имени XMLA с методом GetSchemaDataSet объекта AdomdConnection.
Получение метаданных с помощью передачи идентификаторов GUID
Класс AdomdSchemaGuid содержит список полей, представляющих наборы строк схемы, которые обычно поддерживаются поставщиками и источниками аналитических данных. Чтобы получить от источника аналитических данных или поставщика как общие метаданные, так и метаданные, характерные для этого поставщика, с одним из следующих методов используются идентификаторы GUID, содержащиеся в объекте AdomdSchemaGuid:
Примечание |
---|
Поставщик данных ADOMD.NET обеспечивает доступ к сведениям схемы с помощью функциональных средств, предоставляемых конкретным поставщиком и источником аналитических данных. Каждый поставщик и источник данных могут предоставлять разные метаданные. |
Получение метаданных при помощи передачи имен XMLA
Следующие методы в качестве аргументов принимают имя схемы XMLA, указывающее, сведения какой схемы должны быть возвращены, а также массив ограничений на возвращаемые столбцы:
AdomdConnection.GetSchemaDataSet(String, AdomdRestrictionCollection)
AdomdConnection.GetSchemaDataSet(String, AdomdRestrictionCollection, Boolean)
AdomdConnection.GetSchemaDataSet(String, String, AdomdRestrictionCollection)
AdomdConnection.GetSchemaDataSet(String, String, AdomdRestrictionCollection, Boolean)
Каждый из этих методов возвращает экземпляр объекта 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);
}