QlikViewナレッジ - INSIGHT LAB

QlikViewでループ構造を回避する方法【循環参照】

作成者: Deck|2014年5月13日

QlikViewでループ構造を回避する方法

 

QlikView(クリックビュー)では、3 つ以上のテーブルの間でキーが重複する場合、循環参照が作成されます。

循環参照を実行すると延々と計算を実行してしまい、パフォーマンスに影響を及ぼす恐れがあります。

そのためQlikView(クリックビュー)は循環参照を避けるため 1 つ以上のテーブルを疎結合に設定します。

この場合、スクリプトをリロードすると警告ダイアログが表示されてしまいます。

今回は循環参照を解消する方法をご紹介します。

 

データ

以下のようなデータを用意します。

『city』のデータには『国名』・『メンバー名』が格納されています。

『country』のデータには『国名』・『国ID』が格納されています。

『member』のデータには『メンバーID』・『メンバー名』が格納されています。

 

 このデータは『国ID』と『メンバーID』に同じ『memberID』と名前がつけられています。

中に格納されているのは違う項目なのに同じ名前を使ってしまうのはあまり良いデータとはいえません。

このデータをロードスクリプトで読み込んでみましょう。

 

ロードスクリプト

ロードスクリプトの編集ウインドウを開きます。

リロードすると以下のような警告が表示されます。

1.【OKボタン】を押します。

 

 

テーブルビューアー

どのように参照されているか確認してみましょう。

テーブルビューアーを開きます。

『member』と『country』がそれぞれ疎結合になっています。

また、【ドキュメントプロパティ】の【テーブル】タブからも疎結合を確認することができます。

 

それでは、この循環参照を解消していきましょう。

まず、先ほど確認した『memberID』を別の名前に変更します。

ロードスクリプトの編集ウインドウを開きましょう。

1.重複している項目名を以下のように書き換えます。

項目country:LOAD memberID as countryID

2.【リロードボタン】を押します。

 

 

 

リロードしても警告が表示されません。

 

テーブルビューアー

テーブルビューアー画面を開きます。

循環参照が解消されているのが確認できます。

Qlikで使えるloadscript(ロードスクリプト)一覧はこちら