Аналитические системы продолжают активно развиваться. По оценкам Gartner, объем мирового рынка BI-платформ и аналитических приложений к концу этого года превысит $22,8 млрд. В последние несколько лет на первый план вышли так называемые инструменты самообслуживания, позволяющие бизнес-пользователям и аналитикам создать интерактивные информационные панели без привлечения IT-команд. При этом, компании начинают все больше смотреть на облачные аналитические инструменты, которые помогают в построении бимодальной архитектуры и добавляют гибкость ИТ-ландшафту компании.
Мы много писали здесь и здесь про наше решение SAP Analytics Cloud (SAC), которое предназначено для интерактивного и гибкого анализа данных. Сегодня же мы расскажем об еще одной возможности SAC, а именно о гибридной модели работы решения с локальными системами компании.
Почему Live-режим важен?
При использовании облачных платформ возникает вопрос о безопасности работы и передачи данных в аналитическую систему. Технология Live-подключения позволяет создавать аналитические панели средствами SAP Analytics Cloud без передачи бизнес-данных в облако, что может гарантировать сохранность данных внутри корпоративного контура компании.
Как мы писали ранее, SAС объединяет в себе 3 ключевых функциональности для работы с данными: BI, планирование и продвинутая аналитика с применением методов машинного обучения. И конечно же удобно, что это SaaS BI инструмент, не требующий локального развертывания, позволяющий создавать дашборды и анализировать информацию без установки каких-либо программ на компьютер пользователя. Работа совершается в браузере, а обновления системы происходят автоматически.
SAP Analytics Cloud позволяет подключаться к источникам в двух разных форматах, как показано на рис.1:
- В режиме импорта, когда данные загружаются в аналитическую систему и могут обновляться по расписанию. Здесь мы можем использовать полный набор возможностей системы в части визуализации и анализа данных, планирования и прогнозной аналитики.
- В режиме Live, когда загрузки данных в облако не происходит, и мы видим на дашборде актуальные данные из исходной системы на момент открытия отчета. Это подключение позволяет использовать большинство функций BI и продвинутой аналитики системы. Важно, что этот набор функций регулярно пополняется.
Рисунок 1. Доступные типы подключений
В качестве источников данных для этого режима могут выступать:
- SAP HANA (облачная, либо локальная). В этом случае SAP Analytics Cloud выводит данные из Calculation Views
- SAP BW/4HANA и ряд версий SAP BW – BW / BEx Queries
- SAP S/4HANA – CDS Views
- SAP Universe – BO Universe, созданные при помощи Information Design Tool
- SAP BPC Embedded – BPC Query (в этом случае SAP Analytics Cloud может выступать не только как средство вывода данных, но также и как интерфейс ввода данных для целей планирования в BPC)
- SAP Data Warehouse Cloud – Analytics Views
Совместимые для работы Live-подключения версии систем приведены здесь.
Как работает Live-подключение?
Live-подключение – прямое взаимодействие браузера и источника данных. Это хорошо видно из схемы на рис.2. Именно браузер является центральным компонентом для всех взаимодействий: он формирует запросы на получение данных из источника, а также метаданных из SAP Analytics Cloud через Javascript. Затем происходит объединение полученной информации в рамках отчета на странице браузера, где открыт веб-адрес тенанта SAP Analytics Cloud.
Рисунок 2. Схема Live-подключения
В основе работы такого подключения лежит механизм CORS (Cross-origin resource sharing), позволяющий запрашивать ограниченные ресурсы на веб-странице из другого домена за пределами домена, из которого был получен первый ресурс. То есть можно запрашивать данные из нескольких веб-ресурсов в рамках одной страницы браузера. При этом бизнес-данные не покидают корпоративную сеть и надёжно хранятся в существующем источнике. Браузер взаимодействует напрямую с SAP Analytics Cloud, Identity Provider (доверенный сервер авторизации) и всеми подключёнными источниками данных. Он работает с тремя типами соединений:
- Запросы Get / Post из браузера в SAP Analytics Cloud предназначены для метаданных.
- Запросы Get / Post от браузера к серверу авторизации предназначены для протокола SAML 2.
- Запросы Get / Post / Options из браузера в источники данных предназначены для бизнес-данных.
Если браузер осуществляет подключение из-за пределов защищенного домена клиента, поддерживаются стандартные механизмы безопасности (например, VPN).
SAP Analytics Cloud хранит метаданные, необходимые для формирования отчета.
Они полностью зашифрованы и передаются через https канал, а для отображения в отчётах обрабатываются в браузере с помощью javascript. При этом отдельные объекты хранят необходимую информацию для формирования запроса и построения данного отчёта.
Что такое бизнес- и метаданные
Представьте, что у вас есть таблица, в которой присутствуют наименования полей, а также сами бизнес-данные.
Названия аналитик передаются в SAP Analytics Cloud для построения отчетов, а бизнес-данные из столбцов таблицы в SAP Analytics Cloud не передаются. Давайте разберем эту ситуацию на примере данных из этой таблицы.
Метаданными в данном примере будут “ID”, “Название продукта”, “Регион”, “Сумма”. А данными — Томаты, Самара, 200, картофель, Волгоград и 350.
Настройка Live-подключения
Инструкции по настройке Live-подключения с использованием CORS для различных источников приведены в help.sap.com и доступны на русском языке, а также со скриншотами на официальном ресурсе sapanalytics.cloud, поэтому дублировать весь контент не имеет смысла.
Но для общего понимания давайте посмотрим, как это выглядит на примере подключения тенанта SAP Analytics Cloud к SAP BW/4HANA.
У подключения есть определенные требования, выделим ключевые из них, которые нам необходимы. Большинство из них связано с тем, что мы работаем через браузер (рекомендуемым является Google Chrome).
- Для корректной работы необходимо иметь подписанный SSL сертификат на стороне источника данных. Сертификат не может быть самоподписанным. Google Chrome при этом проверяет сертификаты источника данных, а также SAC. Они должны быть действительны.
При этом проверяется:
- срок действия сертификата
- кем выдан сертификат (адрес host)
- в Subject и Subject Alternative Name нужно указать DNS (не IP)
- наличие корневого сертификата (Trusted Root)
- алгоритм криптографического хэширования (sha-1 является устаревшим и не подходит)
- В системе SAP NetWeaver настроен пакет InA (/sap/bw/ina) для базовой аутентификации.
Проверить это можно, открыв в браузере следующий URL-адрес: https://<Your_ABAP_System_Host>/sap/bw/ina/GetServerInfo?sap-client=<Your_Client_ID>.
При этом вместо <Your_ABAP_System_Host> нужно указать host вашей BW системы, <Your_Client_ID> — ID клиента (манданта).
Должно появиться окно ввода регистрационных данных, после входа вы получите ответ в виде JSON.
Поэтому же адресу можно проверить действительность SSL-сертификата.
- В коде транзакции SICF должны быть активны следующие сервисы доступа к информации (Ina / BW InA):
/sap/bw/ina/GetCatalog /sap/bw/ina/GetResponse /sap/bw/ina/GetServerInfo /sap/bw/ina/ValueHelp /sap/bw/ina/BatchProcessing /sap/bw/ina/Logoff
- Настройка SameSite Cookies на стороне источника данных (рекомендуемый подход для продуктивного использования системы), либо на стороне браузера пользователя.
Это требуется, чтобы Google Chrome и другие браузеры разрешали межсайтовый доступ к файлам cookie вашего локального источника данных SAP из системы SAP Analytics Cloud. Нужно настроить свой локальный источник данных так, чтобы он создавал файлы cookie с определенными атрибутами. Без этих настроек при использовании соединения Live Data будут возникать ошибки и работа будет невозможна.
Настройка на стороне BW выполняется следующим образом:
В папке профилей ABAP-системы создайте файл rewrite.txt.
Добавьте в файл скрипт перезаписи для добавления атрибутов cookie в совместимые веб-браузеры:
SetHeader sap-ua-protocol ""
if %{HEADER:clientprotocol} stricmp http [OR]
if %{HEADER:x-forwarded-for-proto} stricmp http [OR]
if %{HEADER:forwarded} regimatch proto=http
begin
SetHeader sap-ua-protocol "http"
end
if %{HEADER:clientprotocol} stricmp https [OR]
if %{HEADER:x-forwarded-for-proto} stricmp https [OR]
if %{HEADER:forwarded} regimatch proto=https
begin
SetHeader sap-ua-protocol "https"
end
if %{HEADER:sap-ua-protocol} strcmp "" [AND]
if %{SERVER_PROTOCOL} stricmp https
begin
SetHeader sap-ua-protocol "https"
end
if %{RESPONSE_HEADER:set-cookie} !strcmp "" [AND]
if %{HEADER:sap-ua-protocol} stricmp https [AND]
if %{HEADER:user-agent} regmatch "^Mozilla" [AND]
if %{HEADER:user-agent} !regmatch "(Chrome|Chromium)/[1-6]?[0-9]\." [AND]
if %{HEADER:user-agent} !regmatch "(UCBrowser)/([0-9]|10|11|12)\." [AND]
if %{HEADER:user-agent} !regmatch "\(iP.+; CPU .*OS 12_.*\) AppleWebKit\/" [AND]
if %{HEADER:user-agent} !regmatch "\(Macintosh;.*Mac OS X 10_14.*(Version\/.* Safari.*|AppleWebKit\/[0-9\.]+.*\(KHTML, like Gecko\))$"
begin
RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*)" "$1$2; SameSite=None; Secure"
RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*; *SameSite=[a-zA-Z]+.*); SameSite=None; Secure" $1$2
RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*; *Secure.*); Secure" $1$2
End
После этого сохраните файл и зайдите в SAP GUI под учетной записью системного администратора. Перейдите в транзакцию RZ10 и отредактируйте профиль DEFAULT ABAP-системы: активируйте HTTP-перезапись и укажите файл перезаписи. Для этого добавьте следующий параметр профиля: icm/HTTP/mod_0 = PREFIX=/,FILE=$(DIR_PROFILE)/rewrite.txt
Сохраните изменения и перезапустите ABAP-систему.
Убедившись, что все основные требования соблюдены, можем переходить к настройке CORS:
cначала необходимо установить значение параметра icf/cors_enabled = 1 в транзакции RZ11 как на рис.3.
Рисунок 3. Интерфейс транзакции RZ11
После этого, добавим SAP Analytics Cloud в whitelist HTTP (транзакция UCONCOCKPIT).
Сначала установим статус Active Check для параметра Cross-Origin Resource Sharing (рис.4).
Рис. 4. Установка статуса Active Check для Cross-Origin resource sharing
Теперь нам нужно указать Origin Host – адрес тенанта SAP Analytics Cloud, с которым настраиваем подключение. Для этого переходим в режим редактирования и нажимаем To Whitelist.
Рис. 5. Указание Origin Host
И вводим значения.
В поле «Правило хоста» добавляем адрес тенанта SAP Analytics Cloud.
Также нужно указать разрешенные методы (Get, Head, Post, Options) и разрешенные заголовки:
X-CSRF-TOKEN,X-SAP-CID,AUTHORIZATION,MYSAPSSO2,X-REQUEST-WITH,SAP-REWRITEURL,SAP-URL-SESSION-ID,CONTENT-TYPE,ACCEPT-LANGUAGE
И видимые заголовки:
X-CSRF-TOKEN,SAP-REWRITEURL,SAP-URL-SESSION-ID,SAP-PERF-FESREC,SAP-SYSTEM.
Остальные параметры установите, как показано на экране ниже (рис.6).
Рисунок 6. Окно ввода данных для подключения
Теперь добавим соединение на стороне тенанта SAP Analytics Cloud. Откроем его в браузере.
В меню выбираем «Соединения», далее нажимаем на «+» для создания нового и выбираем SAP BW в разделе «Установить соединение с Live Data». Далее выбираем тип соединения – прямое, вводим имя своего хоста SAP BW, порт HTTPS и клиент, а также указываем логин и пароль для проверки соединения (рис. 7).
Рисунок 7. Настройка на стороне в SAP Analytics Cloud
После этого мы приступаем к созданию моделей данных на базе Live-подключения и переходим к созданию журналов.
В конце можем выполнять визуализацию данных из BW Queries, как на рис.8:
Рисунок 8. Вид отчета в SAP Analytics Cloud
Отдельно стоит сказать несколько слов про управление доступами и ролями пользователей при работе в режиме Live-подключения. Используя этот режим, мы опираемся на авторизации, заданные в системе-источнике. Например, когда мы подключаемся к BEx запросу на базе созданного соединения, система проверяет наше право на доступ и данные, которые этот запрос возвращает. В случае недостатка прав мы не сможем продолжить работу. Для этого в системе-источнике данных должен быть заведен пользователь, соответствующий пользователю SAP Analytics Cloud. Их мэппинг может выполняться при вводе логина-пароля при подключении к бэкенд-системе из SAP Analytics Cloud, либо при помощи SAML Single Sign-On. Этот способ, конечно же, является рекомендованным для продуктивного применения решения. Инструмент ведения пользователей может быть интегрирован с Windows ADFS.
Сегодня мы поговорили о том, какие особенности имеет режим Live-подключения SAP Analytics Cloud, а также как осуществляется его настройка. Теперь мы можем избежать дублирование настроек безопасности и копирование бизнес-данных в облако.
SAC также позволяет существующим клиентам SAP BusinessObjects настраивать подключение к созданным в компании юниверсам и, таким образом, сохранять инвестиции и не менять используемую архитектуру для модуля self-service аналитики в компании. В планах развития продукта при работе в Live-режиме: связывание нескольких источников Live между собой (например, BW с HANA), добавление вычисляемых измерений и некоторых типов расчетных показателей, улучшение производительности, а также добавление интеллектуальных функций. Для ознакомления с возможностями продукта доступен 90-дневный триал решения.
Автор — Евгений Горбунов, архитектор бизнес-решений SAP CIS