チュートリアル: 1 つのソース テーブルから複数のノードとエッジの種類を追加する

前のチュートリアルの手順では、各ソース テーブルが 1 つのノード タイプまたは 1 つのエッジ タイプにマップされています。 ただし、リレーショナル テーブルには多くの場合、埋め込みエンティティが含まれています。 たとえば、 Employees テーブルには Country 列が含まれています。 国を単なるプロパティとして Employee ノードに格納するのではなく、独自の Country ノード タイプに抽出し、 livesIn エッジに接続できます。 このアプローチでは、従業員と国の関係を直接照会できる、より豊富なグラフ モデルが作成されます。

このチュートリアルの手順では、 Employees ソース テーブルから次のグラフ エンティティを作成します。

  • Country ノードの種類 (新規)
  • livesInEmployee (新規) に接続するCountryエッジ タイプ。 このエッジは、Employee livesIn Countryであることを示します。

Adventure Works 従業員テーブル

Adventure Works データ モデルの Employees データ ソース テーブルには、次の列があります。

  • EmployeeID_K
  • ManagerID
  • EmployeeFullName
  • JobTitle
  • OrganizationLevel
  • MaritalStatus
  • Gender
  • Territory
  • Country
  • Group

次の表は、これらの列がグラフ エンティティにどのようにマップされるかを示しています。

グラフエンティティ タイプ キー列
Employee ノード (既に存在) EmployeeID_K
Country ノード (新規) Country
livesIn エッジ (新規)、 Employee から Country EmployeeID_KCountry

前の表では、Countryは Employees テーブルのソース列とグラフ内の新しいノードタイプの両方を参照しています。 これらは同じ名前を共有しますが、列はテーブル内の生データですが、ノードの種類はグラフ モデルのエンティティです。

ソース テーブルからノード タイプを作成する場合は、テーブルの関連する列を、そのノード タイプの プロパティ として手動で追加します。 Employees テーブルには 10 個の列があるため、 Employee ノードタイプと Country ノードタイプの両方に、これらの 10 個の列をすべてプロパティとして追加できます。 この記事では、ノード タイプに関連するプロパティのみを Country に追加します。

Country ノード タイプを作成する

Country ノード タイプを作成するには、次の手順に従います。

  1. グラフ モデルの上部のリボンで、[ノードの 追加] を選択します。

  2. [ ノードの作成] で、次の値を入力します。

    • ノード ラベル: Country
    • ソース テーブル: adventureworks_employees
    • キー: Country。 キー列として Country を選択すると、ノードタイプのプロパティとして追加されます。
  3. 他のプロパティは追加しないでください。

  4. [ 作成] を選択して、ノードの種類をグラフに追加します。

    1 つのプロパティを持つ Country ノードの種類を示すスクリーンショット。

グラフに追加された Country ノードの種類が表示されます。

livesIn エッジを作成する

Employeeノードタイプは、前のチュートリアル手順のグラフに既に含まれています。 新しいCountry ノードを、新しいEmployee エッジを使用してlivesIn ノードに接続します。

livesInエッジ タイプを作成するには、次の手順に従います。

  1. 上部のリボンで、[ エッジの追加] を選択します。
  2. [ エッジの作成 ] ダイアログで、次の値を入力します。
    • エッジ ラベル: livesIn
    • ソース テーブル: adventureworks_employees
    • 配信元ノード: Employee
    • オリジン キー: EmployeeID_K
    • ターゲット ノード: Country
    • ターゲット キー: Country
  3. [ 作成] を選択して、グラフにエッジを追加します。

livesInノードとEmployee ノードの間にグラフに追加されたCountryエッジの種類が表示されます。

Employee ノードの種類を変更する

Countryが、Employee エッジによってlivesInに接続された独自のノード タイプになったので、Country列はEmployee プロパティとして冗長になります。 Employeeノードタイプを編集して、Countryプロパティを削除します。

  1. Employee ノード タイプをダブルクリックして、そのプロパティを表示します。
  2. [ 定義の編集] を選択します
  3. Country プロパティをオフにして、ノードから削除します。
  4. 保存を選びます。

ヒント

過剰なプロパティを使用すると、グラフの保守と使用が困難になります。 すべてのノード の種類に対して、次のプロパティは使用しないでください。

  • ノードの一意性には必要ありません
  • クエリや分析には必要ありません

グラフを読み込む

すべてのノード タイプとエッジ タイプを構成したら、グラフを再読み込みします。 グラフの構造を変更した後、再読み込みが必要です。

上部のリボンで、[ 保存] を選択します。 このアクションは、グラフ モデルを検証し、OneLake からデータを読み込み、グラフを構築して、クエリの準備を整えます。 データのサイズによっては、このプロセスに時間がかかる場合があるため、しばらくお待ちください。

livesIn エッジで接続された Employee ノードと Country ノードを含むグラフを示すスクリーンショット。

グラフには、新しい Country ノード タイプと livesIn エッジ タイプが含まれるようになりました。 この構造により、従業員とその国間の関係を直接照会できます。

Review

このチュートリアルの手順では、1 つの Employees ソース テーブルから 2 つのノード タイプと 1 つのエッジ タイプを操作しました。

  • Employee ノード (前の手順で作成し、ここで調整)
  • Countryノード(新しい、Country列から抽出された)
  • livesIn エッジ (新規、 EmployeeCountryに接続)

このパターンは、グラフ内で個別のノードとして表す埋め込みエンティティがリレーショナル テーブルに含まれている場合に便利です。 国、都市、部署など、個別の現実世界のエンティティを表す列を、独自のノード タイプに抽出する候補として探します。

ヒント

モデリング パターンと決定ガイダンスの詳細については、「 グラフ スキーマの設計」を参照してください。

次のステップ