Kibana - Trabalhando com o Mapa da Região

Com esta visualização, você vê os dados representados no mapa mundial geográfico. Neste capítulo, vamos ver isso em detalhes.

Criar Índice para Mapa de Região

Vamos criar um novo índice para trabalhar com a visualização do mapa da região. Os dados que vamos enviar são mostrados aqui -

{"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"}

Observe que usaremos _bulk upload nas ferramentas de desenvolvimento para fazer o upload dos dados.

Agora, vá para Kibana Dev Tools e execute as seguintes consultas -

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"}

A seguir, vamos criar um índice para todos os países. Especificamos o tipo de campo do país comokeyword -

PUT /allcountries
{
   "mappings": {
      "_doc": {
         "properties": {
            "country": {"type": "keyword"},
            "population": {"type": "integer"}
         }
      }
   }
}

Note - Para trabalhar com mapas de região, precisamos especificar o tipo de campo a ser usado com agregação como tipo e palavra-chave.

Uma vez feito isso, carregue os dados usando o comando _bulk.

Agora vamos criar um padrão de índice. Vá para a guia Kibana Management e selecione criar padrão de índice.

Aqui estão os campos exibidos no índice de todos os países.

Primeiros passos com mapas de região

Agora vamos criar a visualização usando Mapas de Região. Vá para Visualização e selecione Mapas de Região.

Uma vez feito isso, selecione o índice como todos os países e prossiga.

Selecione Métricas de agregação e Métricas de intervalo, conforme mostrado abaixo -

Aqui selecionamos o campo como país, pois quero mostrar o mesmo no mapa mundial.

Mapa vetorial e campo de junção para mapa regional

Para mapas de região, precisamos também selecionar as guias de opções, conforme mostrado abaixo -

A guia de opções tem configurações de Layer Settings que são necessárias para plotar os dados no mapa mundial.

Um mapa vetorial tem as seguintes opções -

Aqui, selecionaremos os países do mundo, pois tenho os dados dos países.

O campo Join tem os seguintes detalhes -

Em nosso índice, temos o nome do país, portanto, selecionaremos o nome do país.

Nas configurações de estilo, você pode escolher a cor a ser exibida para os países -

Vamos selecionar Reds. Não tocaremos no resto dos detalhes.

Agora, clique no botão Analisar para ver os detalhes dos países plotados no mapa mundial conforme mostrado abaixo -

Mapa vetorial auto-hospedado e campo de junção em Kibana

Você também pode adicionar suas próprias configurações Kibana para mapa vetorial e campo de junção. Para fazer isso, vá para kibana.yml da pasta de configuração kibana e adicione os seguintes detalhes -

regionmap:
   includeElasticMapsService: false
   layers:
      - name: "Countries Data"
      url: "http://localhost/kibana/worldcountries.geojson"
      attribution: "INRAP"
      fields:
         - name: "Country"
         description: "country names"

O mapa vetorial da guia de opções terá os dados acima preenchidos em vez do padrão. Observe que o URL fornecido deve estar habilitado para CORS para que Kibana possa fazer o download do mesmo. O arquivo json utilizado deve estar de forma que as coordenadas fiquem em continuação. Por exemplo -

https://vector.maps.elastic.co/blob/5659313586569216?elastic_tile_service_tos=agree

A guia de opções quando os detalhes do mapa vetorial do mapa da região são auto-hospedados é mostrada abaixo -