SSAS: использование XMLA для получения списка баз данных и кубов
Автор: Darren Gosbell
Дата публикации оригинала: 2006-08-06
Источник: Блог Darren Gosbell
Существует не очень много примеров доступных XMLA-запросов, поэтому я подумал, что должен проработать некоторые примеры в моем блоге. Данный первый пример был подсказан вопросом, появившимся в группе новостей Olap, и показывает то, как получить список баз данных и кубов.
Получить список баз данных из Analysis Services довольно просто с помощью простого XMLA запроса, как, например, следующий:
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>DBSCHEMA_CATALOGS</RequestType>
<Restrictions />
<Properties />
</Discover>
Вы можете подумать, что получить список кубов можно с помощью другого достаточно простого XMLA-запроса, как, например, следующий:
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>MDSCHEMA_CUBES</RequestType>
<Restrictions />
<Properties />
</Discover>
Если вы запустите эту программу из среды SQL Server Management Studio (SSMS), вы можете заметить интересную вещь, которая стала причиной создания данного поста. Эта причина состоит в том, что вы получаете только список кубов для общей базы данных, несмотря на отсутствие применения ограничений для данного запроса. Итак, что здесь происходит? Ответ состоит в том, что запрос для списка кубов выполняется в контексте соединения, и это соединение используется либо для отдельной базы данных, либо для сервера, если первая база данных не была указана. Таким образом, вы можете или указывать отдельную базу данных, когда вы подсоединяетесь к SSAS, или использовать такой запрос, как следующий.
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>MDSCHEMA_CUBES</RequestType>
<Restrictions />
<Properties>
<PropertyList>
<Catalog>Adventure Works DW</Catalog>
</PropertyList>
</Properties>
</Discover>
Не сразу очевидно, какие свойства в разделе свойств XMLA запроса используются в действительности. Ниже представлена выдержка из Books Online:
Каждое свойство позволяет пользователю контролировать определенный аспект метода Discover или Execute, такой как: определение информации, необходимой для соединения с источником данных, указание формата результата запроса или указания локали, в которой должно производиться форматирование данных.
В вышеуказанном примере XMLA-элемент Catalog устанавливает свойство базы данных соединения, которое выполняет запрос MDSCHEMA_CUBES.
Для удобства отслеживания новых публикаций рекомендуем подписаться на рассылку или на канал RSS.