Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

SAP HANA

SAP HANA (High-performance ANalytic Application) is an in-memory, column-oriented, relational database


management system developed and marketed by SAP SE.[2][3] Its primary function as the software running
a database server is to store and retrieve data as requested by the applications. In addition, it performs advanced
analytics (predictive analytics, spatial data processing, text analytics, text search, streaming analytics, graph
data processing) and includes extract, transform, load (ETL) capabilities as well as an application server.

Architecture
Overview
The key distinctions between HANA and previous generation SAP systems are that it is a column-oriented, in-
memory database, that combines OLAP and OLTP operations into a single system; thus in general SAP HANA
is an "online transaction and analytical processing" (OLTAP) system,[30] also known as a hybrid
transactional/analytical processing (HTAP). Storing data in main memory rather than on disk provides faster
data access and, by extension, faster querying and processing.[31] While storing data in-memory confers
performance advantages, it is a more costly form of data storage. Observing data access patterns, up to 85% of
data in an enterprise system may be infrequently accessed[31] therefore it can be cost-effective to store frequently
accessed, or "hot", data in-memory while the less frequently accessed "warm" data is stored on disk, an
approach SAP have termed "Dynamic tiering".[32]
Column-oriented systems store all data for a single column in the same location, rather than storing all data for
a single row in the same location (row-oriented systems). This can enable performance improvements
for OLAP queries on large datasets and allows greater vertical compression of similar types of data in a single
column. If the read times for column-stored data is fast enough, consolidated views of the data can be
performed on the fly, removing the need for maintaining aggregate views and its associated data redundancy.[33]
Although row-oriented systems have traditionally been favored for OLTP, in-memory storage opens techniques
to develop hybrid systems suitable for both OLAP and OLTP capabilities,[34] removing the need to maintain
separate systems for OLTP and OLAP operations.
Indexer components
The index server performs session management, authorization, transaction management and command
processing. The database has both a row store and a columnar store. Users can create tables using either store,
but the columnar store has more capabilities and is most frequently used. The index server also manages
persistence between cached memory images of database objects, log files and permanent storage files. The XS
engine allows web applications to be built.[35]
SAP HANA Information Modeling (also known as SAP HANA Data Modeling) is a part of HANA application
development. Modeling is the methodology to expose operational data to the end user. Reusable virtual objects
(named calculation views) are used in the modelling process.
MVCC
SAP HANA manages concurrency through the use of multiversion concurrency control (MVCC), which gives
every transaction a snapshot of the database at a point in time. When an MVCC database needs to update an
item of data, it will not overwrite the old data with new data, but will instead mark the old data as obsolete and
add the newer version.[36][37]

Big data
In a scale-out environment, HANA can keep volumes of up to a petabyte of data in memory while returning query
results in under a second. However, RAM is still much more expensive than disk space, so the scale-out
approach is only feasible for certain time critical use cases.[38]

Analytics
SAP HANA includes a number of analytic engines for various kinds of data processing. The Business Function
Library includes a number of algorithms made available to address common business data processing algorithms
such as asset depreciation, rolling forecast and moving average.[39] The Predictive Analytics Library includes
native algorithms for calculating common statistical measures in areas such as clustering, classification and time
series analysis.[40]
HANA incorporates the open source statistical programming language R as a supported language within stored
procedures.[41]
The column-store database offers graph database capabilities. The graph engine processes the Cypher Query
Language and also has a visual graph manipulation via a tool called Graph Viewer. Graph data structures are
stored directly in relational tables in HANA's column store.[42] Pre-built algorithms in the graph engine include
pattern matching, neighborhood search, single shortest path, and strongly connected components. Typical
usage situations for the Graph Engine include examples like supply chain traceability, fraud detection, and
logistics and route planning.[43]
HANA also includes a spatial database engine which implements spatial data types and SQL extensions
for CRUD operations on spatial data. HANA is certified by the Open Geospatial Consortium,[44] and it integrates
with ESRI's ArcGIS geographic information system.[45]
In addition to numerical and statistical algorithms, HANA can perform text analytics and enterprise text search.
HANA's search capability is based on “fuzzy” fault-tolerant search, much like modern web-based search engines.
Results include a statistical measure for how relevant search results are, and search criteria can include a
threshold of accuracy for results.[46] Analyses available include identifying entities such as people, dates, places,
organizations, requests, problems, and more. Such entity extraction can be catered to specific use cases such
as Voice of the Customer (customer's preferences and expectations), Enterprise (i.e. mergers and acquisitions,
products, organizations), and Public Sector (public persons, events, organizations).[47] Custom extraction and
dictionaries can also be implemented.

Application development
Besides the database and data analytics capabilities, SAP HANA is a web-based application server, hosting
user-facing applications tightly integrated with the database and analytics engines of HANA. The "XS Advanced
Engine" (XSA) natively works with Node.js and JavaEE languages and runtimes. XSA is based on Cloud
Foundry architecture and thus supports the notion of “Bring Your Own Language”, allowing developers to
develop and deploy applications written in languages and in runtimes other than those XSA implements natively,
as well as deploying applications as microservices. XSA also allows server-side JavaScript (XSJS).[48]
Supporting the application server is a suite of application lifecycle management tools allowing development
deployment and monitoring of user-facing applications.

You might also like