Работа с наборами строк схемы в 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:
AdomdConnection..::..GetSchemaDataSet(Guid, array<Object>[]()[][])
AdomdConnection..::..GetSchemaDataSet(Guid, array<Object>[]()[][], Boolean)
Примечание |
---|
Поставщик данных 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);
}