SAP BW で列ストアが既定値に

執筆者: Martin Merdes

このポストは、2018 年 4 月 26 日に投稿された Columnstore became default in SAP BW の翻訳です。

 

概要

これまで以下の機能は SAP BW on Microsoft SQL Server のオプションとして利用可能でした。

  • BW キューブ用の SQL Server 列ストア (SAP BW 7.0 以降)
  • 列ストアに最適化されたフラット キューブ (SAP BW 7.4 以降) 詳しくはこちらのブログ記事 をご覧ください。

これらの機能の効果はこちらのブログ記事 (英語) で紹介しています。多くのお客様のもとで BW のクエリ パフォーマンス改善に役立つことが証明されたため、「SAP Note 2582158 – Make Columnstore and Flat Cube default」の適用後は、これらの機能が既定で有効になりました。

列ストアを既定値で利用できるのは、SQL Server 2016 以降のバージョンに限られます。
 

キューブを新規作成する

以下の場合を除いて、新規作成するキューブは列ストア キューブとなります。

  • RSADMIN パラメーターを下記の設定とし、処理を明示的に無効化した場合
  • ・MSS_DEFAULT_CS = FALSE
  • APO キューブの場合
    SAP Advanced Planning and Optimization (APO) のキューブでは、列ストアを使用しません。
  • リアルタイム キューブの場合
    SAP のリアルタイム キューブでは、RSADMIN パラメーターを下記の設定とした場合を除き、列ストアは E ファクト テーブルでのみ使用されます。
  •   ・MSS_REALTIME_FFACT_CS = X

 

キューブを転送する

転送先のシステムのキューブが空の場合、転送後に自動的に列ストアに変換されます。
 

すべてのキューブを列ストアに変換する

すべてのキューブを列ストアに変換する方法は、3 つあります。SAP レポート MSSCSTORE の 2 つ目のタブで、すべての SAP BW キューブに対するグローバル設定を定義できます。これは、新規キューブ作成時の既定値ではなく、(既存、新規含めた) 全キューブに対するグローバル設定です。 [Always Column Store (CS)] を選択し F8 キーを押すと、SAP BW のすべてのキューブが列ストア キューブとして定義されます。ただしこの時点では、データベースで列ストア インデックスは作成されません。SAP レポート MSSCSTORE は、キューブの定義の変更のみのため、数分で完了します。

  • プロセス チェーンを使用して変換する
    BW キューブのすべてのインデックスは、[Create Index] という BW プロセス チェーンの実行時、または SAP トランザクション RSA1 の [Repair DB indexes] 実行時に作成されます。SAP レポート MSSCSTORE で列ストアの定義を変更すると、この方法でキューブのインデックスを徐々に変換することができます。

  • 一度に変換する
    SAP レポート MSSCSTORE で [Repair indexes of all cubes] を選択すると、列ストア インデックスをデータベースで一度に作成することができます。この場合、SAP レポート MSSCSTORE の実行時間が数時間に及ぶこともあるため、SAP レポート MSSCSTORE は (F9 キーを押して) バッチ ジョブとして実行することをお勧めします。また、必ず SQL Server のトランザクション ログの容量を十分に確保し、ログのバックアップを定期的に実行してください。

  • R3load のシステム コピー中に変換する
    R3load のシステム コピー中に、すべてのキューブを列ストアに自動変換することができます。その場合、SAP レポート SMIGR_CREATE_DDL でデータベースのバージョンを [SQL Server 2016 (all column-store)] に指定します。

 

まとめ

SAP BW リリース 7.40 SP8 よりも古いバージョンでは、すべての BW キューブを列ストアに変換することをお勧めします。上記より新しいバージョンの SAP BW では、フラット キューブの適用もご検討ください。フラット キューブでは必ず列ストアが使用されます。