XML for Analysis
XML for Analysis (XMLA) — это открытый, основанный на протоколе SOAP промышленный стандарт для доступа к многомерным и табличным данным в системах бизнес-аналитики (BI). Спецификация XMLA позволяет клиентским приложениям выполнять запросы к аналитическим серверам и получать результаты в формате XML, вне зависимости от платформы, языка программирования или производителя программного обеспечения. Разработка стандарта координируется Microsoft и Hyperion Solutions (в настоящее время — часть Oracle Corporation) в рамках консорциума XML for Analysis Council.
История и предпосылки создания
До появления XMLA каждый крупный поставщик аналитических систем (Microsoft Analysis Services, Oracle Essbase, SAP BW, IBM Cognos) использовал собственные закрытые протоколы (OLE DB for OLAP, C-API, JDBC). Это создавало жёсткую привязку клиентских приложений (например, Microsoft Excel, Tableau, QlikView) к конкретному серверу. Потребность в универсальном сетевом протоколе для анализа данных привела к сотрудничеству Microsoft и Hyperion в 2001 году. Первая публичная спецификация XMLA 1.0 была выпущена 24 апреля 2002 года.
Целью проекта была замена устаревшего COM-интерфейса OLE DB for OLAP, который не работал через брандмауэры и зависел от архитектуры Windows. XMLA, базируясь на HTTP и XML, решал задачи кроссплатформенности и прохода через сетевые экраны. Стандарт был передан в открытый доступ, однако дальнейшая разработка фактически велась Microsoft и рядом партнёров. В 2004 году была выпущена версия XMLA 1.1, которая остаётся действующей спецификацией. С 2008 года Microsoft расширяла возможности протокола в рамках собственной технологии Tabular Model, но базовая спецификация XMLA не обновлялась.
Архитектура и протокол
XMLA использует архитектуру «клиент-сервер» с передачей сообщений в формате SOAP (Simple Object Access Protocol) через протокол HTTP. Клиент отправляет запросы (XML-пакеты), сервер обрабатывает их и возвращает ответы.
Сообщения SOAP
Все взаимодействия между клиентом и сервером XMLA осуществляются через стандартные SOAP-сообщения. Структура запроса и ответа определяется специальными XML-схемами (XSD). Сервер обязан поддерживать два основных метода:
- Discover — метод для получения метаданных о доступных источниках данных, кубах, измерениях, мерах и других объектах. Позволяет клиенту «узнать» структуру аналитической модели. Выполняется с помощью запроса
DISCOVERс указанием типа запрашиваемых данных (SchemaRowset), например,MDSCHEMA_MEASURES,MDSCHEMA_DIMENSIONS,DBSCHEMA_TABLES. - Execute — метод для выполнения аналитических запросов к данным (выражения MDX или DAX) и получения результирующего набора данных. Запрос
EXECUTEсодержит команду (например,<Statement>SELECT ... FROM [Cube]</Statement>) и возвращает результирующий набор (Resultset) в формате XML.
Форматы возвращаемых данных
Результаты запросов Execute могут возвращаться в двух основных форматах:
- MDDataSet (XML Rowset) — основной формат для многомерных баз данных (OLAP-кубы). Представляет собой иерархический XML-документ, содержащий оси, срезы и ячейки с данными. Поддерживает сложные структуры с несколькими осями, измерений и иерархий.
- Tabular (Flat Rowset) — формат для табличных моделей, представленный в версиях Microsoft Analysis Services (начиная с SQL Server 2012). Представляет данные в двумерном табличном виде (строки и столбцы) в формате XML (набор строк по стандарту OLE DB). Более простой и лёгкий по сравнению с MDDataSet, что предпочтительно для табличных моделей и современных BI-инструментов.
Идентификация и привязка
Версия XMLA 1.1 не определяет стандартного механизма аутентификации — на практике используются механизмы протокола HTTP (базовая, дайджест-аутентификация, NTLM, Kerberos). Идентификация источника данных (куба или модели) в запросах обычно выполняется через строку подключения (Data Source=...; Initial Catalog=...), которая передается в заголовке SOAP-сообщения (<Envelope><Header><Attributes><PropertyList><DataSourceInfo>...).
Применение
XMLA является основным протоколом для удалённого доступа к аналитическим серверам Microsoft SQL Server Analysis Services (SSAS) во всех редакциях, включая облачную службу Azure Analysis Services (Azure AS). Большинство BI-инструментов (Power BI, Excel, Tableau, QlikSense, MicroStrategy, Looker) используют XMLA для подключения к SSAS и Azure AS для интерактивного анализа данных.
Интеграция с Power BI
Начиная с 2021 года, Microsoft сделала XMLA-конечные точки обязательными для всех рабочих нагрузок Premium-емкостей Power BI. Это позволяет администраторам и разработчикам управлять моделями Power BI через сторонние инструменты (например, Tabular Editor, DAX Studio, ALM Toolkit) с помощью протокола XMLA. Стандарт также используется для автоматизации развёртывания, резервного копирования и обновления метаданных моделей.
Управление моделями
XMLA позволяет выполнять управляющие команды DDL (Data Definition Language) — создание, удаление, изменение объектов (таблиц, мер, измерений). Команды передаются в виде XML-сценариев (например, <Alter><Object><DatabaseID>...</Object><ObjectDefinition><Cube>...). Это даёт возможность реализовывать процессы CI/CD (непрерывная интеграция и доставка) для аналитических моделей.
Критика и ограничения
Несмотря на широкое распространение, XMLA имеет ряд недостатков:
- Громоздкость XML-трафика. Каждый запрос и ответ оборачиваются в SOAP-конверт, что увеличивает объём передаваемых данных по сравнению с бинарными протоколами (например, TDS).
- Отсутствие полной спецификации. Версия XMLA 1.1 не описывает расширения, реализованные производителями (например, поддержку табличных моделей в SSAS). Реальная реализация протокола часто выходит за рамки базового стандарта.
- Зависимость от производителя. Большинство реализаций XMLA (Microsoft SSAS, Oracle Essbase, SAP HANA) являются закрытыми и проприетарными, что противоречит духу открытого стандарта.
- Сложность для веб-клиентов. Из-за своей сложности XMLA редко используется напрямую в браузерах (без промежуточных прокси-серверов).
Статус и развитие
С 2012 года разработка новых версий стандарта XMLA не ведётся. Вместо этого Microsoft и другие производители (например, SAP) перешли к поддержке собственных расширений (SSAS Tabular Protocol, REST API Azure AS, SAP HANA SQL/MDX). Тем не менее, XMLA остаётся базовым и широко поддерживаемым протоколом доступа к многомерным данным в корпоративных BI-системах. В 2024 году XMLA-конечные точки поддерживаются всеми основными версиями Microsoft Analysis Services (Multidimensional, Tabular, Azure AS) и облачной платформой Fabric Data Warehouse.
Источники
- Спецификация XML for Analysis (XMLA) версии 1.1 (2004) — Microsoft Corporation, Hyperion Solutions Corporation.
- Документация Microsoft SQL Server Analysis Services (SSAS) — раздел «XML for Analysis (XMLA)».
- Статья «XML for Analysis (XMLA) Reference» в библиотеке технической документации Microsoft.
- «Microsoft Power BI Premium — XMLA endpoints» — раздел документации Power BI (Microsoft Learn).
- «OLE DB for OLAP and XML for Analysis: A Comparison» — журнал Database Trends and Applications (2002).
- «Tabular Model Programmability for SQL Server 2012 Analysis Services» — книга (T. Klee, 2012), раздел «XMLA for Tabular Models».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →