Создание слоя запроса для данных в облачном хранилище данных

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

Подсказка:

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

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

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

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

Подключение к хранилищу данных

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

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

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

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

При построении слоя запроса используйте синтаксис SQL, предназначенный для этого хранилища данных.

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

Дополнительную информацию см. в разделе Типы данных облачных хранилищ данных, поддерживаемые в ArcGIS.

Подсказка:

  • Чтобы понять, как использовать переменные в запросах SQL, см. раздел Задание параметров в слое запроса.
  • Если у вас нет заготовленного SQL-запроса, и вам надо просмотреть список таблиц, отметьте поле Список таблиц. Для создания SQL-запроса используйте двойной щелчок на таблицах и столбцах в списке.
  • Производительность отрисовки и запросов может быть снижена, если вы включаете в запрос внешние таблицы.

Создание материализованного вида

При работе с таблицами, содержащими большие объемы данных в хранилище данных, и создании запроса SQL, который ограничивает до какого-то разумного числа общее количество объектов, возвращаемых этим запросом, сохраните этот запрос в виде материализованного вида в базе данных, чтобы повысить производительность запросов.

Когда вы создаете материализованный вид в диалоговом окне Новый слой запроса, определением этого вида является SQL-запрос, заданный для данного слоя запроса. Когда бы вы ни работали со слоем запроса, этот слой обращается к материализованному виду, а не выполняет SQL-запрос.

Если материализованный вид создан в Google BigQuery, можно настроить срок действия этого материализованного вида. Сделайте это, чтобы избежать платы за хранение материализованного вида, если он вам не нужен более чем на несколько дней.

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

Подсказка:

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

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

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

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

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

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

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

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

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

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

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

    Примечание:

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

    Вы не можете задать пространственную привязку во время выполнения запроса к Google BigQuery.

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

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

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

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

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

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

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

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

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

  6. Выберите, как будут задаваться пространственные свойства слоя.
    • Разрешить ArcGIS Pro обнаруживать пространственные свойства для этого слояArcGIS AllSource использует пространственные свойства первой строки, возвращенной запросом. ArcGIS AllSource определяет эти свойства при проверке выражения SQL. Используется по умолчанию.
    • Определить пространственные свойства слоя - при выборе этого варианта необходимо указать, какие пространственные свойства будут использоваться для данного слоя.
  7. Поставьте отметку в поле Создать материализованный вид выходного слоя запроса для сохранения этого SQL-запроса как материализованного вида в облачном хранилище данных.
  8. Создавая материализованный вид в BigQuery, используйте стрелки вверх или вниз, чтобы указать количество дней, в течение которых этот материализованный вид должен оставаться в хранилище данных.

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

  9. Щелкните Проверить, чтобы убедиться, что синтаксис запроса корректный, и что ArcGIS может использовать этот запрос.

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

    Для проверки применяются следующие правила:

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

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

  10. Нажмите Далее по завершении проверки.
  11. Выберите поле уникального идентификатора для слоя запроса.

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

  12. Задайте пространственные свойства слоя запроса.

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

    1. Задавая слой запроса на Redshift, укажите, должен ли он включать объекты, содержащие m-координаты или z-координаты.
    2. Выберите из ниспадающего меню тип геометрии.
    3. Щелкните Система координат Система координат и выберите систему координат пространственной привязки, используемую данными, или импортируйте пространственную привязку из существующего набора данных.

      Помните, что это не перепроецирует данные.

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

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

    В этом разделе - Свойства экстента слоя - вы должны указать пространственный экстент слоя запроса, выбрав один из следующих вариантов:

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

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

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