关系用于根据公共字段或位置连接两个或更多数据集的属性。 关系可用于将引用表中的属性添加到其他数据集、合并来自两个数据集的属性以启用不同的分析类型,以及启用非空间表中的位置。
要在 ArcGIS Insights 中创建关系,您必须向页面添加两个或多个包含公用字段的受支持数据集。
关于关系
Insights 可在创建关系窗口中通过公共字段或位置连接两个或多个数据集中的数据。 例如,可以通过标识公共字段(例如,存储数字),将销售交易数据集与包含存储信息的数据集关联起来。 公用字段用于识别各数据集中彼此连接的行,而关系类型则用于确定在已连接数据集中将保留哪些行。
可以使用以下四种关系类型来连接数据集:
注:
通过将相交作为空间关系来创建空间连接(使用位置字段建立的连接)。 但是,您仍然可以选择“内部”、“全部”、“左”或“右”作为关系类型。
已连接数据集在数据窗格中显示为结果数据集 。 已连接数据集可用于扩展您的分析,方法是将所有已连接数据集中的数据用作单个图层。
在已连接数据集上下文中,基数是指数据集之间的关系。 在创建关系窗口中,请花些时间思考数据集之间的基数,可以是一对一、多对一或多对多。 基数不会影响所创建的关系类型,但是会影响已连接数据集中要进行聚合的字段或者选择在地图上显示的字段。
当您选择要连接的数据集时,Insights 还会建议一个公共字段。 如果未建议任何字段,可以选择要用于关系的字段。
支持的数据
以下数据类型可用于创建关系:
- 托管要素图层
- 添加到工作簿的文件
- 来自数据库连接的数据集(可用于 Insights in ArcGIS Enterprise 和 Insights desktop)
- 来自时空分析的结果数据集,其中包含来自不受支持数据类型的结果
创建关系不支持要素服务中的定义查询。 将在创建关系窗口中禁用工作簿中不支持关系的数据。
注:
无法使用远程要素图层(例如,ArcGIS Living Atlas 图层)创建关系。
数据库数据集必须来自同一数据库和实例,以便兼容连接。 其他数据集必须存储在同一数据存储中才能进行连接。
如果您的数据集无法连接或存储在单独的数据存储中,则可以将数据集复制到工作簿,然后使用复制的数据集来创建关系。
创建关系
要了解如何通过创建关系来连接数据集,可以完成以下步骤或者按照使用案例示例完成该过程,包括各关系类型的描述和结果。
- 单击数据窗格上方的创建关系按钮 。
随即显示创建关系窗口并在我的数据下显示当前页面的数据集列表。
- 在我的数据下,单击要连接的一个或多个数据集。
- 执行以下操作之一:
- 如果建议字段可接受并且要使用默认关系类型(内部),请前进至最终步骤。
- 如果要使用其他字段、添加要连接的其他字段或者选择其他类型的关系,请继续下一步骤。
- 如果未检测到公共字段,则数据集缩略图之间将显示一条直线并打开创建关系窗口,可以从该窗口中选择公共字段。 前进至步骤 5。
- 要编辑关系属性,例如,选择其他字段、添加要连接的其他字段或更改关系类型,请在连接数据集缩略图的关系直线上单击编辑关系按钮 。
- 选择一个或多个数据集中的其他字段,或者选择其他关系类型,然后关闭或单击关系属性对话框的外部。
- 可选:如果关系需要组合键,可以使用选择字段下的添加字段按钮。
例如,如果要将 CityName 连接到 CityName,由于 CityName 中的值在数据集中重复,因此可能还需要指定县、州和国家/地区。
- 执行以下操作之一:
- 单击完成(右下方)继续处理关系。
- 单击取消撤消当前关系。
单击完成后,将关闭创建关系窗口。 将具有已连接数据的新结果数据集 添加到数据窗格中。
使用案例示例:
本节介绍的使用案例示例说明了如何在两个数据集之间创建关系来回答特定问题,以及每种关系类型如何影响已连接数据集中的数据。
问题如下:
- 每个商店的销售收入是多少?
- 总收入最高的商店位于城市什么位置?
工作簿页面中的两个数据集可帮助回答这一问题。 第一个数据集是下方的 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(如果将 StoreID 更改为字符串字段,然后创建条形图)汇总的 TotalAmount,但是,如果需要与组织内的团队共享分析结果,为使结果更加清晰,首选按商店名称显示 TotalAmount 的报表。
此外,StoreTransactions 数据集无法在地图上显示商店位置。
第二个是要素图层,用于显示以下 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 |
这些数据集可以追踪两种不同细节级别的数据。 第一个数据集可以追踪交易级别的数据,第二个表格可以追踪商店级别的数据,交易级别比商店级别更详细。
因此,StoreTransactions 的 StoreID 列中存在重复记录,而 StoreLocations 的 StoreID 列中仅包含唯一记录。 每个商店存在多个交易。 这通常称为多对一关系,是数据集之间特定的一种基数类型。
查看这些数据后,可以明显看出 StoreID 字段最适用于在两个数据集之间创建关系。
要回答关于此使用案例的问题,您需要执行以下操作:
关系类型
所使用的关系类型以及所选择的公共字段决定了在已连接数据集中保留的记录。 以下各小节将提供按关系类型分类的已连接数据集的外观。
内部关系类型
如果已使用默认关系类型,同时遵照创建关系(如上所示)中的步骤,则连接数据集将使用内部关系类型。
内部仅保留匹配两个数据集的记录。 不会添加空记录。
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 的记录。
建议使用默认关系类型来帮助回答上述使用案例示例问题。 可视化数据时,内部关系类型将提供的数据不包括空值。
全关系类型
全关系类型(全外连接)将保留两个数据集中的所有记录,并将不含匹配项的记录视为空值。
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 |
在生成的数据集中,源自左数据集 (StoreTransactions) 的列中包含空值,对应右数据集 (StoreLocations) 中 StoreID 为 4、5 和 6 的记录。 这是因为左侧数据集中不含与这些商店 ID 相匹配的记录。
左关系类型
如果使用左关系类型(左外连接),必须通过首先选择此数据集来确保要保留记录的数据集位于创建关系窗口的左侧。 有关详细信息,请参阅创建关系。
将保留与左侧数据集 (StoreTransactions) 中的记录相匹配的记录,同时该记录也与左侧数据集 (StoreLocations) 中的记录相匹配。 如果在右侧未找到任何匹配项,则右侧将包含空值。
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 |
此连接数据集看起来与内部关系类型完全相同。 要回答使用案例示例的问题,可使用左关系类型或内部关系类型在两个表格之间创建关系,然后创建不显示空值的条形图。
如果左侧 (StoreTransactions) 包含 StoreID 7 的记录,而位于右侧的 StoreLocations 数据集中不含该记录,则左连接的右侧记录将为空。
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) 中的记录相匹配。 如果在左侧未找到任何匹配项,则左侧将包含空值。
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 |
由上述右连接数据集生成的条形图将包含空值。