Qlik Senseナレッジ - INSIGHT LAB

【Qlik Sense】集計時間が長いときは演算実行条件を設定する

作成者: Deck|2018年4月17日

演算実行条件

こんにちは。Deckです。

今回は非常に重い分析を実行するときに活用する演算実行条件を解説します。

Qlik Senseでは大量データの分析が可能ですが、データ量や分析方法によっては集計に長い時間がかかりその間操作ができなくなることがあります。

そこでシートを開いてすぐには集計を実行せず、項目を絞り込んでレコード件数を少なくしてから集計するなどの工夫が必要になります。

演算実行条件の機能を利用すると適切なデータ量に絞り込んでから集計することができます。

今回解説するアプリのサンプルはこちらからダウンロードできます。

qvfファイルをQlik Senseのウインドウにドラッグ&ドロップしてファイルを開きましょう。

演算実行条件の使い方

サンプルのqvfファイルを開くと、はじめの状態ではチャートが表示されていません。

データ件数が多いため、演算実行条件が満たされていないからです。

リストボックスから年月を選択してみましょう。

集計を行っても問題ないデータ件数まで絞り込みをするとチャートが表示されます。

集計に時間がかかることが見込まれるチャートには演算実行条件を設定しておきましょう。

演算実行条件の設定

ここからは演算実行条件の設定方法を解説します。

シートの編集画面を開き、チャートを選択して「拡張機能」タブに移動します。

 

「演算実行条件」の欄に数式を入力します。この条件が満たされているときのみ集計が実行されます。

サンプルアプリでは明細テーブル内の一意に振られたレコード番号が絞り込みで10,000件以下になった場合にのみ集計されるようにしています。

=GetPossibleCount(レコード番号)<=10000

GetPossibleCount関数は対象の項目で集計対象(フィルターパネルで緑または白背景の値)となるユニーク件数を返します。

同じ値のレコードが2件あるならまとめて1件とカウントされるため、想定した件数と異なる場合に注意しましょう。

ここではレコード件数を演算実行条件に指定しましたが、例えば"年度を1つ選択している場合のみ集計する"など、より適した条件がある場合があることもあります。

以下の数式を入力すると年度を1つのみ選択した場合のみ集計が行われます。

=GetSelectedCount(年度)=1

演算実行条件が満たされていない状態で表示されるメッセージをカスタムすることができます。

もしメッセージの入力欄がない場合、Qlik Senseを最新バージョンにアップデートしてみてください。

='集計対象を絞り込みしてください
(10000件以下で集計開始・現在'&GetPossibleCount([レコード番号])&'件)'

まとめ

演算実行条件の機能を利用すると「不意に大量データを集計対象にしてしまい、応答が返ってこない……」という事態を防ぐことができます。

PCの性能によって集計できるデータ件数は異なってきます。それぞれの環境で最適な条件を探してみましょう。