Partitioning in SAP HANA database


SAP HANA provides two ways of distributing data
1. Database Partitioning - different tables being distributed across several hosts (SAP Note 2044468 - FAQ:SAP HANA Partitioning)
2. Table Partitioning - splitting a column store table and distributing across several hosts

(SAP Note 2081591 - FAQ: SAP HANA Table Distribution) 

SAP HANA supports:
1. Hash Partitioning
2. Range Partitioning
3. Round-robin Partitioning

In SAP HANA, we can create
1. Single-Level Partitioning
2. Multi-Level Partitioning

The optimizing algorithm takes factors into account such as:
- Balance tables equally in a way that they are spread over all the slave nodes and make optimal use of the available physical memory on each node
- Ensure that tables/table partitions which are belonging to the same table groups (see tables _SYS_RT.TABLE_PLACEMENT, SYS.TABLE_GROUPS) are located on the same nodes, as they are logically frequently queried from application side via joins and if they are located on the same nodes, the joins will be executed faster (SAP Note 1862584 - BW on HANA: support of grouping objects)
- Split tables into (n) partitions dependent on number of contained rows (m) and distribute them round robin on the available nodes while still considering the first two rules (SAP Note 1650394 - SAP HANA DB: Partitioning and Distribution of Large Tables )

In order for the table placement rules to come into effect, the tables must have a partitioning specification associated with the table. The table does not necessarily need to be partitioned as it is possible for "user-specified" number of partitions" to 1 so that the table placement rules apply to the table. Partition specifications are lost if the tables are merged manually. Information about partition specification for a table can be found within the CREATE statement or in TABLES under PARTITION_SPEC.

Starting with SAP HANA Rev 122.04, HANA smart data integration introduced task partitioning in the Flowgraph Editor. Task partitioning helps our customers load large initial data sets faster and utilizes available memory from various supported sources into SAP HANA. While SAP HANA Rev 122.04 introduced full partitioning support in the Flowgraph Editor, the SAP HANA 122.05 release introduced single-level (or single column) partitioning in the replication task. SAP HANA Rev 122.06 includes multi-level (or multi-column) partitioning in replication tasks.

The goals of these enhancements are:
Optimize initial loading of large volume of data from various supported sources into SAP HANA in terms of loading time, memory utilization in SAP HANA and resource utilization at the data sources
Support a partitioned HANA column table as input with more than 2 billion rows (but less than 2 billion rows in each partition)

For HANA, refer to SAP Notes
SAP Note 1958216 - HANA landscape redistribution configuration
SAP Note 1950099 - HANA landscape redistribution default configuration

For BPC, refer to SAP Note
2003863 - Enable BPC HANA table distribution

For Business Suite, refer to SAP Note
1899817 - SAP Business Suite on distributed SAP HANA database (scaleout): Landscape redistribution

Comments

Popular posts from this blog

Large SAP tables which are good candidates for partitioning