Уникальные идентификаторы

Insights в ArcGIS Enterprise
Insights desktop

Каждая строка таблицы базы данных должна быть однозначно идентифицируемой для использования в Insights. В целях определения столбцов, используемых для идентификации уникальности, применяется следующая логика:

  • Поиск первичного ключа. Если он найден, используются столбцы, задающие первичный ключ.
  • Поиск индекса, помеченного как уникальный. Если он найден, используются столбцы, задающие индекс.
Подсказка:

Неожиданные результаты могут возникнуть, если используется уникальный индекс и в выбранные столбцы включаются нулевые значения. Рекомендуется определить первичный ключ для всех таблиц. Если невозможно определить первичный ключ, столбцы, участвующие в уникальном индексе, должны быть помечены в базе данных как not null.

Если вышеуказанные условия не выполняется, при выборе таблицы для добавления к рабочей книге вы увидите предупреждение, уникальный идентификатор применить необходимо. Уникальный идентификатор - это поле или комбинация полей, которая однозначно идентифицирует каждую строку в данных. Если используется одно поле, оно должно содержать только уникальные значения и не должно содержать нулевые. Если используется несколько полей, отдельные поля не обязательно должны содержать только уникальные значения, но комбинация полей обязательно должна быть уникальной.

Выборка уникальных идентификаторов сохраняется, и эта настройка автоматически применяется каждый раз при повторном добавлении таблицы. В Insights in ArcGIS Enterprise информация об уникальном идентификаторе хранится в браузере до перезапуска ArcGIS Server или удаления кэша браузера. В Insights desktop информация об уникальном идентификаторе хранится в течение сессии и удаляется при закрытии Insights desktop.

Уникальный идентификатор можно создать используя строковые или целочисленные поля. Поля даты, float или double не могут использоваться как уникальный идентификатор.

Примеры

В следующей таблице находятся данные по продажам в сети магазинов. Таблица содержит номер магазина, штат, где он расположен, и общий объем продаж. Два поля, Номер магазина и Общий объем продаж содержат уникальные ненулевые значения. Другое поле, Штат не содержит уникальных значений. В этом случае следует использовать поле Номер магазина как уникальный идентификатор, т.к. каждый магазин перечисляется только один раз и вы знаете, что номер магазина уникален.

Номер магазинаШтатОбщий объем продаж

1001

Колорадо

1,583,296.29

1002

Колорадо

1,938,495.84

1003

Вайоминг

1,439,752.57

1004

Монтана

2,583,485.83

1005

Монтана

928,573.67

Если одно поле не соответствует требованиям к уникальному идентификатору, или если вы не уверены, что значения этого поля всегда останутся уникальными, можно скомбинировать несколько полей, чтобы создать уникальные записи. В следующей таблице содержится число наименований на складе в каждом магазине. В отличие от предыдущего примера, поле Номер магазина не уникально, поскольку в каждом магазине имеется множество наименований. Поле Item ID также не уникально. Поле Количество сейчас уникально, но число наименований в магазине скорее всего может меняться и не всегда будет уникальным, поэтому это поле нельзя использовать как идентификатор. Лучшим идентификатором может быть комбинация полей Номер магазина и Item ID, т.к. каждое наименование указано в магазине только один раз.

Номер магазинаID элементаКоличество

1001

123456

20

1001

234567

5

1001

345678

16

1002

123456

11

1002

234567

0

1002

345678

21

Выбор уникального идентификатора

Выполните следующие шаги, чтобы применить уникальный идентификатор из таблицы базы данных:

  1. Щелкните значок предупреждения Нет первичного ключа.

    Откроется окно Выберите уникальный идентификатор. В окне отображаются непространственные поля таблицы базы данных, не содержащие нулевых значений, с соответствующим типом поля.

  2. Вы можете сделать следующее:
    • Если вы знаете, какой столбец или комбинация столбцов лучше всего подходит для создания уникального идентификатора, выберите поля.
    • Если вы этого не знаете, щелкните кнопку Анализировать, чтобы просканировать таблицу на предмет столбцов, содержащих уникальные значения. Столбцы, которые содержат уникальные значения, будут показаны следующим значком: Уникальные значения
    • Если в таблице нет полей, которые могут использоваться как уникальный идентификатор, или если вы не хотите создавать уникальный идентификатор по имеющимся полям, выберите Копировать таблицу базы данных и создать первичный ключ или Создать первичный ключ в рабочей книге данных.
  3. Щелкните Применить.

Создание первичного ключа

Некоторые таблицы базы данных не содержат столбцов, которые могут исползоваться как уникальный идентификатор. Поэтому, перед началом использования таблицы в Insights необходимо создать первичный ключ.

Первичный ключ создается либо при помощи Копирования таблицы базы данных и создания первичного ключа (рабочая книга Insights), либо при помощи Создания первичного ключа (рабочая книга данных).

Первичные ключи в рабочих книгах Insights

Insights не редактирует данные в таблицах базы данных, включая добавление столбца первичного ключа. Перед применением первичного ключа, создается копия таблицы базы данных. Местоположение копии таблицы базы данных зависит от разрешений на доступ к подключению базы данных. Если используется подключение "чтение/запись", копия будет сохранена в базе данных. Если используется подключение "только для чтения", таблица копируется и сохраняется в рабочей книге Insights. Наборы данных, скопированные в рабочую книгу, имеют те же функции, что и размещенные векторные слои или выгруженные файлы.

Первичные ключи в рабочих книгах данных

Insights desktop
Примечание:

Data engineering доступно в Insights desktop. Все пользователи Insights in ArcGIS Online Insights in ArcGIS Enterprise получают доступ к Insights desktop. Более подробно см. Обзор ArcGIS Insights.

Data engineering в настоящий момент доступно в Предварительном просмотре.

Для таблиц базы данных в рабочих книгах данных требуются уникальные идентификаторы. Поскольку новый набор данных создается при запуске модели данных, нет необходимости сначала копировать таблицу базы данных, чтобы добавить первичный ключ. Новый столбец уникального идентификатора (называемый id) виден в представлении таблицы и будет включен в выходной набор данных при запуске модели данных.