Учебники

Кибана — Работа с картой региона

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

Создать индекс для карты региона

Мы создадим новый индекс для работы с визуализацией карты региона. Данные, которые мы собираемся загрузить, показаны здесь —

{"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 и выберите «Создать шаблон индекса».

Вкладка Kibana Management

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

отображается индекс всех стран

Начало работы с картами регионов

Теперь мы создадим визуализацию, используя Карты регионов. Перейдите в раздел «Визуализация» и выберите «Карты регионов».

visualization_using_Region_Maps

После этого выберите индекс как все страны и продолжайте.

Выберите Метрики агрегации и Метрики корзины, как показано ниже —

Выберите показатели агрегации

Bucket Metrics

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

Векторная карта и поле соединения для карты региона

Для карт регионов нам также нужно выбрать вкладки «Параметры», как показано ниже —

Векторная карта

Вкладка параметров имеет конфигурацию 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

Вкладка параметров, когда данные векторной карты региона размещаются самостоятельно, показана ниже —