среда, 24 января 2018 г.

Транзакция SE14 : утилита базы данных. Дополнение.

Ссылка на статью
В 2013 году я опубликовал пост "Транзакция SE14 : утилита базы данных", в которой описал основные моменты по использованию этой транзакции.

Как вы помните, в SAP системе существует два словаря:
  • ABAP Dictionary на уровне севера приложений,
  • Database Dictionary на уровне базы данных.

Объект (таблица, индекс), созданный по всем правилам разработки в SAP системе, должен существовать в обоих словарях (рис 1).

Рис. 1. Два словаря системы.

Давайте спустимся в кроличью нору немного глубже. :)

Когда я рассказывал про SAP Program buffer на уровне сервера приложений SAP, я упоминал про ABAP loads, которые генерируются для каждой ABAP программы и запускаются ABAP процессором в рабочих процессах инстанции. Для таблиц ситуация похожая. Для каждого объекта ABAP Dictionary (таблицы/домена/структуры и т.п.) существует динамический объект (Runtime object), который генерируется на основе записи из SAP словаря, и содержит техническую информацию об объекте. ABAP программа работает с элементами ABAP словаря не напрямую, а через динамические объекты.

Динамический объект генерируется автоматически при активации (транзакция SE11: ABAP словарь) новой таблицы или внесении изменений в существующую. Динамический объект можно просмотреть, если в транзакции SE11 выбрать пункт меню "Утилиты -> Динамический объект -> Просмотреть" (рис. 2).

Рис. 2. Просмотр динамического объекта для таблицы.

Динамические объекты, которые являются активными в текущий момент времени, отображаются в виде двух частей (рис. 3):
  • заголовок (хранится в таблице DDNTT),
  • описание полей (содержится в таблице DDNTF).

Рис. 3. Пример динамического объекта для таблицы T000.

Таблицы, в которых хранятся активные динамические объекты, существуют только на уровне базы данных и их нет в ABAP Dictionary. Поэтому посмотреть их структуру можно только в транзакции SE14 или на уровне базы данных. А для просмотра содержимого можно воспользоваться функциональным модулем DD_SHOW_NAMETAB (транзакция SE37). При обновлении объектов через транспортные запросы используется аналогичная пара таблиц для временного хранения неактивных объектов ABAP словаря - DDXTT и DDXTF.

Для того, чтобы проверить корректность динамического объекта, то есть соответствие его активному объекту ABAP словаря, необходимо в SE11 или SE14 выбрать пункт меню "Утилиты -> Динамический объект -> Проверить" (рис. 2). Результатом проверки будет окно вида (рис. 4).

Рис. 4. Результаты проверки динамического объекта.

Вернемся обратно к основной теме.

Почему я всё это рассказал? А потому что объект в Database Dictionary создается на основе динамического объекта (Runtime object). То есть только для активного объекта ABAP словаря, который прошёл все проверки на уровне сервера приложений SAP. И, если мы хотим проверить объект базы данных, выбрав в SE11 пункт меню "Утилиты -> Объект базы данных -> Проверить" (рис. 5), то будет произведена сверка объекта из Database Dictionary и динамического объекта на уровне сервера приложений SAP.

Рис. 5. Проверка объекта базы данных.

Таким образом, можно отобразить взаимосвязь объектов следующим образом (рис. 6).

Рис. 6. Работа с объектами в словарях данных системы SAP.

Иногда во всей этой отлаженной машине возникают коллизии. В основном, при изменении объектов ABAP словаря - перенос транспортных запросов, импорт пакетов обновлений и так далее.

Хочу рассказать историю, которая произошла у меня на проекте в канун последнего Нового Года. Разработчик расширил таблицу на одно поле в системе разработки. Так как тестовой системы временно не было (тут можно вспомнить о важности тестовой системы), было принято решение импортировать запрос с изменениями в продуктивную систему перед новогодними каникулами. При импорте запроса разработчик не учёл, что за время работы с данной функциональностью в системе, таблица выросла на 200 миллионов записей (как у классика: за время в пути собачка могла подрасти). В итоге, импорт запроса проходил успешно. Активация изменений в таблице на уровне ABAP словаря тоже выполнялась успешно. Изменённый динамический объект генерировался, а вот дальше происходил сбой. Таблица на уровне базы данных упрямо не хотела адаптировать изменения - добавлять новое поле.

Что же может помочь при решении проблем с объектами ABAP словаря?

Во-первых, два инструмента - транзакции SE11 и SE14, которые можно использовать для локализации проблемы. Необходимо проверить статусы объекта на уровне всех словарей: динамический объект, таблицу на уровне базы данных. Нет ли где несоответствий и ошибок. При работе системы с некорректным динамическим объектом возникают дампы вида DDIC_TYPE_INCONSISTENCY, DDIC_TYPELENG_INCONSISTENT, DDIC_TYPE_REF_ACCESS_ERROR, TYPELOAD_NEW_VERSION и т.п.

Во вторых, при проблемах на уровне базы данных: для создания отсутствующих объектов или активации изменений на уровне базы данных необходимо использовать транзакцию SE14 (первый пост про транзакцию SE14).

В-третьих, при коллизиях с динамическим объектом можно попробовать удалить его (то есть записи из таблиц DDNTT и DDNTF) через функциональный модуль DD_NAMETAB_DELETE (транзакция SE37). После этого динамический объект можно попробовать заново сгенерировать через активацию таблицы в транзакции SE11.

Ну и наконец, при проблемах с объектом базы данных, когда объект ABAP словаря и динамический объект консистентны, а объект базы данных не проходит проверку, можно осторожно выполнить операцию пересоздания динамического объекта (Runtime object), при этом взяв в качестве источника данных - таблицу на уровне базы данных. Напоминаю, что обычно для генерации динамического объекта используется объект ABAP словаря.
Для пересоздания необходимо войти в транзакцию SE14 в 000 манданте под пользователем DDIC. Задать необходимую таблицу и выбрать пункт меню "Таблица -> Реконструировать" или "Table -> Reconstruct" (рис. 7).

Рис. 7. Инициирование пересоздание динамического объекта из таблицы на уровне базы данных.

Так как после этой операции динамический объект скорее всего будет не соответствовать объекту в ABAP словаре, обязательно в SE11 активировать таблицу ещё раз, приведя в соответствие динамический объект и объект ABAP словаря.

Так же стоит иметь ввиду, что во время пересоздания объекта с данными на уровне базы данных, используется пространство в табличном пространстве PSAPUNDO (или PSAPROLL). А при пересоздании индекса для таблицы - пространство в табличном пространстве PSAPTEMP. При внесении изменений в большие таблицы имейте это в виду.

Возвращаясь к моей новогодней истории, я потратил 2 дня на решение проблемы. Изначально импорт и активация таблицы не произошли корректно из-за недостаточного места в PSAPROLL, а потом, после 3-4 автоматических попыток адаптировать таблицу на уровне базы данных, система уже не реагировала на несоответствия между словарями. Пришлось пересоздать динамический объект указанным выше способом. Расширить место во всех необходимых табличных пространствах, включая табличные пространства, в которых хранилась сама таблица и её индексы, и запустить процесс адаптации таблицы и её индексов в ручном режиме через SE14. 2 дня были потрачены из-за длительности обработки таблицы с таким количеством записей.

После решения всех проблем, обязательно проверьте динамический объект и объект базы данных через соответствующие пункты меню в SE11/SE14.

Полезные SAP ноты на данную тему:


Автор: Шиболов Вячеслав Анатольевич


пятница, 19 января 2018 г.

SAP Download Manager 3.1.1

Ссылка на статью
В ноябре 2017 года в очередной раз обновилась утилита для скачивания дистрибутивов программных продуктов SAP и обновлений для них. Последняя версия на данный момент это 3.1.1.

Для скачивания утилиты самой утилиты не требуется. :) Скачивание архива происходит напрямую по нажатию на номер архива (рис. 1).

Рис. 1. Скачивание новой версии SAP Download Manager.

В загруженном zip-архиве находится jar-файл с утилитой. Как и в предыдущей версии, про которую я писал в этом посте, процесса установки нет, а вся программа находится в одном файле, который одинаково работает на Windows/Mac OS/Linux и т.п.

При первом запуске инициируется начальный процесс настройки. Сразу бросается в глаза новый значок: привет облачным технологиям (рис. 2).

Рис. 2. Запуск начальной настройки утилиты.

На следующем экране указываем настройки соединения с порталом: адрес, S-пользователь и пароль. Стоит отметить, что адрес портала по-умолчанию в новой версии стоит некорректный - https://tech.support.sap.com (рис. 3). Необходимо указать, как раньше, - https://service.sap.com (рис. 4).

Рис. 3. Экран настройки соединения SAP Download Manager 3.1.1.

Рис. 4. Экран настройки соединения SAP Download Manager 2.1.143.

Далее, как обычно, настраивается целевая директория для хранения скаченных файлов (рис. 5).

Рис. 5. Настройка целевой директории.

Основной экран утилиты после смены основного номера версии претерпел явные изменения, прежде всего в дизайне (рис. 6). Так же стоит отметить появление на панели новой кнопки "Download new version SAP Download Manager". Эта кнопка становится активной, если на SAP портале появляется новая версия утилиты. И теперь обновить утилиту можно будет прямо из основного экрана программы.

Рис. 6. Основной экран утилиты SAP Download Manager.

Дизайн мне понравился. Единственное, что сильно бросается в глаза, как инородный элемент, это новая иконка программы. Ну мы не дизайнеры, привыкнем. :)

Еще одно нововведение касается меню "Help". Помимо классического пункта, нажав который можно увидеть номер текущей версии программы (рис. 7), появился пункт "SAP Download Manager online help" (рис. 8).

Рис. 7. Просмотр текущей версии утилиты.

Рис. 8. Ссылка на подробную документацию по утилите.

Открыв страницу по данной ссылке, можно найти подробную документацию по установке, настройке и работе с SAP Download Manager с подбором SAP нот в конце.

Дополнительно в диалоговом окне с информацией по текущей версии приложения во вкладке "System information" можно поменять дизайн приложения, посмотреть сколько памяти использует Java и принудительно очистить, занимаемую память, нажав кнопку "Force GC" и вызвав Java garbage collector (рис. 9).

Рис. 9. Дополнительные опции SAP Download Manager.

В командной строке Linux для запуска Java-приложения необходимо выполнить команду вида:
> java - classpath DLManager.jar dlmanager.Application 
Поэтому я рекомендую создать небольшой bash-скрипт для запуска, в котором прописать данную команду, и в дальнейшем запускать через скрипт (рис. 10). В остальном работа с утилитой ничем не отличается от Windows или Mac OS.

Рис. 10. Пример работы с утилитой в Linux.


В итоге, стоит отметить ряд значительных нововведений:
  • полностью переработанный дизайн,
  • произведенная оптимизация: размер уменьшился с 4 Мб до 2 Мб,
  • добавление оповещения о наличии обновлений для утилиты с возможностью скачать новую версию прямо из приложения,
  • добавление ссылки на свежую подробную документацию.

Предыдущие мои посты про SAP Download Manager:


Автор: Шиболов Вячеслав Анатольевич

четверг, 28 декабря 2017 г.

Опрос: что будет с блогом в 2018 году?

Ссылка на статью

Друзья, в связи с наступлением нового года, проведем небольшой опрос.

Просьба высказать своё честное мнение.

Опрос закончен. Спасибо всем, кто участвовал.

В опросе приняло участие 58 человек. Большинство требует "продолжения банкета" без изменения формата (рис. 1).

Рис. 1. Результаты опроса.


При этом приличная часть читателей согласна на добавление личных постов. Приму к сведению. Обещаю много личных постов не писать.

Один человек предложил переходить на написание статей на других ресурсах. И у меня есть предположение кто это мог быть. :)

Географию читателей можно посмотреть на диаграммах (рис. 2 и 3).

Рис. 2. География читателей по странам.


Рис. 3. География читателей из России по городам.

Выводы из итогов опроса я делаю такие, что надо продолжать вести блог. Другого варианта вы мне не дали. 10 лет скоро будет, как я его веду. Ну что ж, the show must go on!

Кстати, если кто-то вдруг захочет поддержать блог, а внести лепту в виде постов (как я приглашал) не получается, то можно это сделать через мой Яндекс-кошелёк - 410015988352987. А то вдруг, мой блог вам очень помог, а вы не можете меня поблагодарить.

Ну и напоминаю, что мне всегда можно написать на shibolov@gmail.com. Комментарии, критика, предложения, всё туда. Читаю обычно всё.

P.S. Еще одно нововведение - писать комментарии к постам теперь можно без регистрации.


Автор: Шиболов Вячеслав Анатольевич

среда, 27 декабря 2017 г.

С наступающим 2018 годом!

Ссылка на статью

Всех, кто читает мой блог постоянно или заглядывает сюда лишь изредка, хочу поздравить с наступающим Новым Годом!

Положа руку на сердце, хочу сказать, что без читателей нет автора. Читающий оказывает благодеяние автору, так как выслушивает его. Так же как тот, кто принимает подарок, оказывает благодеяние тому, кто его дарит. Спасибо вам, что заходите и читаете мои посты. За комментарии двойная моя благодарность.

Уходящий год был для меня не самым плохим. Надеюсь, что каждый из вас найдёт из всех событий, что были в вашей жизни в этот год, что-то доброе, хорошее и благоприятное.

В этом году я прочитал 23 книги и посмотрел порядка 56 фильмов и сезонов сериалов. Как всегда, количество фильмов больше, чем количество книг.

Из книг, что прошли через меня в этом году, могу посоветовать Джордж Леонард "Мастерство. Путешествие длиною в жизнь" (книга про мастерство), Владимир Успенский "Апология математики" (отличная книга для популяризации математики, очень занимательно и легко читается). Открытием года для меня стал Даниил Гранин, жаль, что для этого ему пришлось уйти из жизни. Особенно советую "Искатели", "Однофамилец", "Эссе о страхе", "Зубр", "Бегство в Россию". Очень искренняя, качественная современная литература. Еще не всё прочитал, что задумал.

Из фильмов советовать тяжело. Из сериалов "Остановись и гори" (4 сезона; плюс, что сериал завершен), "Кремниевая долина" (очень качественный ситком), "Лучше звоните Солу" (особенно для тех, кто неравнодушен к "Во все тяжкие"), "Мистер Робот" (не всем понравится, но зато про компьютеры). Из фильмов - "Гран Торино", "Малышка на миллион", "Монах и бес", "Нелюбовь", "Кловерфилд, 10".

Желаю всем не бояться трудностей и нового (помните: что не происходит, всё к лучшему), интересных проектов, здоровья и хорошего настроения!


Автор: Шиболов Вячеслав Анатольевич

понедельник, 27 ноября 2017 г.

Тестовая система в SAP ландшафте

Ссылка на статью
Не так давно в посте "Почему SAP рекомендует 3-х системный ландшафт?" я описывал односистемный, двухсистемный и трёхсистемные ландшафты. В посте я показал, что трёхсистемный ландшафт является минимально достаточным для организации корректной разработки и контроля качества в SAP системе.

Таким образом, типовой SAP ландшафт (рис. 1) состоит из 3-х систем:
  • система разработки и настройки (DEV),
  • тестовая система или система контроля качества (QAS),
  • продуктивная система или система промышленной эксплуатации (PRD).

Рис. 1. Трёхсистемный ландшафт.

Остановимся на тестовой системе.

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

Назначение тестовой системы подразумевает содержание большого объема мастер-данных. В идеале, всех данных продуктивной системы. Следовательно, при проектировании тестовой системы необходимо проработать план обновления этих данных из продуктивной системы с достаточной периодичностью. Частота обновления зависит от требований проекта, но ориентироваться можно на 1 раз в квартал.

Способы обновления могут быть следующими:
  • обновление через копирование содержимого отдельных таблиц,
  • обновление через копирование манданта,
  • обновление через гетерогенное копирование системы,
  • обновление через гомогенное копирование системы.

Перед обсуждением способов обновления данных остановлюсь еще на одном моменте. В идеальном мире архитектура серверов продуктивной и тестовой систем должна быть идентичной. Если бы это требование выполнялось в реальной жизни, то мой пост был бы в 2 раза короче. Но, к сожалению, в реальной жизни встречаются разные ситуации. При разной архитектуре продуктивной и тестовой систем тоже можно обеспечить приемлемое качество проекта. Протестировать разработки, перенос запросов, обучить пользователей и так далее. То есть процентов 80 запросов система покрывает. Но в данном случае обновление данных в тестовой системе имеет свои ограничения. Об этом сейчас и поговорим.

Итак, при создании тестовой системы смотрим на архитектуру оборудования, которое выделено под эти цели. Если архитектура отличается от продуктивной системы, то при создании тестовой системы придётся использовать процедуру гетерогенного копирования систем. Процедура длительная: требуется останов продуктивной системы и создание экспорта базы данных. Также в такой тестовой системе ограничен набор сценариев тестирования. Если в тестовой системе будет использоваться другая база данных, то тестирование разработок, в которых используется NativeSQL, вызывает большой вопрос. Тест производительности так же будет носить очень отдалённый характер, в силу больших различий со средой промышленной эксплуатации.

Если же архитектура идентична, то вопрос создания тестовой системы решается через гомогенное копирование. В качестве источника данных в данном случае отлично подойдёт существующая резервная копия продуктивной базы данных (offline или online + redo logs).

При периодическом обновлении мастер-данных в тестовой системе всё так же упирается в архитектуры продуктивной и тестовой систем. Если архитектуры разные, то можно использовать только следующие процедуры:
  • копирование содержимого отдельных таблиц: позволяет обновить только один функциональный модуль или его часть. Очень медленный способ. Перенос данных выполняется через транспортный запрос. Как включить содержимое таблицы в транспортный запрос я описывал в этом посте. При повторном переносе можно воспользоваться советом из поста "Саповские секретики - III (секретик 2)" и, создавать новый запрос через копию содержимого старого запроса. Процедура возможна только в крайнем случае и только при контроле и управлении со стороны опытного функционального консультанта. Результат не всегда гарантирован. Но в практике иногда применяется.
  • копирование манданта системы: возможно использование процедуры удаленного копирования манданта или экспорта/импорта манданта. Все способы описаны в этом посте. Процедура очень сильно нагружает обе системы (продуктивную и тестовую), работа в продуктивной системе должна быть минимальна, иначе высока вероятность возникновения проблем с целостностью данных. 
  • гетерогенное копирование системы - фактически полное удаление и установка тестовой системы по новой. Требует останова продуктивной системы на момент создания экспорта данных. Длительные временные затраты на создание копии в целом.

Если архитектура идентична, то проблем, конечно же, меньше. В данном случае можно использовать первые два способа, описанные выше: перенос содержимого списка таблиц и копирование манданта. Но оптимально будет использовать процедуру гомогенного копирования системы. Причем, её укороченный вариант. Только обновление данных базы данных.

Здесь я хочу плавно подвести к тому, что оптимальным вариантом при проектировании тестовой системы является выбор той же архитектуры, что и на системе промышленной эксплуатации. Хочу отметить, что я говорю про идентичность архитектуры и платформы, а не про идентичность в плане производительности. Нагрузка на тестовую систему гораздо ниже, чем на продуктивную. Следовательно, оборудование может быть "слабее". Какие плюсы мы получаем:
  • возможность полного тестирования любых функциональностей и разработок в среде, максимально приближенной к продуктивной,
  • тестовую среду, позволяющую проводить нагрузочное тестирование с выявлением узких мест в производительности разработок,
  • несложную процедуру обновления данных с получением почти 100 % идентичной продуктивной среды,
  • периодическое тестирование процедуры восстановления из резервной копии продуктивной системы с высчитыванием интервалов необходимых на процедуру восстановления для прогнозирования временных затрат в случае сбоя среды промышленной эксплуатации.

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

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


Автор: Шиболов Вячеслав Анатольевич

 

среда, 15 ноября 2017 г.

Опрос: Web-браузер

Ссылка на статью
Предыдущий опрос завершился полной победой Unix (Linux). Результаты на основе мнения 44 администраторов можно посмотреть тут.



Давайте теперь посмотрим на Web-браузеры.

Прошли те времена, когда почти единственным корректно работающим (то есть де-факто стандартом для тестирования у разработчиков сайтов) браузером был MS IE. Сейчас можно услышать опасения, что таким может стать Google Chrome. Да, и продукты компании SAP поддерживают большинство основных Web-браузеров примерно на одном уровне.

Давайте проведем опрос: какой Web-браузер вы используете на компьютере в качестве основного. В каком браузере у вас открыто большинство вкладок. Отметьте только тот, который у вас работает в большинстве случаев. В комментариях можно больше подробностей.
Спасибо за участие. Результаты, как обычно, в середине следующего месяца.

Опрос закрыт. Всего проголосовало 43 человека. Результаты голосования печальны для браузера Internet Explorer. Действительно, его времена прошли. Ни одного голоса. :) Первенство разделили Google Chrome и Mozilla Firefox (рис. 1).

Рис. 1. Результаты опроса.

Отвечающие по странам распределены как обычно (рис. 2).

Рис. 2. Географическое распределение респондентов.


Я лично использую в качестве основного Google Chrome, а MS Internet Explorer у меня на подхвате. Для проверки упрямых страничек и сайтов. Всё хочу вернуться обратно на Firefox, но последняя попытка была неудачной. Сейчас Mozilla, как раз, сделала крупное обновление. Хочу попробовать дать ему еще один шанс. :)

Автор: Шиболов Вячеслав Анатольевич


понедельник, 30 октября 2017 г.

Мастер класс по архитектуре SAP HANA

Ссылка на статью
В прошлую пятницу, 27 октября, я посетил мастер-класс "Архитектура решений на SAP HANA. Рекомендации". Мастер-класс проводился в рамках осенней сессии мастер-классов SAPLAND. Попал я на него бесплатно, как автор статей на портале. За что порталу отдельная благодарность.

Сразу скажу, что я ни разу не пожалел о своём посещении. На этот мастер-класс я пытался попасть ещё весной 2017 года, но, к сожалению, его тогда отменили - в последний момент оказалось только 2 участника. В этот раз было 11 человек. Отдельно хочу отметить ребят из "М-Видео", которые активно делились опытом использования BW on SAP HANA.

Организация семинара была осуществлена на базе учебного центра "Специалист при МГУ им. Н. Э. Баумана". В целом за организацию можно поставить твёрдую четвертку. Учебные классы хорошие, хотя участие в мастер-классе было пассивное, никаких практических заданий не было. Чай-кофе, вода, раздаточные материалы. Девушки из SAPLand, я считаю, отработали на 5. Понятное дело, что сравнение с учебным центром SAP в Москве некорректно, туда вложено больше денег и уровень там другой. Ну и для однодневного семинара это всё не так принципиально.

Автору мастер-класса Михаилу Вронскому отдельное спасибо. Материал был объёмный и при этом всё крайне полезно. Работали практически без перерывов, чтобы всё успеть. Было много практических рекомендаций и обсуждения опыта автора и участников. Я бы даже сравнил количество материала с 2-3 днями хорошего семинара. Только практики не было.

Небольшие заметки по мастер-классу (это лишь 10 % того, что там было :) ).

SAP HANA - база данных с поколоночным хранением данных и обработкой в оперативной памяти. Была впервые представлена в 2011 году. После этого на работу с данной базой данных была переведена система SAP BW. Решение носило название SAP BW on (powered by) SAP HANA или BWoH. Затем решение было полностью интегрировано в платформу SAP HANA и решение стало носить название SAP BW4/HANA (рис. 1).

Рис. 1. Эволюция решений SAP BW, использующих платформу SAP HANA.

Затем пришло время другим решениям от SAP переходить на новую платформу. Сначала появились продукты SAP Business Suite on (powered by) SAP HANA, а сейчас - SAP S4/HANA (рис. 2).

Рис. 2. Эволюция решений SAP Business Suite, использующих SAP HANA.

Таким образом, решения SAP BW4/HANA и SAP S4/HANA являются продуктами, в которых интеграция с платформой SAP HANA достигла такого уровня, что эти продукты могут работать только на ней. Эти решения используют новую модель данных, оптимизированную под SAP HANA.

Стоит отметить, что с 2013 года в продуктах SAP уже появляются специальные вставки в код для работы с базой данных SAP HANA, которые используют не чистый OpenSQL.

SAP заявляет, что с 2025 года он не будет поддерживать свои решения на других СУБД, кроме SAP HANA. Учитывая тот факт, что на данный момент в мире больше половины решений SAP используют в качестве базы дынных - Oracle, заявление вызывает некоторый скептицизм.

При поколоночном решении обеспечивается хорошее сжатие данных и быстрый поиск. Нет нужды в индексах (для таблиц с поколоночным хранением), убраны некоторые таблицы (например, pool и кластерные).

Соответственно, систему SAP BW проще перевести на BW4/HANA, ERP сложнее. Хороший вариант: перевнедрение - установить систему рядом и переносить данные перед стартом в промышленную эксплуатацию.

Для OLAP систем - автор рекомендует переходить на SAP HANA, для OLTP систем можно не спешить, надо взвешивать все за и против. Особенно для высоко-нагруженных систем.

Есть решение ORACLE in-memory, когда в памяти выделяется область для копирования таблиц в поколоночное хранение. Это увеличивает скорость работы. Но в SAP HANA идет изменение модели хранения и изменение кода.

На данный момент поддерживаются следующие версии SAP HANA:
  • SAP HANA 1.0 SPS12 (поддержка до 2021 года),
  • SAP HANA 2.0 SPS01,
  • SAP HANA 2.0 SPS02.

Версию SAP HANA 2.0 пока поддерживают не все системы.
Новый график выхода версий (SPS) - раз в год (апрель).

Оборудование (для продуктивных систем): только х86_64 (для HANA 2.0 от Intel Haswell и выше) и ограниченная поддержка IBM Power (для HANA 2.0 IBM Power 8). Всё оборудование должно быть сертифицировано SAP (до конкретной модели сервера). Системы хранения данных тоже только сертифицированные.

Операционные системы: только Linux - SLES или RHEL и только определенных версий.
В качестве ОС, автор рекомендует SLES, так как разработка SAP NetWeaver и SAP HANA в SAPLabs ведется именно на ней.

Подробности в PAM.

Возможно 2 варианта проектирования:
  • покупка готового решения (Appliance): готовый сервер+СХД+все оборудование, предустановленная SAP HANA, запуск, обучение.
  • конфигурация всего по отдельности (Tailored Data Center или TDI): покупка оборудования, системы, монтаж, установка, запуск. 

Первое решение дорогое, второе дешевле и более гибкое.


Выделяют 2 архитектуры разворачивания:
  • Scale-up - одна HANA нода. Рекомендуется для SAP ERP on HANA. Более производительное решение, но для апгрейда требует замену полностью всего оборудования на новый Applience. 
  • Scale-out - несколько HANA нод, объединенных в одну базу. Рекомендуется для BW on HANA и BW4/HANA. Позволяет наращивать объем памяти через добавление новых нод. Так же добавляет некоторую отказоустойчивость.

Виртуализация не рекомендуется для SAP HANA, а отказоустойчивый кластер, наоборот, настойчиво рекомендуется.

В SAP HANA есть свой WebAS. Весь инструмент работы с SAP HANA переводится в Web.
Текущий инструмент, SAP HANA Studio не имеет будущего.

Примеры установки и использование SAP HANA можно посмотреть на рис. 3.

Рис. 3. Примеры разворачивания и использования платформы SAP HANA.

Есть проблема с лицензированием BW4/HANA - полностью изменена модель: с пользователей на лицензирование по объему памяти.

Для того, чтобы предварительно посмотреть SAP HANA можно использовать:
  • SAP HANA Express edition (в виде самостоятельной установки или готового образа ВМ),
  • SAP Solution Manager 7.2 on SAP HANA 1.0.

Автор: Шиболов Вячеслав Анатольевич