Меню

Введение в AMDP для интегрированного планирования

|

Статья посвящена использованию стандартных функций планирования SAP BW Integrated Planning (SAP BW IP) для внедрения пользовательских функций планирования, запрограммированных для вызова процедур из SAP HANA. Здесь показано, как настраивать ABAP Managed Database Procedure. Кроме того, автор поясняет, почему такой подход позволяет существенно повысить производительность.

Ключевое понятие

Решение SAP BW Integrated Planning (SAP BW IP) работает на базе системы SAP Business Warehouse (SAP BW), которая может использовать традиционную базу данных (Oracle или Microsoft SQL) или SAP HANA. Если SAP BW использует базу данных SAP HANA, вы можете с помощью ABAP Managed Database Procedures (AMDP) создавать функции планирования SAP BW IP, что является наиболее эффективным решением для сложных сценариев.

 

SAP BW Integrated Planning (SAP BW IP) поставляется с различными стандартными функциями планирования (например, копирование, удаление и распределение), которые применяются в простых сценариях. Однако при необходимости выполнения более сложных расчетов по планированию можно реализовать собственные функции планирования и запрограммировать их на вызов хранимых процедур SAP HANA для обеспечения максимальной производительности[1] и сложных алгоритмов. Например, компании может потребоваться выполнить перерасчет или скользящий прогноз. Обе операции предполагают обработку больших объемов данных[2] и сложных алгоритмов. Узнайте, почему данный подход обеспечивает оптимальную производительность для таких вычислений и как его настроить.

В статье рассматривается настройка тестовой таблицы в SAP HANA и тестирование скрипта SQL в консоли SQL в SAP HANA Studio. Кроме того, здесь описано использование программы RSPLS_SQL_SCRIPT_TOOL для создания ABAPкласса по шаблону. Наконец, вы узнаете, как связать класс с типом функции, создать соответствующую функцию планирования и протестировать ее в системе SAP BusinessObjects Analysis, версия для Microsoft Office.

Процедуры ABAP Managed Database Procedures (AMDP) используются для проваливания вычислений в SAP HANA. AMDP создаются как классы ABAP, выполняющие хранимые процедуры SAP HANA. В традиционных базах данных в этих целях используют функциональные модули. Таким образом, AMDP теперь являются в большинстве случаев самым эффективным решением.

Перед тем, как мы подробно рассмотрим разработку AMDP, обратимся сначала к сценарию позиционирования AMDP.

_______________________________________________________________

[1] Прим. ред.: В сценариях средней сложности используют FOX с пуш-дауном логики в HANA

[2] Прим. ред.: «Большие данные» тут в контексте пересчёта на сервере приложений. По-настоящему большие — это HANA Vora

Бизнес-сценарий и позиционирование

Несмотря на то, что с помощью стандартных функций планирования можно выполнить довольно много вычислений, часто необходимо выполнять достаточно сложные расчеты с обработкой больших объемов данных, которые с помощью стандартных функций реализовать невозможно. В этом случае требуется пользовательское решение. Например, для выполнения вычислений по планированию может потребоваться использовать подпрограмму, применить временную таблицу для решения проблемы округления или считать данные, еще не переданные в БД. Если SAP Business Warehouse (SAP BW) работает в традиционной базе данных, для этого используются функциональные модули (решение ABAP для сложной логики), но если система SAP BW работает на платформе SAP HANA, лучшим решением являются AMDP, поскольку они быстрее функциональных модулей.

Примечание

Даже при использовании SAP BW в SAP HANA можно использовать функциональные модули. Однако обработка будет выполняться на уровне приложения, а не на уровне базы данных. Это не проблема, если вычисления выполняются нечасто и предполагают обработку небольших объемов данных, но в большинстве сценариев лучшим решением являются AMDP.

 

Кроме того, функции планирования SAP BW IP выполняются по большей части в SAP HANA благодаря Planning Application Kit (PAK), т. е. здесь обработка происходит максимально быстро. PAK — это решение SAP, которое позволяет выполнять функции планирования SAP BW IP в SAP HANA. Решение PAK доступно для клиентов SAP BW IP при условии использования SAP BW на платформе SAP HANA.

Для понимания важности использования SAP HANA необходимо разобраться в концепции проваливания кода. На рис. 1 показано, как можно отправить инструкции в базу данных, где выполняются вычисления, чтобы избежать большого числа операций передачи между уровнем приложения и уровнем базы данных. В традиционных приложениях базы данных используются только как механизм хранения данных, а все расчеты выполняются на уровне приложения. В данной модели значительная часть времени выполнения приложения тратится на обработку данных сервером приложений и последующую их передачу в базу данных.

Рис. 1. Передача вычислений на уровень базы данных

При работе с SAP HANA решающим фактором обеспечения высокой производительности является проталкивание в базу данных максимального объема логики выполнения, что позволит избежать обмена данными между уровнями приложения и базы данных, а также увеличить скорость обработки. Целью при этом является выполнение всей требующей большого объема данных логики на уровне базы данных, включая выполнение комплексных функций планирования.

Однако в некоторых случаях может потребоваться протолкнуть и данные. Например, имеется комплексная логика. На выполнение расчетов требуется всего 20 минут. В этом случае, поскольку длительность операции небольшая, вычисления могут запускаться раз в месяц и их перенос в базу данных не требуется.

Таким образом, данный бизнес-сценарий предполагает большой объем часто выполняемых наборов комплексной логики для вычислений в соответствии с бизнес-требованиями к планированию.

Теперь рассмотрим компоненты по теме бизнес-сценариев и позиционирования.

Обзор необходимых компонентов

Вы работаете в нескольких пользовательских интерфейсах и используется различные компоненты в SAP HANA, SAP BW, SAP BW IP и SAP BusinessObjects Analysis, версия для Microsoft Office. Рассмотрим диаграмму компонентов для получения целостного представления (рис. 2). Я предполагаю, что у вас есть опыт работы с SAP BW, SAP HANA и SAP BW IP, поэтому в статье рассматриваются только шаги, необходимые для работы с AMDP.

На рис. 2 показаны компоненты, задействованные в сценарии. Перед тем, как описать их более подробно, обратимся к общему обзору 12 компонентов.

Рис. 2. Компоненты AMDP

  1. Инфо-куб в реальном времени — это, как правило, оптимизированная для записи сущность, в которой хранятся результаты (Примечание. AMDP можно также использовать с объектами хранилища данных, активированными для планирования [DSO]).
  2. Уровень агрегации — это ракурс инфо-куба в реальном времени, который предоставляет структуру данных, необходимую практически в каждом шаге.
  3. Запрос SAP BW — это активированный для планирования запрос, который создается на уровне агрегации. Этот запрос используется для просмотра результатов.
  4. Собственная таблица SAP HANA — это весьма полезный дополнительный элемент. Ее можно использовать для тестирования скрипта SAP HANA SQL в SAP HANA Studio
  5. Тип таблицы — это структура на основе уровня агрегации, используемая для импорта и экспорта данных.
  6. Скрипт SQL — это код, который выполняет имеющуюся задачу планирования, в данном случае он просто копирует данные из одного года в другой. Этот код также называется скриптом SQL SAP HANA, а его синтаксис уникален для SAP HANA.
  7. Пользовательские параметры — пользовательский параметр SEO_SOURCEBASED_AMDP обеспечивает разработку AMDP, а пользовательский параметр RSPLS_HDB_SUPPORT позволяет выполнять функции планирования в памяти.
  8. ABAP класс–содержит код для выполнения функции планирования в SAP HANA. После активации этот класс создает хранимую процедуру в SAP HANA.
  9. Тип функции — это шаблон для создания функций планирования. Для типов функций требуется ABAP класс.
  10. Инструмент для работы со скриптом SAP BW — это программа RSPLS_SQL_SCRIPT_TOOL для создания типов таблиц и автоматической генерации кода для ABAP класса (ее применение значительно упрощает процесс создания класса).
  11. Функция копирования — это функция планирования, созданная на основе типа функции.
  12. SAP BusinessObjects Analysis, версия для Microsoft Office — это модуль расширения Excel для выполнения заключительного теста.

На некоторые из этих компонентов использование AMDP не влияет (инфо-кубы, уровни агрегации и запросы, активированные для планирования), поэтому мы уделим им меньше внимания (предполагается, что вам знакомы основы SAP BW и SAP BW IP). Итак, начнем с подробного описания собственных таблиц SAP HANA.

Создание собственной таблицы SAP HANA для тестирования

Поскольку вычисления выполняются в SAP HANA, рассмотрим создание собственной таблицы SAP HANA. Выполните вход в SAP HANA Studio и откройте консоль SQL (пользовательский интерфейс программирования в SAP HANA SQL). Для перехода к SAP HANA Studio выберите «Пуск > SAP HANA > SAP HANA Studio > Добавить систему). Укажите собственное имя хоста и номер инстанции. Введите идентификатор пользователя и пароль. Для вызова консоли SQL щелкните правой кнопкой мыши и выберите «Открыть консоль SQL».

На рис. 3 показан образец кода для создания таблицы (ZTSQL_DATA20). Далее он заполняет новую таблицу данными по объему и количеству на январь и февраль 2014 года по продуктам.

Рис. 3. SQL-оператор для создания и заполнения таблицы в целях тестирования

Скрипт SQL, представленный на рис. 3, выполняет следующее:

  • Он удаляет таблицу ZTSQL_DATA20, чтобы вы могли выполнить данную программу несколько раз.
  • Далее он создает таблицу ZTSQL_DATA20колоночного хранения .
  • После этого он устанавливает типы данных и длину значений в ключевых полях (CALMONTH2, CALYEAR, Z_PROD), а также длину показателей (Z_AMT, Z_QUAN).
  • Затем он вставляет данные для месяцев 01 и 02 за 2014 год по продуктам P01–P05 для показателей Z_Amt и Z_Quan.
  • Далее выполняется просмотр данных в таблице.

Выполните SQL-оператор с помощью пиктограммы выполнения .

Результатом является новая таблица из 12 строк тестовых данных за 2014 год, как показано на рис. 4.

Рис. 4. Результаты выполнения скрипта SQL для создания тестовых данных

Следующим шагом после создания тестовой таблицы и ввода данных является создание типа таблицы.

Создание нового табличного типа

В этом шаге необходимо создать табличный тип, структурно эквивалентный типу на связанном уровне агрегации. Для следующих процедур с SQL скриптом требуется внутренняя структура (например, табличный тип) с существующими данными в выборке и внешняя структура с измененными данными. Для создания таблицы можно использовать ABAP-программу, например, RSPLS_SQL_SCRIPT_TOOL или SQL скрипт.

В данном случае используется ABAP-программа. При выполнении программы выберите переключатель «Создать объекты» и укажите уровень агрегации (в данном случае AMDPAL20, см. Рис. 5). Далее введите имя таблицы HANA (ZSQL20) и выполните программу.

Рис. 5. Выполнение ABAP-программы для создания типа таблицы

Создается табличный тип с возможностью просмотра из SAP HANA Studio (рис. 6). Обратите внимание на то, что поля совпадают с полями уровня агрегации (например, CALMONTH2, CALYEAR, Z_PROD, Z_AMT и Z_QUAN). Для просмотра типа таблицы в SAP HANA Studio используйте узлы слева, чтобы развернуть структуру системы до папки «Типы таблиц». Затем дважды щелкните по требуемому типу таблицы (в данном примере ZSQL20) для просмотра определения (экран справа на рис. 6).

Рис. 6. Просмотр определения типа таблицы в SAP HANA studio

Следующим шагом после создания типа таблицы является разработка скрипта SAP HANA SQL для начального тестирования и позднее в классе ABAP.

Создание скрипта SQL

Обычно AMDP используются в очень сложных сценариях, для которых требуется проводить большую работу с кодом. Однако в данном примере я использую простой код, поэтому все внимание уделяется точкам интеграции.

На рис. 7 показана программа SQL для копирования данных.

Рис. 7. Программа SQL для копирования данных из 2014 в 2015

Оформите подписку sappro и получите полный доступ к материалам SAPPRO

У вас уже есть подписка?

Войти