Публикация и изучение размещенного векторного слоя
Вы начнете с публикации набора данных о среде обитания лягушки Хохштеттера в качестве размещенного векторного слоя напрямую на своем портале Enterprise. Вы рассмотрите его свойства, чтобы понять, как он отвечает на запросы клиентов. Вы изучите сведения об элементе слоя и его настройки на портале, получите доступ к конечной точке REST векторного слоя и перейдете к конечной точке сервиса администратора, чтобы определить свойства на уровне сервиса, связанные с поведением запросов и кэшированием. Понимание этих свойств необходимо перед включением кэширования ответов, поскольку не все размещенные векторные слои или рабочие процессы подходят для кэширования.
Публикация размещенного векторного слоя
Чтобы включить кэширование ответов, вы создадите размещенный векторный слой из GeoJSON файла.
- Загрузите данные об среде обитания лягушек.
Пример данных – файл GeoJSON.
- Войдите под учётной записью организации ArcGIS.
Примечание:
Если у вас нет учетной записи организации, см. варианты доступа к программному обеспечению.
- На ленте щелкните вкладку Ресурсы.

- Щелкните Новый элемент.

- В окне Новый элемент щелкните Векторный слой.

- На странице Создать векторный слой прокрутите вниз и щелкните Загрузить файл.

- Щелкните Далее.
- Щелкните Ваше устройство. Перейдите в папку Загрузки, выберите FrogHabitat.geojson и щелкните Открыть.
Местоположение загрузки по умолчанию — папка Downloads, хотя вы можете указать другое место для сохранения файла.
- На странице Новый элемент добавьте следующую информацию:
- В поле Заголовок оставьте текущее название FrogHabitat.
- В поле Теги введите biodiversity, frogs и habitat, нажимая клавишу Tab после каждого тега.
- В поле Сводка введите или скопируйте и вставьте: Этот размещенный векторный слой содержит линии рек охраняемой среды обитания исчезающих видов лягушек в Новой Зеландии.

- Щелкните Сохранить.
Откроется страница описания элемента размещенного векторного слоя.

Далее вы зададите параметры публикации, чтобы каждый мог получить доступ к векторному слою.
- Щёлкните Опубликовать.

- В окне Опубликовать щелкните Для всех (общий).

Публичный уровень общего доступа хорошо подходит для данного варианта использования, когда данные по охране природы должны быть доступны внешней аудитории.
- Щелкните Сохранить.
Изучение свойств
Далее вы изучите свойства вновь опубликованного размещенного сервиса объектов в Enterprise и узнаете, какие настройки управляют тем, как слой отвечает на запросы клиентов.
- На странице сведений о векторном слое FrogHabitat, в поле URL щелкните кнопку Вид.

Открывается страница ArcGIS REST Services Directory; это HTML-вид конечной точки REST этого сервиса.

- В разделе Слои выберите Линии.

Откроется вид HTML конечной точки REST для данного слоя.

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

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

- В окне поиска введите editingInfo.

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

Это свойство имеет значение false, это означает, что кэширование ответов на запросы для этого слоя не включено.
Вы опубликовали размещенный векторный слой непосредственно на портале Enterprise, используя файл GeoJSON. Вы получили доступ к конечной точке REST сервиса объектов, чтобы убедиться, что он отслеживает дату последнего редактирования данных, но не имеет включенного кэширования ответов. Далее вы включите эту функцию.
Включить кэширование ответов на запросы для слоя
Далее вы включите кэширование ответов для размещенного векторного слоя FrogHabitat, изменив свойство supportsQueryWithCacheHint на true. Это позволяет Enterprise кэшировать ответы на запросы в хранилище объектов после получения ответа от реляционного хранилища один раз. Поскольку предоставление кэшированного ответа из хранилища объектов более эффективно, чем выполнение запроса к реляционному хранилищу, кэширование ответов оптимизирует эффективность размещенного векторного слоя.
Поскольку такая эффективность достигается только при повторении определенного запроса, кэширование ответов лучше всего подходит для случаев, когда пользователи выполняют один и тот же запрос многократно.
Включение кэширования ответов
Вы включите кэширование ответов, изменив свойство supportsQueryWithCacheHint на true. Операция updateDefinition позволяет обновить свойство определения для слоя сервиса объектов.
- В вашем браузере убедитесь, что активна вкладка с HTML-представлением слоя линий.

Для использования операции updateDefinition необходимо получить доступ к административному ресурсу слоя. Это можно сделать, добавив admin в URL-адрес.
- В адресной строке вкладки браузера замените rest/services на rest/admin/services.

- Нажмите Ввод.

Появится административная страница.
- Щелкните Update Definition в нижней части страницы.

- Для Input скопируйте и вставьте следующий фрагмент JSON:
{ "layerCache": { "enabled": true, "expiration": 1 } }
Примечание:
Соблюдайте отступы, как показано на изображении.
Это устанавливает кэш слоя на true и добавляет дату истечения, чтобы определить количество дней, в течение которых кэш будет храниться перед удалением. Значение свойства срока действия указано в днях, поэтому любой кэшированный ответ для этого слоя будет недействителен через один день. Более высокие значения означают, что кэшированный ответ будет доступен в течение более длительного времени. Более высокие значения также означают, что кэшированных ответов будет больше, что потребует больше места на диске.
- Щелкните updateDefinition.

Ответ JSON подтверждает успешность операции.

- Активируйте вкладку браузера с представлением JSON свойств слоя и обновите страницу.
- Найдите свойство supportsQueryWithCacheHint.

Выполнение запросов для использования кэширования ответов
Если для слоя включено кэширование ответов, клиенты, которые знают, как работает кэширование ответов, обычно структурируют запросы для его использования. К этим клиентам относятся ArcGIS Pro, Map Viewer и приложения, созданные с помощью ArcGIS Maps SDK for JavaScript. Но запросы не всегда будут структурированы таким образом, особенно если они выполняются другими клиентами. См. Кэширование ответов для размещенных слоев сервиса объектов в ArcGIS Enterprise, чтобы узнать, как структурировать запросы для кэширования ответов.
Вы используете блокнот, созданный в ArcGIS Notebooks, чтобы имитировать запросы к сервису от пользователей, чтобы увидеть, как должны быть структурированы запросы для кэширования ответов.
- Вернитесь на вкладку браузера с показанным Update Definition.

- В URL замените rest/admin/services на rest/services (удалите admin), удалите updateDefinition в конце и нажмите Enter.

Вы вернетесь на страницу ArcGIS REST Services Directory.

- Прокрутите страницу вниз и щелкните Query.

Когда клиент отправляет запрос к этому сервису, он использует эту конечную точку запроса. Вы используете эту конечную точку в блокноте для выполнения автоматических запросов.
- Скопируйте URL-адрес этой страницы запроса.
- Запустите ArcGIS Pro. Если будет предложено, войдите под лицензированной учетной записью организации ArcGIS.
Примечание:
Если у вас нет доступа к ArcGIS Pro или учетной записи организации ArcGIS, см. варианты доступа к программному обеспечению.
Когда вы открываете ArcGIS Pro, вам предоставляется возможность создать новый проект или открыть существующий. Если вы уже создавали проект, вы увидите список последних проектов.
- В разделе Новый проект щелкните Запуск без шаблона.

- Загрузите блокнот printResponseInfo.
- На ленте, на вкладке Вставка щелкните стрелку вниз рядом с Новый блокнот и выберите Добавить и открыть блокнот.

- Перейдите в папку, где вы сохранили printResponseInfo.ipynb, выберите printResponseInfo.ipynb и нажмите OK.
Блокнот появляется. Вы выберете первую ячейку кода и запустите ее.

- В блокноте выберите первую ячейку кода и щелкните кнопку Выполнить.

Примечание:
Также можно нажать Ctrl+Enter, чтобы запустить выбранную ячейку кода.
- Во второй ячейке кода замените значение queryURL в первой строке на URL-адрес запроса, который вы скопировали для своего сервиса.

Убедитесь, что URL-адрес заключен в двойные кавычки.
- Запустите вторую ячейку кода.

Ответ включает следующие значения:
- Status code — указывает, был ли запрос выполнен успешно, имея значение 200
- Date — дата и время выполнения запроса
Примечание:
Если значение Status code не равно 200, убедитесь, что вы указали правильное значение queryURL.
Далее вы запустите вторую ячейку несколько раз, чтобы увидеть, как изменится ответ.
- Запустите вторую ячейку кода несколько раз.
Для Date дата остается прежней, а время изменяется; однако информация в ответе в остальном идентична. Данные для этого запроса извлекаются из реляционного хранилища каждый раз, когда выполняется запрос.
- Измените строку 2 на resultType = "tile" и запустите ячейку один раз.

Информация ответа аналогична предыдущим запросам. Данные для этого запроса также были получены из реляционного хранилища. Но в отличие от предыдущих запросов, ответ был сохранен в кэше хранилища объектов, поскольку запрос использовал resultType = "tile".
- Запустите ячейку снова.

На этот раз ответ включает дополнительный заголовок, x-esri-ftiles-cache-compress: true. Это показывает, что ответ был получен из значения, кэшированного в хранилище объектов с предыдущего запроса. Новый запрос к реляционному хранилищу выполнять не потребовалось.
Если вы не видите заголовок x-esri-ftiles-cache-compress, убедитесь, что кэширование ответов включено для слоя и что вторая строка установлена на resultType = "tile".
- Измените строку 3 на cacheHint = "true" и запустите ячейку один раз.

Этот ответ похож на тот, что вы видели в исходном запросе. Поскольку этот запрос отличается от предыдущего, он не соответствует каким-либо ранее кэшированным ответам, поэтому для ответа потребовался новый запрос к реляционному хранилищу. Поскольку запрос использовал cacheHint = "true", ответ на этот запрос также был кэширован в хранилище объектов.
Примечание:
Не обязательно использовать resultType = "tile" вместе с cacheHint = "true". Один из вариантов сам по себе достаточен для обеспечения использования кэширования ответов.
- Запустите ячейку снова.
На этот раз ответ включает новый заголовок x-esri-cache-hint-features: true. Это показывает, что ответ получен из кэшированного значения хранилища объектов.

Затем вы измените значение количества объектов, чтобы увидеть, как это повлияет на ответ.
- В строке 4 измените значение numFeatures на 5 и запустите ячейку.

Поскольку запрос снова отличается, соответствующего кэшированного ответа пока нет. Данные получены из запроса к реляционному хранилищу, что подтверждается отсутствием заголовков x-esri-ftiles-cache-compress: true и x-esri-cache-hint-features: true.
- Запустите ячейку снова.

Теперь ответ включает заголовок x-esri-cache-hint-features: true, показывающий, что сервис использовала значение, кэшированное в хранилище объектов из предыдущего запроса.
Параметры resultType = "tile" или cacheHint = "true" необходимы для использования кэширования ответов. Когда пользователь выполняет запрос с любым из параметров к слою с включенным кэшированием ответов, данные для ответа будут получены из хранилища объектов, если они уже были кэшированы. Если данные еще не были кэшированы, новый запрос будет выполнен к реляционному хранилищу, и ответ будет кэширован в хранилище объектов. Пока не истечет срок действия кэша, любые идентичные запросы пользователей будут извлекаться из хранилища объектов вместо повторного запроса к реляционному хранилищу.
Включив кэширование ответов на запросы, организация сделала важный шаг к обеспечению широкого доступа к данным о среде обитания лягушки Хохштеттера, не создавая излишней нагрузки на свою инфраструктуру ArcGIS Enterprise. По мере роста общественного интереса к сохранению природы и увеличения числа пользователей, изучающих карты, приложения и операционные панели, созданные на основе этих данных, повторяющиеся запросы теперь могут эффективно обслуживаться из хранилища объектов, а не из реляционного хранилища. Это позволяет организации повысить доступность, оптимизируя при этом использование ресурсов этого размещенного векторного слоя.
Вы можете найти больше учебных пособий в галерее учебных пособий.

