Cognos のデータ量制限
レポート実行時に大量過ぎる行を取得して、Cognosサーバーのリソースを長時間占有してしまう事を防ぐため、結果セットの容量に制限をかけたい、というのは常にある要件です。
これに関して、Cognos 10 BIの時に以下の記事を書きました。
Cognos BI でデータ量の制限をする方法
https://qiita.com/shinyama/items/2989ef0f6947597ae672
パッケージがCQMの場合はFramework Managerのガバナー、DQMの場合はqsMaxCrossjoinOrderOfMagnitude を使う、という内容でしたが、マニュアル等のどこにも記載は見当たらないのですが、Cognos Analyticsでやってみると、どうも動作が変わっているようなので共有しておきます。
Cognos Analyticsでのデータ量制限
どちらもDQMモードでの結果を記載しますが、まず前提として、Framework Managerで作成するモデルには、クエリーサブジェクトのみで作成される「リレーショナルモデル」と、ディメンションなどの階層構造を持つ「DMRモデル」があります。
qsMaxCrossjoinOrderOfMagnitudeの設定が有効になるケース
DQMモードで、DMRモデルのパッケージを使用している場合のみ有効のようです。
Cognos 10 BIでは、DQMのリレーショナルモデルでもこの設定が効いたのですが、Cognos Analyticsでは効かなくなっているようです。
Framework Managerのガバナーが有効になるケース
DQMモードで、リレーショナルモデルの場合、Framework Managerのガバナーで指定される「取得した行の最大数」などの設定が効くようになりました。
Cognos 10 BIではCQMしか効きませんでしたが、変わりましたね。
検証はCognos Analytics 11.0.13で試してみた結果です。
Cognos Analytics の最初のバージョンからこの動作なのか、途中のバージョンからなのかわかりませんが、少なくとも今後のプロジェクトで使用されるバージョンでは、こちらの動作を前提に考える事になると思います。
一応ご使用前には、実機でご確認頂ければと思います。
DQMのガバナーで実行時間の制御は不可
追記ですが、Framework Managerのガバナーに「クエリー実行時間の上限 (秒): 」がありますが、DQMの場合は効きません。あくまで「取得した行の最大数」のみが有効となりますのでご注意下さい。