Открыть сервис

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). Сервер обязан поддерживать два основных метода:

  1. Discover — метод для получения метаданных о доступных источниках данных, кубах, измерениях, мерах и других объектах. Позволяет клиенту «узнать» структуру аналитической модели. Выполняется с помощью запроса DISCOVER с указанием типа запрашиваемых данных (SchemaRowset), например, MDSCHEMA_MEASURES, MDSCHEMA_DIMENSIONS, DBSCHEMA_TABLES.
  2. Execute — метод для выполнения аналитических запросов к данным (выражения MDX или DAX) и получения результирующего набора данных. Запрос EXECUTE содержит команду (например, <Statement>SELECT ... FROM [Cube]</Statement>) и возвращает результирующий набор (Resultset) в формате XML.

Форматы возвращаемых данных

Результаты запросов Execute могут возвращаться в двух основных форматах:

Идентификация и привязка

Версия 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 имеет ряд недостатков:

Статус и развитие

С 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.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →