各 Anaplan 計算エンジンはデータの密度が異なるモデルに対応できるように設計されています。Polaris はネイティブのスパース計算エンジンとして設計されているため、スパース データ セットに適しています。
密度の高いモデルとは、大半のセルにデータが入力されているモデルのことです。密度の低いモデルとは、大半のセルにデータが入力されていないモデルのことです。
Polaris では、デフォルト値以外の値が入力されたセルのことをデータが入力されたセルとみなします。各データ型のデフォルト値は次のとおりです。
- 数値: 0
- ブール値: FALSE
- 日付: 空白
- 時間軸:空白
- リスト アイテム:空白
- テキスト: ““ (空の文字列)
スパース性と密度の例
Anaplan モデルのデータは階層リスト内のモジュールとライン アイテムに格納されます。リストとライン アイテムはモジュールでディメンションとして使用されます。以下の例を参照してください。
APAC | AMER | EMEA | |
Product cost | 125.00 | 0 | 87.45 |
Sale price | 135.00 | 0 | 92.50 |
Quantity sold | 1,156 | 0 | 897 |
Classic エンジンでは、このデータは配列として格納され、密度が高くなります。つまり、空かどうかに関係なく、すべてのセルでメモリが必要になります。Classic エンジンの各セルでは、データが含まれているかどうかに関係なく 8 バイトのメモリを使用します。そのため、9 個のセルがある上記の例では約 72 バイトのメモリを使用します。
以下の例は空のセルが多いため、どちらかというと Polaris が適しています。
APAC | AMER | EMEA | |
Product cost | 0 | 0 | 87.45 |
Sale price | 0 | 0 | 92.50 |
Quantity sold | 0 | 0 | 0 |
Polaris では、配列の代わりに、キーがあるマップベースのストレージが使用されます。つまり、データを含むセルだけがメモリを消費します。空のセルはメモリを消費しません。ただし、Polaris ではデータを含むセルで 24 バイトのメモリが使用されます (数値セル一つにつき)。そのため、データを含むセルが二つある上記の例では約 48 バイトのメモリを使用します。
計算エンジンごとのワークスペース メモリの効率性
計算エンジンはワークスペース レベルで決定するため、メモリ効率を把握する際はワークスペース内のすべてのデータの全体的な構成を考慮してください。
Classic エンジンでは、データが含まれているかどうかに関係なく、グリッドの各セルで 8 バイトのメモリを使用します。Polaris ではデータを含むセルだけが 24 バイトのメモリを使用します (数値セル一つにつき)。
どちらのエンジンの方がメモリ効率が高くなるかは全体の密度に左右されます。
- セル全体の 33% 以上にデータが含まれている場合は、Classic エンジンの方がメモリ効率が高くなります。
- データが含まれるセルが全体の 33% 未満の場合は、Polaris の方がメモリ効率が高くなります。
スパース性が式に与える影響はライン アイテムの構成時に確認できます。[Populated Cell Count]、[Memory Used]、[Calc Complexity] の各列にこの情報が表示されます。スパース性が式に与える可能性がある影響についてはこちらのリンク先を参照してください。