前のチュートリアルの手順では、各ソース テーブルが 1 つのノード タイプまたは 1 つのエッジ タイプにマップされています。 ただし、リレーショナル テーブルには多くの場合、埋め込みエンティティが含まれています。 たとえば、 Employees テーブルには Country 列が含まれています。 国を単なるプロパティとして Employee ノードに格納するのではなく、独自の Country ノード タイプに抽出し、 livesIn エッジに接続できます。 このアプローチでは、従業員と国の関係を直接照会できる、より豊富なグラフ モデルが作成されます。
このチュートリアルの手順では、 Employees ソース テーブルから次のグラフ エンティティを作成します。
-
Countryノードの種類 (新規) -
livesInをEmployee(新規) に接続するCountryエッジ タイプ。 このエッジは、Employee livesIn Countryであることを示します。
Adventure Works 従業員テーブル
Adventure Works データ モデルの Employees データ ソース テーブルには、次の列があります。
EmployeeID_KManagerIDEmployeeFullNameJobTitleOrganizationLevelMaritalStatusGenderTerritoryCountryGroup
次の表は、これらの列がグラフ エンティティにどのようにマップされるかを示しています。
| グラフエンティティ | タイプ | キー列 |
|---|---|---|
Employee |
ノード (既に存在) | EmployeeID_K |
Country |
ノード (新規) | Country |
livesIn |
エッジ (新規)、 Employee から Country |
EmployeeID_K → Country |
注
前の表では、Countryは Employees テーブルのソース列とグラフ内の新しいノードタイプの両方を参照しています。 これらは同じ名前を共有しますが、列はテーブル内の生データですが、ノードの種類はグラフ モデルのエンティティです。
ソース テーブルからノード タイプを作成する場合は、テーブルの関連する列を、そのノード タイプの プロパティ として手動で追加します。 Employees テーブルには 10 個の列があるため、 Employee ノードタイプと Country ノードタイプの両方に、これらの 10 個の列をすべてプロパティとして追加できます。 この記事では、ノード タイプに関連するプロパティのみを Country に追加します。
Country ノード タイプを作成する
Country ノード タイプを作成するには、次の手順に従います。
グラフ モデルの上部のリボンで、[ノードの 追加] を選択します。
[ ノードの作成] で、次の値を入力します。
-
ノード ラベル:
Country - ソース テーブル: adventureworks_employees
-
キー:
Country。 キー列としてCountryを選択すると、ノードタイプのプロパティとして追加されます。
-
ノード ラベル:
他のプロパティは追加しないでください。
[ 作成] を選択して、ノードの種類をグラフに追加します。
グラフに追加された Country ノードの種類が表示されます。
livesIn エッジを作成する
Employeeノードタイプは、前のチュートリアル手順のグラフに既に含まれています。 新しいCountry ノードを、新しいEmployee エッジを使用してlivesIn ノードに接続します。
livesInエッジ タイプを作成するには、次の手順に従います。
- 上部のリボンで、[ エッジの追加] を選択します。
- [ エッジの作成 ] ダイアログで、次の値を入力します。
-
エッジ ラベル:
livesIn - ソース テーブル: adventureworks_employees
-
配信元ノード:
Employee -
オリジン キー:
EmployeeID_K -
ターゲット ノード:
Country -
ターゲット キー:
Country
-
エッジ ラベル:
- [ 作成] を選択して、グラフにエッジを追加します。
livesInノードとEmployee ノードの間にグラフに追加されたCountryエッジの種類が表示されます。
Employee ノードの種類を変更する
Countryが、Employee エッジによってlivesInに接続された独自のノード タイプになったので、Country列はEmployee プロパティとして冗長になります。
Employeeノードタイプを編集して、Countryプロパティを削除します。
-
Employeeノード タイプをダブルクリックして、そのプロパティを表示します。 - [ 定義の編集] を選択します。
-
Countryプロパティをオフにして、ノードから削除します。 - 保存を選びます。
ヒント
過剰なプロパティを使用すると、グラフの保守と使用が困難になります。 すべてのノード の種類に対して、次のプロパティは使用しないでください。
- ノードの一意性には必要ありません
- クエリや分析には必要ありません
グラフを読み込む
すべてのノード タイプとエッジ タイプを構成したら、グラフを再読み込みします。 グラフの構造を変更した後、再読み込みが必要です。
上部のリボンで、[ 保存] を選択します。 このアクションは、グラフ モデルを検証し、OneLake からデータを読み込み、グラフを構築して、クエリの準備を整えます。 データのサイズによっては、このプロセスに時間がかかる場合があるため、しばらくお待ちください。
グラフには、新しい Country ノード タイプと livesIn エッジ タイプが含まれるようになりました。 この構造により、従業員とその国間の関係を直接照会できます。
Review
このチュートリアルの手順では、1 つの Employees ソース テーブルから 2 つのノード タイプと 1 つのエッジ タイプを操作しました。
-
Employeeノード (前の手順で作成し、ここで調整) -
Countryノード(新しい、Country列から抽出された) -
livesInエッジ (新規、EmployeeをCountryに接続)
このパターンは、グラフ内で個別のノードとして表す埋め込みエンティティがリレーショナル テーブルに含まれている場合に便利です。 国、都市、部署など、個別の現実世界のエンティティを表す列を、独自のノード タイプに抽出する候補として探します。
ヒント
モデリング パターンと決定ガイダンスの詳細については、「 グラフ スキーマの設計」を参照してください。