SAP HANA (High-Performance Analytic Appliance)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:03, 8 июня 2016.
SAP HANA (High-Performance Analytic Appliance)
fraimed
Разработчики: SAP SE
Написана на: C, C++
Платформа: x64
Локализация: Мультиязычный
Тип ПО: СУБД в оперативной памяти
Лицензия: Проприетарное ПО
Веб-сайт официальный сайт

SAP HANA представляет собой платформу для хранения и обработки данных в оперативной памяти, которая может быть развернута как локально, так и в облаке. Аббревиатура HANA расшифровывается как High-performance ANalytic Appliance, т.е. высокопроизводительный инструмент для аналитики.[1] Это революционная платформа, которая лучше всего подходит для выполнения аналитики режима реального времени, а также разработки и развертывания приложений режима реального времени. В основе этой платформы обработки данных в режиме реального времени лежит база данных SAP HANA, которая в корне отличается от любой другой базы данных на рынке сегодня.[2]

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

Обзор

Предпосылки создания SAP HANA продиктованы развитием информационных технологий: оперативная память из года в год становится мощнее и дешевле. Физическая же, наоборот, в своем развитии шагает куда меньшими темпами. Очевидно, что при огромном количестве запросов и транзакций к базе данных, сервер уже не в состоянии поддерживать удовлетворительную скорость выдачи информации. Но еще большими темпами растут объемы данных. Эти причины и легли в основу развития технологий, способных обрабатывать большие данные (BigData).

Рисунок 1: SAP HANA — платформа для нового класса приложений реального времени

Основные преимущества

  • Скорость обработки информации. За счет технологии полного хранения данных в оперативной памяти, программное обеспечение способно обрабатывать около 200 запросов в минуту. Таким образом скорость получения отчетности может быть увеличена в 100-200 раз.
  • Использование параллельных вычислений. Вычисления и агрегация данных перенесена с уровня сервера приложений на уровень хранения данных.
  • Поколоночное хранение данных. Данный подход позволяет сжимать содержимое таблиц базы данных в оперативной памяти, что, в свою очередь, позволяет уменьшить требования к оперативной памяти сервера. Коэффициент сжатия может варьироваться от 4 до 20 раз.
  • Масштабируемость. Наращивание баз данных ограничено лишь аппаратными возможностями поставленного решения.
  • Аналитическая система Online. В случае использования системы SAP ERP on HANA или SAP Business Suite on HANA не требуются процессы периодической перегрузки данных из OLTP систем. Это позволяет получать централизованную информацию прямо на основе таблиц, используемых непосредственно OLTP системами.

Традиционные сценарии использования

  • HANA Standalone. SAP HANA — очень быстрая база данных (отмечается величение скорости работы до 200 раз в сравнении с реляционными СУБД). Основное применение - это аналитика больших объемов данных, разнообразные вычисления и отчеты на них. Поставка ведется вместе с Studio, с помощью которой осуществляются все манипуляции с БД. Также есть возможность создания собственных процедур на языках SQL, L, R. Алгоритм использования в варианте Standalone – загрузка исходных данных, построение модели и хранилище данных. Функции аналитических отчетов обеспечиваются линейкой продуктов SAP Business Objects.
  • SAP BW on HANA. В данном случае HANA выступает в качестве СУБД для системы BW. Поддержка BW on HANA стала возможна на платформе SAP NetWeaver, начиная с версии 7.3. Данное решение имеет следующие очевидные преимущества:
    1. Большая часть логики вычислений перенесена с уровня сервера приложений на уровень БД, вся БД располагается в оперативной памяти - агрегация и вычисления проходят существенно быстрее.
    2. DSO теперь могут быть сконвертированы в HANA-optimized DSO - существенно сокращает время на загрузку и активацию данных.
    3. Объекты хранилища типа Куб (InfoCube) реализованы на уровне БД HANA, оптимизирована структура за счет отсутствия DIM ID – скорость выдачи результата по запросу пользователя из куба возросла многократно.
  • ERP on HANA. Основное достоинство - это увеличение скорости чтения в транзакционных системах. Возможность одновременного хранения и использования данных в одной БД как по принципу OLTP, так и по принципу OLAP. Возможность реализации аналитических отчетов прямо на основе данных ERP системы, в режиме реального времени и временем выдачи результата по запросу в течении нескольких секунд.
  • SAP Business Suite на платформе SAP HANA является единственным комплексным решением для бизнеса по сбору, анализу и обработке транзакционных данных в режиме реального времени. Включает в себя оптимальные сценарии бизнес-отчетности для различных отраслей.
  • SAP Business All-in-One on HANA. Данное решение подойдет среднему и малому бизнесу. SAP ведет очень гибкую ценовую политику по данному решению, поэтому оно доступно компаниям любого размера.

Ключевая особенность

Рисунок 2: Широкий набор продуктов для SAP HANA

Другие системы управления базами данных на рынке, как правило, либо хороши в транзакциях, либо в аналитике, но не совмещают эти два свойства. Когда транзакционные СУБД используются для аналитики, они требуют разделения логики путем разделения на базы данных (OLAP и OLTP). К примеру, чтобы составить отчет, вы должны извлечь данные из транзакционной системы (ERP), преобразовать эти данные для составления отчетов, и загрузить его в базу данных отчетов (BW). База данных отчетов по-прежнему требует значительных усилий в создании и поддержании настройки структуры, например, индексов, чтобы обеспечить хотя бы умеренную производительность.

Благодаря своей гибридной структуре в плане обработки транзакций и аналитики полностью в оперативной памяти, SAP HANA сочетает в себе лучшее из двух подходов. Вам не нужно тратить время на загрузку данных из транзакционной базы данных в вашу базу данных отчетов. Объединив два подхода (OLAP и OLTP) в единой базе данных, SAP HANA предоставляет компаниям возможность снижения совокупной стоимости владения в дополнение к высокой скорости обработки данных.

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

Существуют и другие СУБД на рынке сегодня, которые способны предоставить ту или иную особенность, которой обладает SAP HANA. Тем не менее, ни одно из этих решений не может предоставить все из них в одном продукте (рисунок 2).

Обработка данных в оперативной памяти

Рисунок 3: Скорость обработки против емкости запоминающего устройства

Система баз данных в оперативной памяти представляет собой систему управления базами данных, которая хранит данные полностью в основной памяти.[4] Это в корне отличается от традиционных систем баз данных (на диске), которые предназначены для хранения данных на постоянных носителях. Ввиду того, что работа с данными в памяти намного быстрее, чем запись и чтение из файловой системы, такая база данных может выполнять функции обработки данных приложений на порядок быстрее. А в силу своего, как правило, более простого устройства, в отличие от баз данных на диске, база данных в оперативной памяти может также значительно снизить требования к памяти и процессору.

Отличия баз данных в оперативной памяти от традиционной (на диске)

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

СУБД на диске так же хранит много избыточных данных. Например, дубликаты данных хранятся в индексных структурах, чтобы позволить системе базы данных на диске извлекать записи из индекса, а не "расходовать" ввод/вывод на переход от индекса к самим данным. Дисковое пространство стоит дёшево, поэтому разработчики систем баз данных на диске исходят из предположения, что пространство для хранения практически безгранично.

В противоположность этому, система базы данных в оперативной памяти, не несет никакой нагрузки на файловую систему ввода/вывода. Её архитектура изначально разрабатывалась более рациональной, с задачами оптимизации по сокращению потребления памяти и процессорного времени. Хотя оперативная память снизилась в цене, разработчики справедливо относятся к ней как к более дорогой, поэтому основной задачей системы баз данных является получение максимальной отдачи от памяти. База данных в оперативной памяти выбрана именно из-за преимущества оперативной памяти в производительности, поэтому устранение ненужных циклов процессора — второстепенная задача.

Преимущества

  • Работа на самых высоких доступных скоростях: Получение информации с нулевой задержкой, включая обработку in-motion и at-rest данных[5]
  • Снижение стоимости: Используйте обычное оборудование для обеспечения высокой производительности без необходимости вникать в детали, в том числе масштабирования в облаке.
  • Продление срока службы существующих приложений: Сделайте их более быстрыми и более распределенными, используя в вычисление памяти как промежуточное программное обеспечение.
  • Использование Big Data: Принимайте решения на основе всех ваших данных.
  • Масштабирование по мере необходимости: Легко масштабируйте в зависимости от ваших требований к обработке в режиме реального времени.

Архитектура

Обзор

Figure 4: SAP HANA - Архитектура

SAP HANA база данных разработана на языке C++ и работает под управлением SUSE Linux Enterprise Server. База данных SAP HANA состоит из нескольких серверов: Index Server, Name Server, Statistics Server, Preprocessor Server и XS Engine, наиболее важным из которых является Index Server (сервер индексирования).

Index Server

  • Сервер индексирования является основным компонентом SAP базы данных HANA
  • Он представляет собой фактическое хранилище данных и движки для их обработки.
  • Сервер индексирования обрабатывает входящие SQL или MDX выражения в контексте прошедших проверку подлинности сессий и транзакций.

Persistence Layer

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

Preprocessor Server

Сервер индексирования использует сервер препроцессора для анализа текстовых данных и извлечения информации, на которых основаны возможности поиска текста.

Name Server

Сервер имен владеет информацией о топологии системы SAP HANA. В распределенной системе, сервер имен знает, где компоненты запущены и какие данные на каком сервере находятся.

Statistic Server

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

Session and Transaction Manager

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

XS Engine

XS Engine является необязательным компонентом. Используя XS Engine клиенты могут подключаться к базе данных SAP HANA для извлечения данных с помощью HTTP.

Index Server

Рисунок 5: Компоненты Index Server базы данных SAP HANA

SAP HANA Index Server реализует основные преимущества SAP HANA. [6]

Управление сессиями и соединенями

  • Этот компонент отвечает за создание и управление сессий и соединений для клиентов баз данных.
  • После того, как сеанс установлен, клиенты могут обмениваться данными с SAP HANA с помощью базы данных SQL-запросов.
  • Для каждой сессии поддерживается набор таких опций, как режим автоматической фиксации изменений, текущий уровень изоляции транзакций и т.д.
  • Пользователи идентифицируются либо самой SAP HANA базы данных (логин пользователя и пароль), либо аутентификация может быть делегирована внешнему провайдеру аутентификации, такому как, например, каталог LDAP.

Диспетчер авторизации

  • Этот компонент вызывается другими компонентами базы данных SAP HANA, чтобы проверить, имеет ли пользователь необходимые привилегии для выполнения запрошенной операции.
  • SAP HANA позволяет управлять привилегиями для пользователей или ролей. Привилегия предоставляет право на выполнение определенной операции (например, создание, обновление, выберите, выполнить, и так далее) на указанном объекте (например, таблицы, представления, функции SQL скрипт, и так далее).
  • База данных SAP HANA поддерживает аналитические привилегии, которые представляют собой фильтры или иерархии ограничений развертки для аналитических запросов. Аналитические привилегии предоставляют доступ к значениям с определенной комбинацией атрибутов измерения. Это используется для ограничения доступа к кубу с некоторыми значениями размерных признаков.

Обработка запросов и контроль исполнения

  • Клиентские запросы анализируются и выполняются с помощью набора компонентов, что в совокупности называется обработкой запросов и контролем исполнения. Request Parser анализирует запрос клиента и отправляет его к ответственному компоненту. Execution Layer выступает в качестве контроллера, который вызывает различные движки и направляет промежуточные результаты к следующему шагу выполнения.
  • SQL Процессор:
    • Входящие запросы SQL поступают в SQL процессор. Инструкции обработки данных выполняются самим SQL процессором.
    • Различные типы запросов передаются различным компонентам. Операторы определения данных отправляются в диспетчер метаданных, управляющие операторы транзакции передаются менеджеру транзакций, планирование команды направляются в движок планирования и вызовы процедур направляются к хранимой процедуре процессора.

SQLScript

  • База данных SAP HANA имеет свой собственный язык сценариев под названием SQLScript, который предназначен для оптимизации и распараллеливания. SQLScript представляет собой набор расширений для SQL.
  • SQLScript основан на побочный эффект свободных функций, которые работают на таблицах, используя SQL-запросы для обработки данных. Мотивацией для использования SQLScript является желание переместить логику приложения с интенсивной обработкой данных в базу данных.

Многомерные выражения (MDX)

  • MDX является языком для выполнения запросов и манипулирования многомерные данные, хранящимися в OLAP кубах.[7]
  • Входящие MDX запросы обрабатываются движком MDX, а затем направляются в Calc Engine.

Planning Engine

  • Planning Engine позволяет приложениям финансового планирования выполнять базовые операций планирования в слое базы данных. Одной из таких основных операций является создание новой версии набора данных в виде копии существующего при применении фильтров и преобразований. Например: данные планирования для нового года создается как копия данных, по сравнению с предыдущим годом.
  • Другим примером для операции планирования является операция дезагрегации, которая распределяет целевые значения от высшего к низшему уровням агрегации на основе функции распределения.

Calc engine

  • Возможности базы данных SAP HANA, такие как SQLScript и операций планирования осуществляются с использованием общей инфраструктуры под названием Calc Engine.
  • SQLScript, MDX, модели планирования и предметно-ориентированные модели преобразуются в расчетные модели. Calc Engine создает логический план выполнения для расчета моделей. Calc Engine разбивает модель, например, некоторые SQL-скрипт могут быть разбиты на операции, которые могут быть обработаны параллельно.

Менеджер транзакций

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


Менеджер транзакций также сотрудничает со слоем целостности для достижения атомарности и непротиворечивости транзакций.[8]

Менеджер метаданных

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

Хранилище строк

Хранилище строк — это база данных строк, базирующаяся в памяти движка реляционных данных.

Хранилище столбцов

В хранилище столбцов хранятся таблицы по столбцам. [9]

Persistence Layer

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

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

Примечания