BIシステムにおける定型分析と自由分析
BIシステムはデータウェアハウスなどに蓄積したデータを分析し、ダッシュボードや分析レポートの生成・ダウンロードを支援するシステムです。
レポートには、各ユーザーが自由に作成して分析する「自由分析」と、事前に作成された特定の定型業務用のレポート「定型分析」がある。
定型分析は定期的に繰り返し実行される分析レポートであり、通常は開発部門などで作成・テストされ最適化されたレポートとなっている。一方で、自由分析はユーザーが自由に作成することができるため、レポートの作りによっては、システムに過大な負荷をかけることで全体のレスポンス低下につながることが往々にして発生する。
今回の記事では、Db2のデータウェアハウスをデータソースとしたBIシステムで、ピーク時の自由分析レポートの実行を制限することで定型分析のレポートのレスポンスを確保する手法を紹介する。
BIツールはCognos Analyticsを想定している。
Db2ワークロード管理機能
Db2にはワークロード管理機能があり、データベース上で実行されるアクティビティをさまざまなしきい値でアクティブに管理することができます。
BIシステムにおけるピーク時のシステムリソース逼迫問題の典型的な例としては、最適化された定型分析は全体CPUの20%程度しか使用していないが、ユーザー作成の一部の負荷の高い自由分析がCPUの大半を占めてしまうことで、定型分析業務のレスポンス低下を招いている。
今回は、Db2ワークロード管理のCPU LIMITを使用することで、自由分析を実行するDB接続ユーザーのCPU使用率を70%に制限することで、ピーク時でも残りの30%のCPU資源を定型分析で使用できるようにする。
Db2設定手順
まずは、ワークロード管理ディスパッチャーを有効にするために、wlm_dispatcherデータベース・マネジャー構成パラメーターの値を設定します。(デフォルトは no です)
UPDATE DBM CFG USING wlm_dispatcher yes
ワークロード管理でサービス・クラスごとにCPUリミット制限ができるようにするために、データベースに接続後、データベース構成パラメータに以下を設定します。(デフォルトは0です)
update db cfg using WLM_CPU_LIMIT 100
CPU使用制限を行うサービス・クラスを2つ作成し、片方はCPU使用率を70%に制限する
create service class sc-jiyu cpu limit 70
create service class sc-teikei cpu limit NONE
作成したサービス・クラスにDB接続ユーザーを割り当てる。例として、自由分析を行うレポートのDB接続ユーザーをdb-jiyu、定型分析を行うレポートのDB接続ユーザーをdb-teikeiとする。
create workload wl-jiyu SYSTEM_USER ('db-jiyu') service class sc-jiyu
create workload wl-teikei SYSTEM_USER ('db-teikei') service class sc-teikei
上記は、Cognos Analyticsで自由分析および定型分析を実行するレポートのデータソース定義が個別に定義され、それぞれのDB接続ユーザーがdb-jiyuおよびdb-teikeiとなっていることが前提です。
また、Db2ワークロード管理の詳細な運用手順やCognos Analyticsでのデータソース定義の手順はこの記事では割愛します。
参考:CPU リミットの設定
https://www.ibm.com/docs/ja/db2/12.1.0?topic=overview-setting-cpu-limit
まとめ
BIシステムはユーザーがノーコードで自由に分析レポートが作成できるが、その自由さゆえにシステムに過大な負荷をかけるレポートも作成できてしまう。
今回のケースではDb2のワークロード管理機能を活用して、業務ユーザーごとのサーバー資源の利用制限を行った。
また、ピーク時の流量制限については、以下の記事も参考にしてください。
参考:ピーク時の流量制限について