SAP HANAのデータベースは、3つの領域「L1デルタ」「L2デルタ」「メインストア」に分かれています。
このメインストアが、SAP HANAのデータベース本体といっていい領域です。そしてSAP HANAのメインストアは、データを列ごとに管理する「列指向データベース」あるいは「カラム型データベース」と呼ばれる構造となっています。
通常のリレーショナルデータベースは、データを「行」で管理し、行ごとにデータの追加・削除・更新などを行うのに対し、カラム型データベースによって、列方向でデータを管理する利点は、列方向には同じ種類のデータが並んでいるため、データの圧縮効率が高くなり、列方向に計算を行う集計処理なども高速に行えることです。すなわち、カラム型データベースは大量のデータの分析処理を高速で行うことに向いているのです。
カラム型データベースの特長については、下記の記事を参照してください。
しかし、カラム型データベースは通常のリレーショナルデータベースで行われる行の追加や削除といった行単位の処理、トランザクションは苦手です。その処理には非常に時間がかかります。
SAP HANAではこれを克服するため、カラム型データベースであるメインストアの手前に「L1デルタ」「L2デルタ」の2つの領域を設けているのです。
L1デルタの内部は、通常のリレーショナルデータベースと同様に「行」指向でデータが管理されています。アプリケーションからのデータベースに対する行の追加・削除・更新などの処理は、このL1デルタ内で高速処理されます。そして、L1デルタで処理が完了すれば、外部からはSAP HANAがトランザクションを高速に終えたように見えます。
ただし、SAP HANA内部ではまだ処理は終わっていません。L1デルタに書き込まれた内容は、バックグラウンドでL2デルタに変換されます。L2デルタはカラム型データベースの形式になっています。そして、L2デルタでカラム型に変換されたデータは、最後にメインストアにマージされます。
SAP HANAの内部構造については、下記の記事を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.