こんばんは、同僚。今日は、Delta Merge のような SAP HANA データベースで行われている定期的かつ重要な操作についてお話したいと思います。
HANA データベースの概念では、列テーブルへの変更はメイン ストアで直接行われることはありません。これは、MAIN 領域が書き込み操作ではなく読み取り操作に最適化されているためです。すべての書き込み操作は、デルタ ストアと呼ばれる特別な領域で行われます。この場合、両方の領域から読み出しが行われます。
定期的に、列テーブル (メイン ストア) のメイン ストレージ エリアをデルタ ストア エリアの内容で更新する必要があります。これら 2 つの領域をマージするプロセスは、デルタ マージと呼ばれます。このプロセスは、マージの直前、マージ中、マージ後の 3 つの段階に分けることができます。デルタ マージ プロセスは、次のように概略的に表すことができます。

最初の段階 (デルタ マージ操作の開始前) では、Main1 と Delta1 の 2 つの領域があることがわかります。読み出しは両方の領域から行いますが、書き込みは Delta1 領域にのみ発生します。
delta merge, Main2 Delta2. Main1 Main2 ( 1). (committed) Delta1 Main2 ( 2). (uncommitted) Delta 1 Delta2 ( 3). Main1, Delta1, Delta2. Delta2.
, , Main1 Delta1 . Main2 Delta2. Delta2.
, ( ) delta merge . , Delta1 Delta2 , .
Delta Merge.

, . mergedog, SQL. , (implicit) merge, mergedog , Recovery Log replay.
Delta merge
delta merge , (Auto), , , (Critical), . .
Auto merge. MERGE :
indexserver.ini -> [mergedog] -> activate (boolean), default: true
indexserver.ini -> [mergedog] -> check_interval (ms), default: 60000
indexserver.ini -> [mergedog] -> auto_merge_decision_func
[mergedog] true. ( check_interval) mergedog merge . Auto merge auto_merge_decision_func.
Critical merge. MERGE mergedog . Critical merge :
indexserver.ini -> [mergedog] -> critical_merge_decision_func
Delta Merge
DELTA MERGE. :
Hard Force merge
, , MERGE. Hard merge :
MERGE DELTA OF “<table_name>” [FORCE REBUILD]
DELTA MERGE ( ) . FORCE REBUILD , delta merge, , , (decision function), .
WITH PARAMETERS (‘FORCED_MERGE’ = ‘ON’) FORCED MERGE, .
Smart merge
merge . , BW. . , Smart merge , .
indexserver.ini -> [mergedog] -> smart_merge_enabled
indexserver.ini -> [mergedog] -> smart_merge_decision_func
Smart merge :
MERGE DELTA OF “<table_name>” WITH PARAMETERS (‘SMART_MERGE’ = ‘ON’)
! , .
SAP ABAP TREX_EXT_MERGE_DELTA_INDEX smart merge .
Memory merge
SAP HANA 1.0 SP8 Memory merge, Hard merge. , , .
! . , .
Merge Monitor
. Merge Monitor.
( 2057046) , , . , .
() Merge . merge token, FORCE MERGE. Merge . . , , load_balancing_func indexserver.ini. merge, . , token_per_table.
Delta Merge, M_DELTA_MERGE_STATISTICS, . HOST_DELTA_MERGE_STATISTICS _SYS_STATISTICS. Merge. Merge TYPE ‘MERGE’. :

Delta Merge M_JOB_PROGRESS.
, Delta merge , . : main () + main () + delta. , .
delta merge (TYPE='SPARSE' M_DELTA_MERGE_STATISTICS), Pool/OptimizeCompression/<schema>:<table>. , .
Delta Merge
Delta Merge . LAST_ERROR ERROR_DESCRIPTION M_DELTA_MERGE_STATISTICS HOST_DELTA_MERGE_STATISTICS. SQL HANA_Tables_ColumnStore_Merges.
SAP KBA 2057046 – FAQ: SAP HANA Delta Merges
HANA. delta merge , . Basis, BW .