リレーションシップを使用して、共通のフィールドまたは位置に基づいて複数のデータセットの属性を結合できます。 リレーションシップを使用して、参照テーブルの属性を別のデータセットに追加したり、2 つのデータセットの属性を結合して、さまざまなタイプの解析を可能にしたり、非空間テーブルで位置を有効化することができます。
ArcGIS Insights でリレーションシップを作成するには、ページと共通のフィールドを含む複数のサポートされているデータセットを追加する必要があります。
リレーションシップについて
Insights の [リレーションシップの作成] ウィンドウで共通のフィールドまたは場所を使用して、複数のデータセットのデータを結合できます。 たとえば、共通フィールド (店舗番号など) を識別することで、売買取引のデータセットを、店舗情報を含むデータセットと関連付けることができます。 共通フィールドは、各データセットでどの行同士が結合されているかを特定し、リレーション タイプはどの行が結合したデータセットで維持されるかを決定します。
データセットの結合で使用できるリレーションシップには、次の 4 タイプがあります。
注意:
空間結合 (位置フィールドを使用した結合) は、空間リレーションシップとして [交差する] を使用して作成されます。 ただし、リレーションシップ タイプとして、[内部]、[すべて]、[左]、[右] も選択できます。
結合したデータセットは、データ ウィンドウに結果データセット として表示されます。 結合したデータセットでは、すべてのデータを 1 つのレイヤーとして使用することで、解析を拡張できます。
結合したデータセットとの関連から見れば、基数はデータセット間のリレーションシップを意味します。 [リレーションシップの作成] ウィンドウで、データセット間の基数を十分に考察してみてください。基数は、1 対 1、多対 1、多対多のいずれかになります。 基数は、作成するリレーションシップのタイプには影響を与えませんが、結合データセットで集約するフィールドまたはマップに表示するよう選択したフィールドには影響します。
結合するデータセットを選択するときに、Insights は推奨する共通フィールドも提示します。 フィールドが提示されない場合は、リレーションシップに使用するフィールドを選択できます。
サポートされるデータ
リレーションシップを作成するには、次のデータ タイプを使用できます。
- ホスト フィーチャ レイヤー
- ワークブックに追加されたファイル
- データベース接続からのデータセット (Insights in ArcGIS Enterprise と Insights desktop で利用可能)
- 空間解析の結果データセット (サポートされていないデータ タイプからの結果を含む)
フィーチャ サービスのフィルター設定は、リレーションシップの作成でサポートされていません。 ワークブック内でリレーションシップがサポートされていないデータは、[リレーションシップの作成] ウィンドウで無効になります。
注意:
リモート フィーチャ レイヤー (ArcGIS Living Atlas レイヤーなど) とのリレーションシップは作成できません。
データベース データセットの結合に互換性を持たせるには、データベース データセットを同じデータベースおよびインスタンスから取得する必要があります。 他のデータセットも、結合するものと同じデータ ストアに格納する必要があります。
データセットの結合に互換性がないか、データセットが別のデータ ストアに格納されている場合は、データセットをワークブックにコピーし、コピーしたデータセットを使用してリレーションシップを作成できます。
リレーションシップの作成
リレーションシップを作成してデータセットを結合するには、以下の手順を実行するか、または使用例に従ってプロセスを実行します (各タイプのリレーションシップの説明と結果が記載されています)。
- データ ウィンドウの上にある [リレーションシップの作成] ボタン をクリックします。
[リレーションシップの作成] ウィンドウが表示され、[マイ データ] の現在のページにデータセットのリストが表示されます。
- [マイ データ] で、結合する 1 つ以上のデータセットをクリックします。
注意:
リレーションシップ タイプで、左または右結合を選択する場合、左または右にあるべきデータセットが正しい配置にあることを確認してください。 ページに追加すると、最初に選択したデータセットが左に表示されます。ヒント:
ベストプラクティスは、最も詳細なレベルの (最も粒度の細かい) データセットを左側に配置することです。 以下で説明する使用例では、StoreTransactions データセットを左に配置します。
最初のデータセットを選択すると、ビューが更新され、リレーションシップに使用できるデータセットのみが表示されます。
Insights は、追加されたデータセットを解析し、フィールドに含まれるデータのタイプとフィールドの名前に基づいて、結合に使用するフィールドを提示します。 フィールドが提示されれば、各データセットを示すサムネイルにフィールド名が表示され、サムネイル間を結ぶ線で結合を表します。
- 次のいずれかを実行します。
- 提示されたフィールドを採用し、デフォルトのリレーションシップ タイプ (内部) を使用する場合は、最後の手順に進みます。
- 別のフィールドを使用する場合は、別のフィールドを結合に追加するか、別のタイプのリレーションシップを選択して、次の手順に進みます。
- 共通フィールドを検出できなかった場合、データセットのサムネイル間にラインが表示され、[リレーションシップの作成] ウィンドウが開き、共通フィールドを選択できます。 手順 5 に進みます。
- 別のフィールドの選択、結合への他のフィールドの追加、リレーションシップ タイプの変更など、リレーションシップのプロパティを編集するには、データセットのサムネイル同士を結ぶリレーションシップ ライン上の [リレーションシップの編集] ボタン をクリックします。
- 1 つ以上のデータセットで別のフィールドを選択するか、別のリレーションシップ タイプを選択した後、リレーションシップ プロパティのダイアログ ボックスを閉じるか、その外部をクリックします。
- オプション: リレーションシップに複合キーが必要な場合、[フィールドの選択] の下にある [フィールドの追加] ボタンを使用して、フィールドを追加できます。
たとえば、[CityName] を [CityName] に結合する場合、[CityName] の値がデータセット内で重複しているため、郡、州、および国も指定する必要があります。
- 次のいずれかを実行します。
- リレーションシップを続行するには、[完了] (右下) をクリックします。
- 現在のリレーションシップを取り消すには、[キャンセル] をクリックします。
[完了] をクリックすると、[リレーションシップの作成] ウィンドウが閉じます。 結合したデータを含む新しい結果データセット がデータ ウィンドウに追加されます。
使用例
このセクションでは使用例を用いて、質問の回答が得られるよう 2 つのデータセット間のリレーションシップを作成する方法について説明し、各リレーションシップ タイプが結合データセットのデータに与える影響についても説明します。
質問は次のとおりです。
- 店舗ごとの営業収益は?
- 市内で最も収益の高い店舗は?
ワークブック ページにある 2 つのデータセットを使用して、この質問に回答します。 最初に、3 店舗の店舗取引額を表す Excel テーブルを示します。
OrderID | StoreID | TotalAmount | PaymentMethod |
---|---|---|---|
1204 | 1 | 91.48 ドル | Credit |
1295 | 1 | 103.86 ドル | Credit |
1316 | 3 | 97.81 ドル | Debit |
1406 | 2 | 103.24 ドル | Credit |
1421 | 2 | 44.95 ドル | Cash |
1426 | 2 | 153.71 ドル | Debit |
1454 | 3 | 168.95 ドル | Credit |
StoreTransactions データセットは単独で、[StoreID] ごとの [TotalAmount] のサマリーを示します ([StoreID] を文字列フィールドに変更し、バー チャートを作成した場合)。ただし、組織のチーム間で解析結果を共有する場合は、店舗ごとの [TotalAmount] に関するレポートのほうが、理解しやすく好まれます。
補足すると、StoreTransactions データセットは、マップ上で店舗の位置を示すことができません。
2 つ目は、次の 6 つの店舗の位置を示すフィーチャ レイヤーです。
StoreID | StoreName |
---|---|
1 | Baskets and Cases |
2 | Toys! Toys! Toys! |
3 | Robert's Plants |
4 | Aisha's Bookstore and Coffee Shop |
5 | Gadgets and Gizmos |
6 | Sally's Hardware and Construction |
これらのデータセットは、2 つの異なる詳細レベルでデータを追跡します。 1 つ目のデータセットは、トランザクション レベルでデータを追跡します。これは、店舗レベルでデータを追跡する 2 つ目のテーブルよりも詳細なレベルです。
結果として、StoreTransactions の [StoreID] 列には重複するレコード (行) が表示され、StoreLocations の [StoreID] 列には一意のレコードのみが表示されます。 店舗ごとのトランザクションは数多くあります。 これは多対 1 のリレーションシップと呼ばれ、データセット間の基数タイプの 1 つです。
データを確認すると、[StoreID] が 2 つのデータセット間のリレーションシップの作成に使用する最適なフィールドであることがわかります。
この使用例で質問の回答を得るには、次を実行する必要があります。
- 各リレーションシップ タイプが、結合されたデータセットに及ぼす影響を検討します。
- リレーションシップの作成 (上記) の手順に従って、入力データセットに対して最適に機能するリレーションシップを作成します。
- 結合したデータを可視化して、質問に回答します。
- 結合データセットの [StoreName] および [TotalAmount] フィールドを使用して、バー チャートを作成するか、サマリー テーブルを作成して、フィールドを集約します。 売上高が店舗名ごとに集約されます。
- [TotalAmount] フィールドを使用して等級シンボル マップを作成します。
リレーションシップ タイプ
使用するリレーションシップ タイプと選択する共通フィールドによって、結合データセットに格納されるレコードが決まります。 次のサブセクションでは、結合データセットをリレーションシップ タイプ別に見ていきます。
[内部] リレーションシップ タイプ
デフォルトのリレーションシップ タイプを使用して「リレーションシップの作成」(上記) の手順を実行すると、結合データセットは [内部] リレーションシップ タイプを使用します。
[内部] では、両方のデータセットに一致するレコードのみが格納されます。 NULL レコードは追加されません。
OrderID | StoreID | TotalAmount | PaymentMethod | StoreID | StoreName |
---|---|---|---|---|---|
1204 | 1 | 91.48 ドル | Credit | 1 | Baskets and Cases |
1295 | 1 | 103.86 ドル | Credit | 1 | Baskets and Cases |
1316 | 3 | 97.81 ドル | Debit | 3 | Robert's Plants |
1406 | 2 | 103.24 ドル | Credit | 2 | Toys! Toys! Toys! |
1421 | 2 | 44.95 ドル | Cash | 2 | Toys! Toys! Toys! |
1426 | 2 | 153.71 ドル | Debit | 2 | Toys! Toys! Toys! |
1454 | 3 | 168.95 ドル | Credit | 3 | Robert's Plants |
除外されたレコードは、StoreLocations データセットの StoreID 4 ~ 6 のレコードです。
デフォルトのリレーションシップ タイプを使用すると、上記の使用例の質問の答えが見つかりやすくなります。 データを可視化する際、[内部] リレーション タイプは NULL 値を表示しないデータを提供します。
[すべて] リレーションシップ タイプ
[すべて] リレーションシップ タイプ (完全外部結合) を使用すると、両方のデータセットのすべてのレコードが維持され、一致しないレコードは NULL 値として処理されます。
OrderID | StoreID | TotalAmount | PaymentMethod | StoreID | StoreName |
---|---|---|---|---|---|
1204 | 1 | 91.48 ドル | Credit | 1 | Baskets and Cases |
1295 | 1 | 103.86 ドル | Credit | 1 | Baskets and Cases |
1316 | 3 | 97.81 ドル | Debit | 3 | Robert's Plants |
1406 | 2 | 103.24 ドル | Credit | 2 | Toys! Toys! Toys! |
1421 | 2 | 44.95 ドル | Cash | 2 | Toys! Toys! Toys! |
1426 | 2 | 153.71 ドル | Debit | 2 | Toys! Toys! Toys! |
1454 | 3 | 168.95 ドル | Credit | 3 | Robert's Plants |
5 | Gadgets and Gizmos | ||||
6 | Sally's Hardware and Construction | ||||
4 | Aisha's Bookstore and Coffee Shop |
作成されたデータセットでは、右のデータセット (StoreLocations) の [StoreID] 4、5、および 6 に該当するレコードとして、左のデータセット (StoreTransactions) をソースとする列に NULL 値が表示されています。 これは、左のデータセットにこれらのストア ID に一致するレコードがないためです。
[左] リレーションシップ タイプ
[左] リレーションシップ タイプ (左外部結合) を使用する際は、レコードを保持したいデータセットを最初に選択し、このデータセットが [リレーションシップの作成] ウィンドウの左側に来るようにする必要があります。 詳細については、「リレーションシップの作成」をご参照ください。
右のデータセット (StoreLocations) のレコードが照合され、左のデータセット (StoreTransactions) のレコードに一致するレコードが保持されます。 右側に一致するレコードがない場合は、右側に NULL 値が表示されます。
OrderID | StoreID | TotalAmount | PaymentMethod | StoreID | StoreName |
---|---|---|---|---|---|
1204 | 1 | 91.48 ドル | Credit | 1 | Baskets and Cases |
1295 | 1 | 103.86 ドル | Credit | 1 | Baskets and Cases |
1316 | 3 | 97.81 ドル | Debit | 3 | Robert's Plants |
1406 | 2 | 103.24 ドル | Credit | 2 | Toys! Toys! Toys! |
1421 | 2 | 44.95 ドル | Cash | 2 | Toys! Toys! Toys! |
1426 | 2 | 153.71 ドル | Debit | 2 | Toys! Toys! Toys! |
1454 | 3 | 168.95 ドル | Credit | 3 | Robert's Plants |
この結合データセットは、[内部] リレーションシップ タイプと外見がほぼ同じです。 使用例の質問の答えを得るには、[左] または [内部] のいずれかのリレーションシップ タイプを使用して、2 つのテーブル間のリレーションシップを作成してから、バー チャートを作成します (NULL 値は表示されません)。
左側 (StoreTransactions) に、右側の StoreLocations データセットにはない [StoreID 7] のレコードがある場合、左結合の右側には NULL レコードが表示されます。
OrderID | StoreID | TotalAmount | PaymentMethod | StoreID | StoreName |
---|---|---|---|---|---|
1204 | 1 | 91.48 ドル | Credit | 1 | Baskets and Cases |
1295 | 1 | 103.86 ドル | Credit | 1 | Baskets and Cases |
1316 | 3 | 97.81 ドル | Debit | 3 | Robert's Plants |
1406 | 2 | 103.24 ドル | Credit | 2 | Toys! Toys! Toys! |
1421 | 2 | 44.95 ドル | Cash | 2 | Toys! Toys! Toys! |
1426 | 2 | 153.71 ドル | Debit | 2 | Toys! Toys! Toys! |
1454 | 3 | 168.95 ドル | Credit | 3 | Robert's Plants |
1502 | 7 | 112.65 ドル | Cash |
[右] リレーションシップ タイプ
[右] リレーションシップ タイプ (右外部結合) を使用する場合、左のデータセットを最初に選択し、右のデータセットを次に選択することで、レコードのソースとなるデータセットが、[リレーションシップの作成] ウィンドウの右側に来るようにしなければなりません。 詳細については、「リレーションシップの作成」をご参照ください。
左のデータセット (StoreTransactions) のレコードが照合され、右のデータセット (StoreLocations) のレコードに一致するレコードが保持されます。 左側に一致するレコードがない場合は、左側に NULL 値が表示されます。
OrderID | StoreID | TotalAmount | PaymentMethod | StoreID | StoreName |
---|---|---|---|---|---|
1204 | 1 | 91.48 ドル | Credit | 1 | Baskets and Cases |
1295 | 1 | 103.86 ドル | Credit | 1 | Baskets and Cases |
1316 | 3 | 97.81 ドル | Debit | 3 | Robert's Plants |
1406 | 2 | 103.24 ドル | Credit | 2 | Toys! Toys! Toys! |
1421 | 2 | 44.95 ドル | Cash | 2 | Toys! Toys! Toys! |
1426 | 2 | 153.71 ドル | Debit | 2 | Toys! Toys! Toys! |
1454 | 3 | 168.95 ドル | Credit | 3 | Robert's Plants |
5 | Gadgets and Gizmos | ||||
6 | Sally's Hardware and Construction | ||||
4 | Aisha's Bookstore and Coffee Shop |
上記の右結合データセットから作成されたバー チャートには、NULL 値が表示されます。