ループ構造の回避

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

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

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

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

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

 

● データ

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

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

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

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

 circular_refarence

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

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

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

 

■ ロードスクリプト

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

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

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

 circular_refarence2

 

■ テーブルビューアー

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

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

circular_refarence3

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

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

 

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

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

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

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

項目country:LOAD memberID as countryID

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

 circular_refarence4

 

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

■ テーブルビューアー

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

circular_refarence5

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

 

 

 

QlikViewを体験してみませんか?

アイウェイズコンサルティングでは毎月QlikViewの無料ハンズオンセミナーを開催しています。 初めてQlikViewをご利用される方を対象に、QlikViewって何?ってところからQlikViewと他のBIとの違いについてもわかりやすくご説明させて頂いております。