概要
Cognos AnalyticsやCognos BIを、データ・ダウンローダーとして使用する環境が結構あります。
基本的にCognosはビジネス・インテリジェンスのツールで、レポートやダッシュボードを作るためのツールなので、単純なデータ・ダウンロード用途としてはあまり向いていません。
しかしながら、エンドユーザーの方が自分でデータアイテムを組み合わせて、必要なデータを生成してダウンロードできるのはやはり便利なので、データ・ダウンロードの要件は常に存在します。
このテーマは、過去Cognosのプロジェクトで何度も問題になってきた重要なテーマなので、実機での検証結果とともに、是非覚えておいて頂きたい考慮点をまとめておきたいと思います。
検証結果
先に実機テストでやった事と結果を記載します。
環境
Cognos Analytics 11.0.11 on Redhat 6.8
ダウンロード・データイメージ
この様なイメージのリストレポート(GOSALESサンプルデータ51列)を、Excel、Excel Data、CSV形式でダウンロードしてみました。
シナリオ及び結果
色々なバリエーションでデータダウンロード時の、実行時間、BIBusTKServerMainプロセスの使用メモリ、Cognos一時領域の使用容量を結果にまとめました。
結果からわかる事
では、結果一覧から読み取れる事を記載していきます。
出力形式での比較(No 1,2,3 or 4,5,6)
Excel形式の出力が、他の出力方式に比べて、やはり最も時間がかかり、消費メモリーや一時領域使用も大きい事がわかります。
それぞれの出力形式の意味は、こちらをご参照下さい。
・Microsoft Excel 形式のレポートの作成
https://www.ibm.com/support/knowledgecenter/ja/SSEP7J_11.0.0/com.ibm.swg.ba.cognos.ug_cr_rptstd.doc/c_cr_rptstd_intrd_producing_reports_inexcel_format.html#cr_rptstd_intrd_producing_reports_inexcel_format
・CSV 形式のレポートの作成
https://www.ibm.com/support/knowledgecenter/ja/SSEP7J_11.0.0/com.ibm.swg.ba.cognos.ug_cr_rptstd.doc/c_cr_rptstd_intrd_csv_format.html#cr_rptstd_intrd_csv_format
クエリーモードでの比較(No 1,2,3 vs 4,5,6)
CQM(互換モード)でもDQM(動的モード)でも特に実行時間や消費リソースに違いは見られない事がわかりました。
ダウンロード件数での比較(No 4 vs 7 vs 8)
きれいに比例するわけではないですが、ダウンロード件数が多いと、実行時間、消費リソースは大きくなる事がわかります。
Report Server bitモードでの比較(No 4 vs 9)
64bitモードにすると、実行時間は多少短縮しますが、リソース使用はメモリーも一時領域も結構増える事がわかります。
考慮すべきポイント
Cognosの提案や要件定義でデータ・ダウンロードの要件がある時、以下の点を考慮すると良いと思います。
・Excel形式でのダウンロードは時間も負荷も大きいので、可能な限り別の方式のダウンロードを使用する
・リソースとして、BIBusTKServerMain(Report Server)のメモリーと一時領域に注意する。必要容量は、実際にダウンロードするデータ容量(※結果のExcelファイルサイズ参照)より遥かに大きい容量が必要となる。特に、BIBusTKServerMainは、Cognos Analyticsのデフォルトでは32bitなので、メモリー使用が2GBを超えるとエラーとなる。一時領域は、ざっくり100GB程度は用意するのが望ましい。
・経験上、10万件くらいを超えてくると、非常に危険になってくるので、ダウンロード件数の要件は必ず確認しておく。
・Report Server 64bitモードでは、CQM(互換モード)が使用できないので、その制限は理解しておく。
例:汎用ODBC接続が使えない、監査ログにネイティブ・クエリーが出力できない、移行の場合CQM→DQMモデル変換は結構大変、などなど
以上です。
問題となっている環境を何度もお見かけした、Cognos永遠のテーマとも言える重要な議題なので、是非覚えておいて頂き、致命的な事にならないようにお気をつけ頂ければと思います。