Отношения применяются для соединения атрибутов из двух или более наборов данных на основании общих полей или местоположений. Общее поле определяет, какие строки из какого набора данных будут соединены друг с другом, а тип отношений определяет, какие записи сохраняются в объединенном наборе данных.
Отношения можно использовать для добавления атрибутов из справочной таблицы к другому набору данных, для комбинирования атрибутов из двух наборов данных, чтобы сделать возможным различные типы анализа, и для включения местоположений в непространственные таблицы. Соединенный набор данных отображается, как итоговый набор данных , на панели данных и позволяет расширить возможности анализа, используя данные из всех соединяемых наборов для получения единого слоя.
Отношения могут создаваться, как часть вашего анализа, или в качестве части рабочего процесса Data Engineering.
Пример
Специалист по отслеживанию контактов в сфере общественного здравоохранения расследует вспышку инфекционного заболевания. У специалиста по отслеживанию контактов есть доступ к справочной таблице с данными о случаях заболеваний (включая результаты тестов) и набору данных с мероприятиями и местами, где были зафиксированы предшествовавшие тестированию контакты. Два набора данных соединены, и данные о случаях заболеваний добавлены к данным местоположений. Используя объединенный набор данных, специалист по отслеживанию контактов может создать справочную таблицу с информацией о случаях, мероприятиях, датах их проведения и результатах теста, а также диаграмму treemap, показывающую результат теста и число мероприятий для каждого случая.
Целиком рабочий процесс вы найдете в упражнении Отслеживание распространения вируса с помощью ArcGIS Insights.
Создание отношения в рабочем процессе анализа
Отношения, созданные в рабочем процессе анализа, есть только в рабочей книге, в которой было создано соединение. Если вы желаете сохранить итоговый набор данных вне рабочей книги, вы можете создать новый векторный слой, опубликовав этот набор данных, или воспользоваться инжинирингом данных.
Чтобы создать отношение в рабочем процессе сетевого анализа, выполните следующие действия:
- Откройте рабочую книгу и при необходимости добавьте два или большее число наборов данных.
- Щелкните кнопку Создать отношения над панелью данных.
Появится окно Создать отношения со списком наборов данных вашей текущей страницы.
- Выберите первый набор данных для соединения.
Когда вы выбираете первый набор данных, в виде отобразятся только наборы, подходящие для отношения.
- Выберите первый второй набор данных для соединения.
Insights анализирует добавленные вами наборы данных и предлагает, по возможности, поля для соединения. Предлагаемые поля основываются на типе данных, содержащихся в поле, и имени поля.
- Щелкните кнопку Редактировать отношение , чтобы изменить следующие свойства отношения:
Примечание:
Если не выбраны предлагаемые поля, автоматически откроется диалоговое окно.
- Чтобы изменить поля для связи, щелкайте стрелки для окошек в параметре Выбрать поля и выбирайте новые поля.
- Чтобы добавить поля (например, когда набор данных использует составной ключ), щелкните кнопку Добавить поля и выберите в меню новые поля.
- Чтобы изменить тип связи, выберите Inner Внутри (по умолчанию), Все, Слева или Справа для параметра Выбрать тип отношений.
- Закройте окно Редактировать отношение.
- Повторите шаги с 4 по 6, чтобы добавить при необходимости другие наборы данных.
- Щелкните Готово, чтобы создать отношение.
Новый соединенный набор данных добавляется на панель данных.
Создание отношения с помощью Data Engineering
Примечание:
Data engineering доступно в Insights desktop. Все пользователи Insights in ArcGIS Online Insights in ArcGIS Enterprise получают доступ к Insights desktop. Более подробно см. Обзор ArcGIS Insights.
Data engineering в настоящий момент доступно в Предварительном просмотре.
Инструмент Создать отношения можно добавить в модель данных и использовать для связывания двух или большего числа набор данных, чтобы создать один выходной набор данных.
Чтобы создать отношение в рабочем процессе data engineering, выполните следующие действия:
- Откройте рабочую книгу данных в Insights desktop и добавьте данные, если это необходимо.
- На панели инструментов рабочей книги данных щелкните кнопку Создать отношения .
Появится окно Создать отношения.
- На боковой панели щелкните кнопку Панель данных , чтобы открыть ее, если необходимо.
- На панели данных выберите первый набор данных для соединения.
- Выберите первый второй набор данных для соединения.
Insights анализирует добавленные вами наборы данных и предлагает, по возможности, столбцы для соединения. Предлагаемые столбцы основываются на типе содержащихся в столбце данных и имени столбца.
- Щелкните кнопку Редактировать отношение , чтобы изменить следующие свойства отношения:
Примечание:
Если не выбраны предлагаемые поля, автоматически откроется диалоговое окно.
- Чтобы изменить столбцы для связи, щелкайте стрелки для окошек в параметре Выбрать столбцы и выберите новый столбец.
- Чтобы добавить поля столбцы (например, когда набор данных использует составной ключ), щелкните кнопку Добавить столбцы и выберите в меню новые столбцы.
- Чтобы изменить тип связи, выберите Inner Внутри (по умолчанию), Все, Слева или Справа для параметра Выбрать тип отношений.
- Закройте окно Редактировать отношение.
- Повторите шаги с 5 по 7, чтобы добавить при необходимости другие наборы данных.
- Дополнительно: щелкните Просмотр, чтобы создать представление результирующего набора данных на основе текущих параметров соединения.
- Щелкните Готово, чтобы создать отношение.
Новый соединенный набор данных добавляется на панель данных и появляется таблица. Инструмент добавляется в модель данных.
Поддерживаемые данные
Для создания отношений могут быть использованы следующие типы данных:
- Векторные слои
- Поля, добавленные в вашу рабочую книгу
- Наборы данных из подключений баз данных (доступно в Insights in ArcGIS Enterprise и Insights desktop)
- Результирующие наборы данных пространственного анализа, включая результаты из не поддерживаемых типов данных
Определяющие запросы в сервисах объектов не поддерживаются для создания отношений. Данные в рабочей книге, которые не поддерживаются отношениями, в окне Создать отношения отключаются.
Примечание:
В рабочих процессах анализа не поддерживаются отношения для следующих наборов данных:
- Векторные слои с удаленным доступом, в частности, слои ArcGIS Living Atlas.
- Таблицы базы данных из разных баз данных или экземпляров.
- Наборы данных из разных хранилищ данных.
Если наборы данных несовместимы с соединением, можно скопировать наборы данных в рабочую книгу и использовать скопированные наборы данных для создания отношения. Либо можно соединить наборы данных из разных баз или хранилищ данных с помощью data engineering.
Типы отношений
Используемый вами тип отношений, а также выбранное вами общее поле предопределяют сохраняемые в соединенном наборе данных записи. В Insights поддерживаются следующие типы отношений: Внутри, Все, Левое и Правое.
Примечание:
Пространственные соединения (соединения, выполненные с помощью полей местоположения) будут созданы с использованием пространственного отношения Пересекает. Вы по-прежнему сможете выбрать в качестве типа отношений Внутри, Все, Левое или Правое.
В следующих подразделах содержатся результаты соединения двух таблиц по общему полю для каждого типа отношений.
В первой таблице (Orders) отслеживается информация из разных ветвей. Таблица содержит уникальный ID для каждой транзакции, ID ветви, в которой имела место транзакция, стоимость транзакции в долларах и способ оплаты.
Заказы
ID заказа | ID ветви | Общая сумма ($) | Способ оплаты |
---|---|---|---|
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 |
1533 | 7 | 32.99 | Cash |
Вторая таблица (Branches) - справочная талица с ID и местоположениями ветви.
Branches
ID ветви | Местоположение ветви |
---|---|
1 | Редландс |
2 | Портленд |
3 | Вашингтон |
4 | Арлингтон |
5 | Шарлотта |
6 | Денвер |
Поле Branch ID общее для двух таблиц и используется для создания соединения. В каждом примере таблица Orders находится на левой стороне связи.
Внутри
Эти отношения (Внутри) сохраняют только записи, которые соответствуют обоим наборам данных. Пустые записи добавлены не будут.
Тип отношений по умолчанию - Внутри.
В следующей таблице показан результат связи с типом отношений Внутри между таблицами Orders и Branches.
ID заказа | ID ветви | Общая сумма ($) | Способ оплаты | Местоположение ветви |
---|---|---|---|---|
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 | Вашингтон |
Исключенными были записи со значениями ID ветви, равного 7, в таблице Orders и ID ветви, равного 4, 5 или 6 - в таблице Branches, поскольку эти записи отсутствуют в обеих таблицах.
Полностью
Тип отношений Все (полное внешнее соединение) сохраняет все записи обоих наборов данных и добавляя пустые значения при отсутствии совпадений.
В следующей таблице показан результат связи с типом отношений Все между таблицами Orders и Branches:
ID заказа | ID ветви | Общая сумма ($) | Способ оплаты | Местоположение ветви |
---|---|---|---|---|
<Null> | 4 | <Null> | Арлингтон | |
<Null> | 5 | <Null> | Шарлотта | |
<Null> | 6 | <Null> | Денвер | |
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 | Вашингтон |
1533 | 7 | 32.99 | Cash | <Null> |
Итоговый набор данных содержит пустые значения для ID ветви 4, 5, 6 и 7, так как эти идентификаторы отсутствуют в обоих наборах данных.
Left
Тип отношений Слева (левое внешнее соединение) сохраняет все записи из левой таблицы и совпадающие записи из правой таблицы. Если слева совпадающих значений нет, используются пустые значения.
При использовании типа отношений Слева нужно убедиться в том, что таблица, все записи которой вы хотите сохранить, находится на левой стороне связи, выбрав эту таблицу первой.
В следующей таблице показан результат связи с типом отношений Слева между таблицами Orders и Branches:
ID заказа | ID ветви | Общая сумма ($) | Способ оплаты | Местоположение ветви |
---|---|---|---|---|
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 | Вашингтон |
1533 | 7 | 32.99 | Cash | <Null> |
Итоговый набор данных содержит пустое значение для ID ветви 7, так как этот идентификатор отсутствует в наборе данных Branches.
Right
Тип отношений Справа (правое внешнее соединение) сохраняет все записи из правой таблицы и совпадающие записи из левой таблицы. Если справа совпадающих значений нет, используются пустые значения.
При использовании типа отношений Справа нужно убедиться в том, что таблица, все записи которой вы хотите сохранить, находится на правой стороне связи, выбрав эту таблицу второй.
В следующей таблице показан результат связи с типом отношений Справа между таблицами Orders и Branches:
ID заказа | Общая сумма ($) | Способ оплаты | ID ветви | Местоположение ветви |
---|---|---|---|---|
<Null> | <Null> | 4 | Арлингтон | |
<Null> | <Null> | 5 | Шарлотта | |
<Null> | <Null> | 6 | Денвер | |
1204 | 91.48 | Credit | 1 | Редландс |
1295 | 103.86 | Credit | 1 | Редландс |
1316 | 97.81 | Debit | 3 | Вашингтон |
1406 | 103.24 | Credit | 2 | Портленд |
1421 | 44.95 | Cash | 2 | Портленд |
1426 | 153.71 | Debit | 2 | Портленд |
1454 | 168.95 | Credit | 3 | Вашингтон |
Итоговый набор данных содержит пустое значение для ID ветви 4, 5, и 6, так как эти идентификаторы отсутствуют в наборе данных Orders.
Ограничения
Вы можете указать до шести пар полей для соединения атрибутов. Для пространственных соединений вы можете указать одну пару полей местоположения и никаких дополнительных полей.
Рекомендации
Рекомендуется размещать с левой стороны связи наиболее подробный набор данных. Например, в примере типа отношений слева находится таблица Orders.
Используйте несколько полей для создания соединений при отсутствии уникальности значений в одном поле. К примеру, если вы присоединяете City Name к City Name, вы можете задать значения округа (county), штата (state) и государства (country), так как значения CityName дублируются в наборе.
Выберите кардинальность соединения («один к одному», «один ко многим» или «многие ко многим»), чтобы понимать, какое отображение создавать для соединенного набора данных. Кардинальность не влияет на тип отношения (Внутри, Все, Слева или Справа), но имеет значение для агрегирования полей в объединенном наборе данных и отображения полей на вашей карте. Например, если отношения объединенных наборов данных - «один к многим» или «многие ко многим», визуализация, объединяющая данные, например, столбчатая диаграмма, может отобразить искусственно завышенную статистику.