循環参照
データ構造に循環参照 (ループ) が存在する場合、テーブルは 2 つの項目間に複数の関連付けパスが存在するように関連付けられます。
次の手順を実行します。
- Scripting Tutorial アプリでデータ ロード エディターを開きます。
- をクリックして新しいスクリプト セクションを追加します。
- Region セクションに名前を付けます。
-
右のメニューの [DataFiles] で、[データを選択] をクリックします。
- Region.txt をアップロードして選択します。データ プレビュー ウィンドウが開きます。
- すべての項目を選択し、[ファイル名] の下にある [埋め込まれた項目名] が選択されていることを確認します。このオプションが選択されていると、データをロードする際にテーブルの項目名が含まれます。
- [スクリプトを挿入] をクリックします。
- [データのロード] をクリックします。
- [データ モデル ビューア] を開きます。
すると、データのロードに問題が生じたことがわかる結果が出ます。これは、循環参照が発生したためです。[データのロード進行状況] ウィンドウにエラー メッセージが表示され、ロード中に循環参照が見つかったことを通知します。ロードは完了しており、アプリが保存されています。
テーブル間の接続がわかりやすくなるように、テーブルをドラッグして並べ替えます。
赤の点線は、循環参照を示しています。データ解釈が曖昧になる可能性があるため、循環参照が生じないよう配慮が必要です。
循環参照の解決
循環参照が生じる原因を究明するため、[データ モデル ビューア] にあるテーブルを検証してみましょう。
上のスクリーンショットの Table1 と Table2 には、両方とも Date という項目があります。そして、Table1 および Region には、SalesKey という共通の項目があります。さらに、Table2 と Region には、Week という項目があります。これは、循環参照 (ループ) が作成されていることを意味します。このような循環参照は、後のデータ分析で問題を生じさせる可能性があるため、ここで削除しておきます。
最も簡単な解決方法は、項目名を 1 つ変更または削除することです。この例では、アプリに不要なデータがロードされているため、このデータを削除します。
次の手順を実行します。
- データ ロード エディタを開きます。
- Region セクションをクリックし、LOAD ステートメントから次の 2 行を削除します。
- "Region Code" の後のコンマも忘れず削除してください。
- [データのロード] をクリックします。
- [データ モデル ビューア] を開きます。
"Week",
SalesKey
スクリプトは次のようになります。
LOAD
Region,
"Region Code"
FROM [lib://DataFiles/Region.txt]
(txt, codepage is 28591, embedded labels, delimiter is '\t', msq);
Region への不適切な参照が削除されました。