SAP BW. Инструкция по выполнению преобразования данных на стороне БД HANA (Expert Script SAP HANA/AMDP)
В настоящее время, в связи с ростом объемов данных, хранимых в БД, и необходимостью дальнейшей их обработки возникает потребность в осуществлении ускорения/оптимизации загрузки данных в системе SAP BW.
Оглавление
Часть 1. Отличие преобразований на стороне сервера приложений и сервера БД
Преобразование на стороне ABAP приложения
BW преобразование на основе HANA
Часть 2. Предпосылки к использованию и ограничения
Объекты, не поддерживающиеся в трансформации HANA
Часть 3. AMDP (ABAP Managed Database Procedure)
Часть 4. Пошаговая реализация Expert Script SAP HANA
Сортировка после выполнения Expert Script SAP HANA
Введение
В настоящее время, в связи с ростом объемов данных, хранимых в БД, и необходимостью дальнейшей их обработки возникает потребность в осуществлении ускорения/оптимизации загрузки данных в системе SAP BW. Удовлетворение указанной потребности стало возможным с выходом SAP BW 7.4 SP5, базирующейся на платформе SAP HANA, и обеспечивающей трансформацию данных в Expert Script SAP HANA, а также возможность принудительного осуществления преобразования BW в SAP HANA.
Expert Script SAP HANA представляет собой Expert Routine, которая выполняется на стороне самой БД, что, в свою очередь, позволяет использовать возможные мощности SAP HANA и реализовывать сценарии плавил, которые не могут быть осуществлены при помощи стандартных средств BW.
Часть 1. Отличие преобразований на стороне сервера приложений и сервера БД.
Для того, чтобы ответить на вопрос: почему преобразования данных с использованием SAP HANA могут осуществляться быстрее, чем стандартные преобразования, мы более подробно рассмотрим концепции, заложенные в преобразование данных на стороне сервера ABAP приложения и сервера БД SAP HANA .
Преобразование на стороне ABAP приложения.
В основе данного подхода лежит осуществление выполнения правил преобразования, программы запуска, программы завершения и эксперт рутины силами самого ABAP приложения.
Рассмотрим реализацию преобразования стандартным методом со стороны архитектуры.
Последовательность выполнения трансформации:
- Шаг1. Сервер ABAP приложения посылает запрос на сервер БД для выборки данных из источника;
- Шаг2. Сервер БД выполняет запрос и результат отправляет на Сервер ABAP приложения;
- Шаг3. Внутри сервера приложения ABAP осуществляется преобразование данных (Выполнение правил, программы запуска, программы завершения и т.д.);
- Шаг4.Результат выполнения ABAP приложения отправляется на сервер БД;
- Шаг5. Сервер БД записывает результат в цель.
Из представленного выше алгоритма видно, что преобразование данных проходит за 3 шага: передача данных из БД в приложение, обработка данных сервером приложения, передача результата выполнения в БД.
Дополнительные факты:
- Преобразование данных осуществляется силами Сервера приложений;
- Обработка данных в пакете осуществляется по записям;
- Процедура позволяет определять правила на основе полей , которые в дальнейшем будут выполняться последовательно. (т.е. изначально выполняется программа запуска, после чего осуществляется выполнение правил присвоения и т.д.).
BW преобразование на основе HANA
Данная реализация позволяет выполнить стандартное преобразование BW на сервере БД. В данном случаи вся логика преобразования BW преобразовывается в CalculationScenario и хранится в виде преобразования HANA в BW.
Посмотреть преобразование можно 2 способами:
- Транзакция RSDHATR (Рис 1.);
- Через трансформацию.
Транзакция RSDHATR
Чтобы найти нужное преобразование, необходимо в поле «Имя» через поиск (F4) указать тех. имя преобразования HANA, после чего нажать на кнопку «Просмотр». (Рис.1.)
Рис 1. Транзакция RSDHATR
После нажатия на кнопку «Просмотр» открывается описание преобразования, в котором указаны: источник данных, цель данных и сценарий преобразования. (Рис 2.).
Рис 2. Просмотр преобразования SAP HANA
Просмотр через трансформацию
Посмотреть преобразование SAP HANA можно также через трансформацию, на которой оно используется. Для этого необходимо перейти на вкладку «Дополнительная информация» => «Просмотр сгенер. преобразования HANA» (Рис 3.).
Рис 3. Переход на просмотр преобразования на основе HANA
В дальнейшем, CalcutionScenario встраивается в ColumnView, на основе которого DTP формирует SQL Select с учетом логики преобразования, что позволяет перенести данные из источника данных в цель за один шаг обработки, исключая передачу данных между сервером БД и сервером ABAP приложения. Технически данный процесс можно представить оператором «INSERT AS SELECT».
После того, как трансформация активирована, система проверяет возможность выполнения преобразования в SAP HANA. В случаи отсутствия противоречий, препятствующих выполнению преобразования BW на стороне SAP HANA, в DTP доступна возможность выбора параметра «Выполнения SAP HANA» (Рис 4.)
В данной ситуации в системе хранится два сценария выполнения программы: на сервере ABAP приложения и на сервере HANA, что в любой момент позволяет переключать между собой режимы по необходимости (Рис.4.).
Рис 4. Включение выполнения преобразования BW на основе HANA
Expert Script SAP HANA
Описанный процесс является более сложным для реализации, чем выполнение трансформации BW на HANA и не имеет возможности переключения режима обработки на ABAP, т.к. его невозможно реализовать при помощи стандартного функционала BW. Для реализации преобразования придется использовать инструменты, позволяющие моделировать SAP BW на основе HANA.
Инструменты для разработки:
- SAP HANA Studio
- SAP BW Modeling Tools for Eclipse
- ABAP Development Tools for Eclipse
Как говорилось ранее, Expert Script SAP HANA очень похож на Expert Routine ABAP, отличие между которыми заключается в процессе обработки данных. В случаи с HANA обработка пишется на SQL Script и выполняется на сервере SAP HANA попакетно, в то время как ABAP выполняет обработку построчно.
Если рассматривать Expert Script SAP HANA с технической точки зрения, то это процедура БД SAP HANA обернутая в метод ABAP класса (AMDP – ABAP Managed Database Procedure).
Создание преобразования и описание класса AMDP будет представлено более подробно в следующих частях текста.
Дополнительные факты
- ABAP считается более мощным языком чем SQL Script;
- Поддержка решения, реализованного при помощи Expert Script SAP HANA, проблематична;
- Не всегда Expert Script SAP HANA быстрее преобразований реализованных на ABAP.
На Рис 5. Схематически представлено отличие преобразования данных при помощи стандартных средств BW и с использованием возможностей HANA.
Рис 5. Отличие преобразования на стороне сервера приложений и сервера БД
Часть 2. Предпосылки к использованию и ограничения
Одним из основных аспектов разработки является производительность, но это не означает, что сразу же необходимо переносить уже существующие преобразования или реализовывать все новые через Expert Script SAP HANA.
Анализ и решение
Прежде чем реализовывать Expert Script SAP HANA, необходимо провести анализ, на основе которого принять правильное решение.
Ниже представлены соображения (тезисы), которых необходимо придерживаться во время принятия решения:
- Важные для бизнеса или времени загрузки. В данный момент необходимо понимать, насколько важна эта загрузка, соответствует ли она ограничениям, введенным в организации, либо ограничениям конкретного бизнес-процесса.
Также необходимо понимать частоту загрузки. Возможно, стоит сэкономить некоторое время, если загрузка осуществляется каждый час, но если загрузка выполняется ночью, то можно этим и пренебречь.
- Если есть необходимость оптимизации времени загрузки в уже существующих разработках, то нужно понять причину долгого выполнения преобразования.
Если большее количество времени занимает обработка ABAP или передача данных между сервером приложений и сервером БД, то в данном случае реализация преобразования через Expert Script SAP HANA будет эффективна;
В ситуации, когда большее время затрачивается на обработку БД, реализация преобразования в HANA будет не эффективна;
- Необходимо оценить сложность реализации, т.к. ABAP программа может быть реализована со сложной логикой и ее перевод в преобразование Expert Script SAP HANA может занять длительный промежуток времени;
Также необходимо учитывать, что тестирования ABAP приложения на данный момент намного проще и во время отладки можно осуществлять проверку на каждом этапе преобразования.
- Необходимо учитывать, что в роли целевых объектов в версии SAP BW 7.4 SP5 могут являться, только:
- Классические DSO (Стандартная, С оптимизированной записью)
- Расширенная DSO (ADSO)
- Семантически-разделенная DSO
- Open Hub
- Отсутствует возможность обработки ошибок, т.е. преобразование всех записей должно завершиться успешно, нет возможности обработать ошибочные записи повторно.
Объекты, не поддерживающиеся в трансформации HANA:
- Нельзя использовать запросы как инфо-провайдеры в качестве источника;
- Группы правил не поддерживаются;
- Не поддерживаются ABAP программы запуска, завершения, эксперт рутины;
- Не поддерживаются пользовательские функции в формулах;
- Near-line connections не поддерживается.
(Поддерживается с версии BW 7.5 SP04)
- Инфо-объекты с зависящими от времени атрибутами не поддерживаются как в виде источника, так и в виде цели (Поддерживается с версии BW 7.5 SP04)
- ADSO c некумулятивными показателями не поддерживается (Поддерживается с версии 7.5 SP04)
- ADSO в виде Куба не поддерживается в качестве цели
(Поддерживается с версии 7.5 SP04)
- Семантические группы не поддерживаются
- Обработка ошибок не поддерживается
(поддерживается с версии 7.5 SP04)
Рекомендации
Best Practices:
- Во время разработки Expert Script SAP HANA рекомендуется использовать сценарии SQL, предопределенные БД HANA и избегать обработок данных построчно, т.е. не использовать циклы и курсоры БД;
- По возможности максимально использовать стандартные возможности преобразования. В SAP BW доступна возможность связывать цель и источник данных несколькими трансформациями, используя infoSources.
Реализуя Expert Script SAP
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти