How does Data Aging in SAP S/4HANA function technically?
The SAP NetWeaver ABAP has built a data aging mechanism for ABAP applications which is built on a new data aging framework. The ABAP developers utilize this framework for specifying the data aging objects which are categorized as aged as one unit, for identifying the involved tables, and for implementing the logic and for defining the data temperature. The data temperature has been set via an supplementary data temperature column '_DATAAGING' (type DATA_TEMPERATURE with ABAP date format “YYYYMMDD”), which is added to all participating tables.
The data temperature can be done by utilizing the horizontally partition the application data along with time selection partitioning (a.k.a. "aging") on the column '_DATAAGING' which is meant for improving the resource consumption as well as performance. Only one partition contains the hot data (represented by the value “00000000”) and the other partition(s) comprise of cold data along with different data temperature ranges.
Only hot data is accessed, by default. SAP HANA is only able to load that partition into memory during normal operation, since the hot data is in a distinct partition. The ABAP developers are able to set the data temperature context to switch between retrieving only hot data and all data above a quantified data temperature, if it is so required.
The SAP HANA-specific database shared library, also known as DBSL present in the ABAP server adds a corresponding clause to the SQL statements which are sent to SAP HANA. SAP HANA confines the operation to the hot data partition, and this is done by adding the clause WITH RANGE RESTRICTION ('CURRENT') to a SQL statement. A concrete value can be stated, rather than the 'CURRENT' value. With this there is a restriction in the operation to all partitions with data temperatures above the quantified value. The clause WITH RANGE RESTRICTION ('20100101'), for instance, conveys to SAP HANA for searching the hot partition and all cold partitions which comprise of the values greater or equal than '20100101'. Range restriction is applicable to SELECT, UPDATE, UPSERT, DELETE statements and also for procedure calls.
The same generic syntax extension can be used by any other clients which want to access these Data Aging tables with proper filtering.
The application has been designed in such a manner that it knows which business objects are closed and can be shifted to cold partitions. During an Aging Run, the application has actively set the values in this column to a date for indicating that the object is closed and the row shall be moved to the Cold partition(s). The rows are mechanically moved then to a cold partition, as the table is partitioned by the temperature column. The move effects the visibility of the data alongwith its accessibility. Many configuration steps and or prerequisites are required to be administered for executing a Data Aging Run (-> "How and when can the date be transferred from the hot partition to the cold partition(s)?").