С помощью этой визуализации вы видите данные, представленные на географической карте мира. В этой главе давайте рассмотрим это подробно.
Создать индекс для карты региона
Мы создадим новый индекс для работы с визуализацией карты региона. Данные, которые мы собираемся загрузить, показаны здесь —
{"index":{"_id":1}} {"country": "China", "population": "1313973713"} {"index":{"_id":2}} {"country": "India", "population": "1095351995"} {"index":{"_id":3}} {"country": "United States", "population": "298444215"} {"index":{"_id":4}} {"country": "Indonesia", "population": "245452739"} {"index":{"_id":5}} {"country": "Brazil", "population": "188078227"} {"index":{"_id":6}} {"country": "Pakistan", "population": "165803560"} {"index":{"_id":7}} {"country": "Bangladesh", "population": "147365352"} {"index":{"_id":8}} {"country": "Russia", "population": "142893540"} {"index":{"_id":9}} {"country": "Nigeria", "population": "131859731"} {"index":{"_id":10}} {"country": "Japan", "population": "127463611"}
Обратите внимание, что мы будем использовать _bulk upload в инструментах разработчика для загрузки данных.
Теперь перейдите к Kibana Dev Tools и выполните следующие запросы —
PUT /allcountries { "mappings": { "_doc": { "properties": { "country": {"type": "keyword"}, "population": {"type": "integer"} } } } } POST /allcountries/_doc/_bulk?refresh {"index":{"_id":1}} {"country": "China", "population": "1313973713"} {"index":{"_id":2}} {"country": "India", "population": "1095351995"} {"index":{"_id":3}} {"country": "United States", "population": "298444215"} {"index":{"_id":4}} {"country": "Indonesia", "population": "245452739"} {"index":{"_id":5}} {"country": "Brazil", "population": "188078227"} {"index":{"_id":6}} {"country": "Pakistan", "population": "165803560"} {"index":{"_id":7}} {"country": "Bangladesh", "population": "147365352"} {"index":{"_id":8}} {"country": "Russia", "population": "142893540"} {"index":{"_id":9}} {"country": "Nigeria", "population": "131859731"} {"index":{"_id":10}} {"country": "Japan", "population": "127463611"}
Далее давайте создадим индекс allcountries. Мы указали тип поля страны в качестве ключевого слова —
PUT /allcountries { "mappings": { "_doc": { "properties": { "country": {"type": "keyword"}, "population": {"type": "integer"} } } } }
Примечание. Для работы с картами регионов необходимо указать тип поля, который будет использоваться с агрегацией в качестве типа ключевого слова.
После этого загрузите данные с помощью команды _bulk.
Теперь мы создадим шаблон индекса. Перейдите на вкладку Kibana Management и выберите «Создать шаблон индекса».
Вот поля, отображаемые из индекса всех стран.
Начало работы с картами регионов
Теперь мы создадим визуализацию, используя Карты регионов. Перейдите в раздел «Визуализация» и выберите «Карты регионов».
После этого выберите индекс как все страны и продолжайте.
Выберите Метрики агрегации и Метрики корзины, как показано ниже —
Здесь мы выбрали поле в качестве страны, так как я хочу показать то же самое на карте мира.
Векторная карта и поле соединения для карты региона
Для карт регионов нам также нужно выбрать вкладки «Параметры», как показано ниже —
Вкладка параметров имеет конфигурацию Layer Settings, которая необходима для отображения данных на карте мира.
Векторная карта имеет следующие параметры —
Здесь мы выберем страны мира, так как у меня есть данные стран.
Поле Присоединения имеет следующие детали —
В нашем индексе у нас есть название страны, поэтому мы выберем название страны.
В настройках стиля вы можете выбрать цвет для отображения стран —
Мы выберем красные. Мы не будем касаться остальных деталей.
Теперь нажмите кнопку «Анализ», чтобы увидеть детали стран, нанесенных на карту мира, как показано ниже —
Самостоятельная векторная карта и поле присоединения в Кибане
Вы также можете добавить свои собственные настройки Kibana для векторной карты и поля присоединения. Для этого перейдите в kibana.yml из папки конфигурации kibana и добавьте следующую информацию:
regionmap: includeElasticMapsService: false layers: - name: "Countries Data" url: "http://localhost/kibana/worldcountries.geojson" attribution: "INRAP" fields: - name: "Country" description: "country names"
Векторная карта из вкладки параметров будет заполнена вышеуказанными данными вместо данных по умолчанию. Обратите внимание, что указанный URL-адрес должен быть включен CORS, чтобы Kibana мог загрузить его. Используемый файл json должен быть таким, чтобы координаты были в продолжении. Например —
https://vector.maps.elastic.co/blob/5659313586569216?elastic_tile_service_tos=agree
Вкладка параметров, когда данные векторной карты региона размещаются самостоятельно, показана ниже —