メイン コンテンツをスキップする

循環参照

このページ上

循環参照

データ構造に循環参照 (ループ) が存在する場合、テーブルは 2 つの項目間に複数の関連付けパスが存在するように関連付けられます。

  1. Scripting Tutorial アプリでデータ ロード エディターを開きます。
  2. をクリックして Create new新しいスクリプト セクションを追加します。
  3. Region セクションに名前を付けます。
  4. 右のメニューの [DataFiles] で、[データを選択] をクリックします。

  5. Region.txt をアップロードして選択します。データ プレビュー ウィンドウが開きます。
  6. すべての項目を選択し、[ファイル名] の下にある [埋め込まれた項目名] が選択されていることを確認します。このオプションが選択されていると、データをロードする際にテーブルの項目名が含まれます。
  7. [スクリプトを挿入] をクリックします。
  8. [データのロード] をクリックします。
  9. すると、データのロードに問題が生じたことがわかる結果が出ます。これは、循環参照が発生したためです。[データのロード進行状況] ウィンドウにエラー メッセージが表示され、ロード中に循環参照が見つかったことを通知します。ロードは完了しており、アプリが保存されています。

  10. [データ モデル ビューア] を開きます。
  11. テーブル間の接続がわかりやすくなるように、テーブルをドラッグして並べ替えます。

    循環参照を示すデータ モデル ビューア
    Data model viewer showing circular reference.

    赤の点線は、循環参照を示しています。データ解釈が曖昧になる可能性があるため、循環参照が生じないよう配慮が必要です。

循環参照の解決

循環参照が生じる原因を究明するため、[データ モデル ビューア] にあるテーブルを検証してみましょう。

上のスクリーンショットの Table1Table2 には、両方とも Date という項目があります。そして、Table1 および Region には、SalesKey という共通の項目があります。さらに、Table2Region には、Week という項目があります。これは、循環参照 (ループ) が作成されていることを意味します。このような循環参照は、後のデータ分析で問題を生じさせる可能性があるため、ここで削除しておきます。

最も簡単な解決方法は、項目名を 1 つ変更または削除することです。この例では、アプリに不要なデータがロードされているため、このデータを削除します。

  1. データ ロード エディターを開きます。
  2. Region セクションをクリックし、LOAD ステートメントから次の 2 行を削除します。
  3. "Week",

    SalesKey

  4. "Region Code" の後のコンマも忘れず削除してください。
  5. スクリプトは次のようになります。

    LOAD Region, "Region Code" FROM [lib://DataFiles/Region.txt] (txt, codepage is 28591, embedded labels, delimiter is '\t', msq);

  6. [データのロード] をクリックします。
  7. [データ モデル ビューア] を開きます。
  8. Region への不適切な参照が削除されました。

    循環参照が削除されたデータ モデル ビューア
    Data model viewer showing that circular reference has been removed.