目次
はじめに
Qlik Senseにおいて、データロードにおけるメモリ消費の削減やロード時間短縮のために使用される部分的なロード「Partial Reload」について、併用することができない処理が存在します。
今回はこちらのPartial Reloadと併用不可の処理についてご紹介いたします。
Partial Reloadとは
「Partial Reload」とは、追加されたデータ分のみのロードを行う部分的なロード処理です。
部分的なロードを行うことで、フルリロードを行うよりもロード時間の短縮、データロードにおけるメモリの削減を行うことができます。
併用不可の処理
パーシャルリロードにはQlik Senseの仕様上併用できない処理が存在しており、併用しようと試みると、パーシャルリロードの処理が実行されない場合があります。
パーシャルリロードは「既存のデータとの差分」から求めます。
そのため、データモデルそのものを変更する処理やデータ全体を再構築するような処理とは相性が悪く、パーシャルリロードが実行されない可能性があります。
今回、パーシャルリロードと併用することができない処理についてご紹介いたします。
【パーシャルリロードと併用不可の処理】
・LOAD/SELECT(ADD,REPLACE,MERGEのプレフィックスが無い場合はロードされない)
・SET/LET(フルリロード専用で定義した変数をパーシャルリロードで実行するとエラーが発生)
・SECTION ACCESS(部分的なロードに対するセキュリティ定義がサポートされていないため、意図しないセキュリティ状態になる可能性あり)
・FieldValueCount(パーシャルリロード時にフィールド値の削除を行った場合でも、最後のフルリロード時のカウントを返す可能性あり)
・FieldValue(フィールドから削除された値が取得できてしまい不正確な値を返す可能性あり)
・Qualify(フィールド名が変更されてしまい、前回のリロード状態を保持できずエラーが発生してしまう)
上記の処理は、パーシャルリロードとの併用はできません。
その他、こちらにまとめていない処理でもデータモデルの構造を変更するような処理に関してはパーシャルリロードとの併用はエラーが発生する場合や、意図しない動作をしてしまう可能性がありますので注意が必要です。
【併用不可の処理に対しての対処方法】
基本的に、フルリロード時のデータモデルを変更してしまう処理を行うとエラーが発生したり予期しない動作をしてしまうため、パーシャルリロードと併用ができません。
対処方法としては、
・ADD,MERGE,REPLACEのプレフィックスが使用されているか確認を行う(LOAD/SELECT)
・併用不可の処理はフルリロード時のみに実行されるよう制御する(SET/LET、SECTION ACCESS、FieldValueCount、FieldValue)
・RENAMEを用いて手動でリネーム処理を行う(Qualify)
上記の対処方法を用いることで、パーシャルリロード時にエラーや予期しない動作を発生させないことが重要です。
おわりに
今回はPartial Reloadと併用不可の処理について、対処方法をまとめさせていただきました。
この情報が少しでもお役に立てれば幸いです。
参考文献
・部分的なリロード | Windows用 Qlik Senseヘルプ
・Qualify | Windows用 Qlik Senseヘルプ