Создание слоя запроса для данных в базе данных документов

Вы можете перетащить пространственную таблицу из подключения к базе данных (.dbconn) на панели Каталог на карту для автоматического создания слоя запроса, который обращается к данным в базе данных документов. Либо воспользуйтесь кнопкой Добавить данные Добавить данные на вкладке Карта, чтобы создать слой запроса на карте в ArcGIS Pro.

Подсказка:

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

Описание рабочего процесса

Ниже приводится краткое описание того, что необходимо сделать для создания слоя запроса данных из поддерживаемых баз данных документов:

  • Подключиться к базе данных - вы можете создать подключение к базе данных на панели Каталог, добавить его в проект и перейти к нему из диалогового окна Новый слой запроса. Либо можно создать подключение базы данных в диалоговом окне Новый слой запроса. Подробные инструкции см. в разделах Подключение к Elasticsearch из ArcGIS Pro и Подключение к OpenSearch из ArcGIS Pro.
  • Задайте запрос — выберите таблицу и поля для включения в запрос. Слои запроса используют выражения SQL. Однако Elasticsearch и OpenSearch не являются реляционными базами данных, поэтому при создании слоя запроса из данных в этих базах данных поддерживается только часть операторов SQL. Вы не можете включать условия соединений и связей, а условия WHERE ограничены.
  • Проверьте запрос — процесс проверки изучает синтаксис выражения запроса. Он также использует свойства первой строки, возвращенной в таблице, для определения достоверности запроса. Слой запроса не может быть добавлен, если выражение запроса некорректно.
  • Задайте уникальный идентификатор — у всех объектов карты должны быть уникальные идентификаторы. Для каждого объекта слой запроса должен содержать значение в поле уникальных идентификаторов. По умолчанию слой запроса использует системное поле идентификаторов в качестве поля уникальных идентификаторов объектов. Если вы хотели бы использовать другое поле идентификаторов, вы можете выбрать его. Если вы выберете поле, это должно быть целочисленное поле, содержащее уникальные значения.
  • Задайте тип геометрии — тип геометрии слоя указывает, хранит ли слой точечные, мультиточечные, линейные или полигональные объекты. Для определения того, какой тип геометрии хранится в таблице по умолчанию используется тип геометрии первой строки. Поскольку ArcGIS поддерживает только один тип геометрии для каждой таблицы, на карте будут отображаться только объекты с геометрией этого типа. Вы можете указать тип геометрии, отличный от того, который содержится в первой строке, возвращаемой слоем запроса.

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

    Не поддерживаются поля со вложенной геометрией.

Поддерживаемые форматы условий WHERE

Не все выражения условий SQL WHERE поддерживаются при запросе базы данных документов из ArcGIS. В слоях запроса, обращающихся к базам данных документов, можно использовать следующий синтаксис:

  • <FIELD_NAME | LITERAL>'<='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'>='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'<'<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'>'<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'<>'<FIELD_NAME | LITERAL>
  • <BOOLEAN EXPRESSION> AND | OR <BOOLEAN EXPRESSION>
  • NOT <BOOLEAN EXPRESSION>
  • <FIELD_NAME> LIKE <STRING>
  • <FIELD_NAME> NOT LIKE <STRING>
  • <FIELD_NAME> IN ( <LITERAL>, <LITERAL>, ... )
  • <FIELD_NAME> NOT IN ( <LITERAL>, <LITERAL>, ... )
  • <FIELD_NAME> BETWEEN <FIELD_NAME | LITERAL> AND <FIELD_NAME | LITERAL>
  • <FIELD_NAME> NOT BETWEEN <FIELD_NAME | LITERAL> AND <FIELD_NAME | LITERAL>

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

  • <FIELD_NAME> IS NULL — возвращает строки, в которых отсутствует значение для указанного поля.
  • <FIELD_NAME> IS NOT NULL — возвращает строки, в которых есть значение для указанного поля.

Создание слоя запроса для таблицы в Elasticsearch или OpenSearch

Чтобы добавить слой запроса на карту, с данными в Elasticsearch или OpenSearch, либо перетащите таблицу на карту, либо задайте слой запроса в диалоговом окне Новый слой запроса.

Перетаскивание таблицы на карту

При перетаскивании таблицы на карту из файла подключения базы данных (.dbconn) на панели Каталог ArcGIS Pro автоматически создает слой запроса, выбирающий все строки и поля этой таблицы. Он также устанавливает системное поле _id в качестве поля уникального идентификатора для слоя.

ArcGIS Pro вычисляет экстент данного слоя при добавлении его на карту перетаскиванием. ArcGIS Pro также определяет тип геометрии первой строки и устанавливает его в качестве типа геометрии для слоя запроса. На карте будут отображаться только объекты с геометрией этого типа.

После добавления слоя на карту при необходимости можно изменить слой запроса.

Задание запроса в диалоговом окне Новый слой запроса

Выполните следующие действия, чтобы определить слой запроса на карте в проекте ArcGIS Pro с помощью диалогового окна Новый слой запроса:

  1. Откройте карту, на которую вы хотите добавить слой запроса в ArcGIS Pro.
  2. Щелкните стрелку на кнопке Добавить данные Добавить данные в группе Слой на ленте Карта и выберите Слой запроса Добавить слой запроса из ниспадающего меню.

    Раскройте меню Добавить данные и выберите Слой запроса.

    Откроется диалоговое окно Новый слой запроса.

  3. Укажите подключение, выполнив одно из следующих действий:
    • Если файл подключения (.dbconn) уже существует в проекте, выберите его из ниспадающего списка.
    • Если соединение не существует в проекте, нажмите кнопку создания нового подключения к базе данных Новое подключение к базе геоданных и создайте подключение. После создания подключения выберите его в ниспадающем списке.
  4. В текстовом поле Имя укажите имя создаваемого слоя запроса.

    Это имя будет отображаться на панели Содержание карты.

  5. Введите или вставьте запрос SQL в текстовое окно Запроса.

    Чтобы увидеть список таблиц (индексов) и полей этих таблиц, отметьте поле Список таблиц. Вы можете дважды щелкнуть таблицу в разделе Список таблиц, чтобы добавить все поля в текстовое окно Запрос и изменить этот запрос в текстовом окне Запрос. Например, вы можете удалить поля из запроса, которые не желаете включать, и добавить в запрос условия WHERE, чтобы ограничить данные, включенные в слой запроса.

    Вы можете использовать условие WHERE, описанное в расположенном выше разделе, но никакие другие условия не поддерживаются.

  6. Выберите способ определения пространственных свойств слоя.
    • Выберите Разрешить ArcGIS обнаружить пространственные свойства для слоя (опция по умолчанию), чтобы разрешить ArcGIS Pro использование пространственных свойств первой строки, возвращаемой запросом. ArcGIS Pro обнаруживает эти свойства при проверке выражения SQL.
    • Выберите Определить пространственные свойства слоя, если вы хотите, чтобы слой включал объекты с пространственными свойствами, отличными от свойств первой строки.
  7. Щелкните Проверить, чтобы убедиться, что синтаксис запроса корректный, и что ArcGIS может использовать этот запрос.

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

    Правила проверки следующие:

    • Результирующий набор должен иметь не больше одного пространственного поля.
    • Результирующий набор должен иметь только один тип геометрии.
    • В результирующем наборе не должно быть каких-либо типов полей, не поддерживаемых в ArcGIS.

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

    Проверка особенно важна при работе с базами данных, которые не поддерживают те же стандарты, что и ArcGIS.

  8. Когда запрос пройдет проверку, щелкните Далее.
  9. Чтобы выбрать поле уникальных идентификаторов, отличное от внутреннего поля идентификаторов объектов, поставьте отметку рядом с целочисленным полем, содержащим уникальные значения, которые ArcGIS может использовать в качестве идентификатора для каждого поля.

    Вам не нужно выбирать поле уникальных идентификаторов. Если поле не задано, будет использоваться системное поле идентификаторов.

  10. Примечание:

    M- и z-значения не поддерживаются.

    Вы не можете определить пространственную привязку для слоя; всегда используется SRID 4326, GCS WGS 1984.

  11. Выберите из ниспадающего меню тип геометрии.

    Он может быть уже задан, если ранее вы выбрали Разрешить ArcGIS Pro обнаруживать пространственные свойства для данного слоя.

  12. Если на шаге 6 вы выбрали опцию Разрешить ArcGIS Pro обнаруживать пространственные свойства слоя, щелкните Готово, чтобы добавить этот слой запроса на карту.
  13. Следующие два шага применимы только в том случае, если вы выбрали опцию Определить пространственные свойства слоя.

  14. В разделе Свойства экстента слоя укажите пространственный экстент слоя запроса, выбрав один из следующих вариантов:
    • Входной экстент - При щелчке по кнопке Далее необходимо ввести экстент. Указанный вами экстент должен быть действительным и включать все объекты в таблице.
    • Использовать экстент карты - Экстент текущей карты будет использоваться для экстента слоя запроса. Щелкните Далее, чтобы просмотреть значения экстентов карты.
    • Использовать экстент пространственной привязки - Экстент пространственной привязки данных используется для экстента слоя запроса. Для некоторых пространственных привязок это весь земной шар. Щелкните Далее и просмотрите значения экстентов пространственной привязки.
  15. Когда вы закончите настройку или просмотр экстента слоя, щелкните Готово, чтобы добавить слой запроса на карту.

Для получения информации об изменении свойств слоя запроса обратитесь к разделу Изменение слоя запроса.