28.01.2013 Views

SAP HANA Developer Guide - Get a Free Blog

SAP HANA Developer Guide - Get a Free Blog

SAP HANA Developer Guide - Get a Free Blog

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2 <strong>SAP</strong> <strong>HANA</strong><br />

<strong>SAP</strong> <strong>HANA</strong> is an in-memory data platform that is deployable as an appliance or in the cloud. At its core, it is an<br />

innovative in-memory relational database management system that makes full use of the capabilities of current<br />

hardware to increase application performance, to reduce cost of ownership, and to enable new scenarios and<br />

applications that were not possible before.<br />

With <strong>SAP</strong> <strong>HANA</strong>, you have the opportunity to build applications that integrate the business control logic and the<br />

database layer with unprecedented performance. As a developer, one of the key questions is how you can<br />

minimize data movements. The more you can do directly on the data in memory next to the CPUs, the better the<br />

application will perform.<br />

2.1 The <strong>SAP</strong> <strong>HANA</strong> In-Memory Database<br />

<strong>SAP</strong> <strong>HANA</strong> was designed to run on modern, distributed computers built out of multi-core CPUs (multiple CPUs on<br />

one chip) with fast communication between processor cores, and containing terabytes of main memory. With<br />

<strong>SAP</strong> <strong>HANA</strong>, all data is available in main memory, which completely avoids the performance penalty of disk I/O.<br />

Either disk or solid-state drives are still required for permanent persistency in the event of a power failure or some<br />

other catastrophe. This does not slow down performance, however, because the required backup operations to<br />

disk can take place asynchronously as a background task.<br />

2.1.1 Columnar Data Storage<br />

A database table is conceptually a two-dimensional data structure organized in rows and columns. Computer<br />

memory, in contrast, is organized as a linear structure. A table can be represented in row-order or column-order.<br />

A row-oriented organization stores a table as a sequence of records. Conversely, in column storage the entries of<br />

a column are stored in contiguous memory locations. <strong>SAP</strong> <strong>HANA</strong> supports both, but is particularly optimized for<br />

column-order storage.<br />

Columnar data storage allows highly efficient compression. Especially if a column is sorted, there will normally be<br />

repeated adjacent values. <strong>SAP</strong> <strong>HANA</strong> employs highly efficient compression methods, such as run-length<br />

encoding, cluster coding and dictionary coding. With dictionary encoding, columns are stored as sequences of bitcoded<br />

integers. That means that a check for equality can be executed on the integers (for example during scans<br />

or join operations). This is much faster than comparing, for example, string values.<br />

<strong>SAP</strong> <strong>HANA</strong> <strong>Developer</strong> <strong>Guide</strong><br />

<strong>SAP</strong> <strong>HANA</strong><br />

P U B L I C<br />

© 2012 <strong>SAP</strong> AG. All rights reserved. 9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!