Создание слоя запроса для данных в реляционной базе данных

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

Подсказка:

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

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

Предварительные требования и рабочие процессы

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

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

Подключение к реляционной базе данных

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

Вы можете создать подключение базы данных на панели Каталог, как описано в разделе Подключения к реляционным базам данных в ArcGIS AllSource, добавить его в проект и перейти к нему из диалогового окна Новый слой запроса. Либо можно создать подключение базы данных в диалоговом окне Новый слой запроса.

Построение SQL-запроса

Задайте SQL-запрос в текстовом окне Запрос, чтобы получить доступ к нужным данным из таблицы или вида.

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

Каждый столбец в базе геоданных имеет определенный тип данных. ArcGIS может работать с большинством обычных типов в базе данных. Однако некоторые типы не поддерживаются. Если тип столбца атрибутов – Unknown, это означает, что ArcGIS не поддерживает этот тип данных. Когда вы зададите запрос, все столбцы с неизвестным типом данных должны быть либо исключены, либо их тип должен быть изменен на тот, который поддерживается ArcGIS. Для получения списка поддерживаемых базами данных типов данных см. раздел Типы данных баз данных, поддерживаемые в ArcGIS.

Подсказка:

Добавлена поддержка следующих типов данных в ArcGIS AllSource:

  • Большое целое
  • Только дата
  • Только время
  • Сдвиг метки времени
Если новые типы данных присутствуют в исходной таблице при создании или изменении слоя запроса, они будут распознаны как новые типы. Чтобы сохранить отображение типов данных, использовавшееся в ArcGIS AllSource 3.1 и более ранних версиях, вы можете настроить параметры Карт и Сцен для вашей установки ArcGIS AllSource.

Поддержка новых типов данных зависит от платформы базы данных и облачного хранилища данных. Подробнее см. в разделе Типы данных баз данных, поддерживаемые в ArcGIS.

При построении слоя запроса используйте синтаксис SQL, специфичный для базы данных. Типичный пример: SELECT * FROM Test.myuser.US_States. В результате получается слой запроса, содержащий все строки из таблицы US_States. На карте показаны все Соединенные Штаты.

Чтобы понять, как использовать переменные в запросах SQL, см. раздел Задание параметров в слое запроса.

Проверка SQL-выражения

После построения запроса SQL проверьте его. Во время проверки ArcGIS использует свойства первой строки, возвращенной в таблице, для определения достоверности запроса.

ArcGIS также использует свойства первой строки, возвращаемой запросом, чтобы отфильтровать, какие другие строки будут отображаться на карте в соответствии с требованиями ArcGIS. Например, ArcGIS поддерживает только одну пространственную привязку в пространственной таблице. Если для пространственных объектов в вашем классе пространственных объектов используются разные ID пространственной привязки (SRID), по умолчанию слой запроса будет возвращать только те строки, которые имеют тот же SRID, что и первый объект, возвращенный запросом. Точно так же ArcGIS поддерживает только один тип геометрии для каждой таблицы. По умолчанию на карте будут отображаться только объекты с тем же типом геометрии, что и первая строка, возвращенная запросом. Чтобы использовать другой SRID или тип геометрии, определите пространственные свойства слоя запроса.

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

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

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

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

Определите пространственные свойства (необязательно)

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

  • Тип геометрии – свойство определяет тип слоя: точечный, мультиточечный, линейный или полигональный.
  • Значения Z и M - эти опции определяют, будет ли слой содержать объекты с координатами z или m.
  • Пространственная привязка – система координат и другие относящиеся к слою пространственные свойства.

    Бывает, что ArcGIS не может точно определить пространственную привязку, основываясь на текущем значении SRID, заданном для таких объектов в базе данных. Когда это произойдет, слой запроса будет иметь неизвестную пространственную привязку, и вы должны ее определить. Это не относится к облачным хранилищам данных, для которых вы не можете определить пространственную привязку.

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

  • SRID – идентификатор пространственной привязки, который используется для возвращения по запросу только объектов геометрии, имеющих ту же пространственную привязку. Значение SRID может быть пустым, если в слое запроса нет пространственного поля. Если это значение задано, все пространственные объекты, у которых нет указанного значения SRID геометрии, будут исключены из результирующего набора. Если данные в вашей базе данных используют пользовательский SRID, вы должны указать SRID в пространственных свойствах для слоя запроса. Это не относится к облачным хранилищам данных.

Создание слоя запроса для таблицы реляционной базы данных

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

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

При перетаскивании класса объектов базы данных, таблицы или представления на карту из подключения базы данных (.sde) на панели Каталог, ArcGIS AllSource автоматически создает слой запроса, выбирающий все строки и поля этого класса объектов, таблицы или представления. Это относится только к базам данных и не относится к многопользовательским базам геоданных.

ArcGIS AllSource вычисляет экстент данного слоя при добавлении его на карту перетаскиванием. Когда вы добавляете таблицу, содержащую множество объектов, вычисление экстента может занять некоторое время. Если вы знаете экстент данных или хотите использовать экстент пространственной привязки класса объектов, вы можете использовать их вместо того, чтобы ждать вычисление экстента. Для этого нажмите соответствующую кнопку в диалоговом окне Вычисление экстента. Щелкнув на кнопку Ввод экстента, необходимо ввести корректные значения; экстент должен включать в себя все объекты таблицы.

Альтернативные способы определения экстента

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. Когда запрос пройдет проверку, щелкните Далее.

    Подключитесь к базе данных и задайте запрос SQL для нового слоя запросов.

  9. Выберите поле уникального идентификатора для слоя запроса или используйте поле выбранное ArcGIS AllSource.

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

  10. Выберите тип геометрии и пространственную привязку.

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

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

    Укажите уникальный ID, тип геометрии и систему координат для пространственной привязки.

  11. Если ArcGIS AllSource заданы пространственные свойства на шаге 6, щелкните Готово, чтобы добавить слой запроса на карту.

    Следующие два шага не применяются, если ArcGIS AllSource определены пространственные свойства.

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

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

Связанные разделы