Processamento e análise de dados geoespaciais

Fábrica de dados do Azure
Armazenamento do Azure Data Lake
Banco de Dados do Azure para PostgreSQL
Azure Databricks
Hubs de eventos do Azure

Este artigo descreve uma solução gerenciável para disponibilizar grandes volumes de dados geoespaciais para análise.

Arquitetura

Diagrama de arquitetura mostrando como os dados geoespaciais fluem por um sistema do Azure. Vários componentes recebem, processam, armazenam, analisam e publicam os dados.

Baixe um Arquivo Visio dessa arquitetura.

O diagrama contém várias caixas cinzas, cada uma com um rótulo diferente. Da esquerda para a direita, os rótulos são Ingerir, Preparar, Carregar, Fornecer e Visualizar e explorar. Uma caixa final embaixo das outras possui o rótulo Monitorar e proteger. Cada caixa contém ícones que representam diversos serviços do Azure. As setas numeradas conectam as caixas da forma como as etapas são descritas na explicação do diagrama.

Workflow

  1. Os dados de IoT entram no sistema:

  2. Os dados de GIS entram no sistema:

    • O Azure Data Factory ingere dados de GIS e dados de GIS de vetor de qualquer formato.

      • Os dados de varredura consistem em grades de valores. Cada valor de pixel representa uma característica como a temperatura ou a elevação de uma área geográfica.
      • Os dados vetoriais representam recursos geográficos específicos. Vértices ou áreas geográficas discretas compõem os vetores e definem a forma de cada objeto espacial.
    • O Data Factory armazena os dados no Data Lake Storage.

  3. Os clusters do Spark no Azure Databricks usam bibliotecas de códigos geoespaciais para transformar e normalizar os dados.

  4. O Data Factory carrega os dados de vetor e de varredura preparados no Banco de Dados do Azure para PostgreSQL. A solução usa a extensão PostGIS com esse banco de dados.

  5. O Data Factory carrega os dados de vetor e de varredura preparados no Azure Data Explorer.

  6. O Banco de Dados do Azure para PostgreSQL armazena os dados de GIS. As APIs disponibilizam esses dados em formatos padronizados:

    • O GeoJSON é baseado em JSON (JavaScript Object Notation). O GeoJSON representa recursos geográficos simples e suas propriedades não espaciais.
    • WKT (texto bem conhecido) é uma linguagem de marcação de texto que representa objetos de geometria vetorial.
    • Peças de vetor são pacotes de dados geográficos. Seu formato leve melhora o desempenho do mapeamento.

    Um cache Redis melhora o desempenho fornecendo acesso rápido aos dados.

  7. O recurso Aplicativos Web do Serviço de Aplicativo do Azure funciona com o Azure Mapas para criar objetos visuais dos dados.

  8. Os usuários analisam os dados com o Azure Data Explorer. Os recursos de GIS dessa ferramenta criam visualizações criteriosas. Os exemplos incluem a criação de dispersões de dados geoespaciais.

  9. O Power BI fornece relatórios personalizados e BI (business intelligence). O objeto visual do Azure Mapas para Power BI realça a função dos dados de localização nos resultados de negócios.

Durante todo o processo:

  • O Azure Monitor coleta informações sobre eventos e desempenho.
  • O Log Analytics executa consultas em logs de monitoramento e analisa os resultados.
  • O Azure Key Vault protege senhas, cadeias de conexão e segredos.

Componentes

  • Os Hubs de Eventos do Azure são uma plataforma de streaming para Big Data totalmente gerenciada. Essa PaaS (plataforma como serviço) oferece um modelo de consumidor particionado. Vários aplicativos podem usar esse modelo para processar o fluxo de dados simultaneamente.

  • O Azure Data Factory é um serviço de integração que funciona com dados de armazenamentos de dados diferentes. Essa plataforma pode ser usada sem servidor e totalmente gerenciada para criar, agendar e orquestrar fluxos de trabalho de transformação de dados.

  • O Azure Databricks é uma plataforma de análise de dados. Seus clusters do Spark totalmente gerenciados processam grandes fluxos de dados de várias fontes. O Azure Databricks pode transformar dados geoespaciais em grande escala para uso em análise e visualização de dados.

  • O Data Lake Storage é um data lake seguro e escalonável para cargas de trabalho de análise de alto desempenho. Este serviço pode gerenciar vários petabytes de informações enquanto mantém centenas de gigabits de taxa de transferência. Normalmente, os dados vêm de várias fontes heterogêneas e podem ser estruturados, semi-estruturados ou não estruturados.

  • O Banco de Dados do Azure para PostgreSQL é um serviço de banco de dados relacional totalmente gerenciado, baseado na edição da comunidade do mecanismo de banco de dados PostgreSQL de código aberto.

  • O PostGIS é uma extensão do banco de dados para PostgreSQL que se integra aos servidores GIS. O PostGIS pode executar consultas SQL de localização envolvendo objetos geográficos.

  • O Redis é um armazenamento de dados na memória e de código aberto. Os caches Redis mantêm os dados acessados com frequência na memória do servidor. Os caches podem processar rapidamente grandes volumes de solicitações de aplicativos que usam os dados.

  • O Power BI é uma coleção de serviços de software e aplicativos. É possível usar o Power BI para se conectar a fontes de dados não relacionadas e criar objetos visuais delas.

  • O objeto visual do Azure Mapas para Power BI fornece uma maneira de aprimorar mapas com dados espaciais. Este objeto visual pode ser usado para mostrar como os dados de localização afetam as métricas de negócios.

  • O Serviço de Aplicativo do Azure e o recurso de Aplicativos Web fornecem uma estrutura para criar, implantar e escalar aplicativos Web. A plataforma do Serviço de Aplicativo oferece manutenção de infraestrutura interna, aplicação de patches de segurança e dimensionamento.

  • As APIs de dados de GIS no Azure Mapas armazenam e recuperam dados de mapa em formatos como GeoJSON e peças de vetor.

  • O Azure Data Explorer é um serviço de análise de dados rápido e totalmente gerenciado que pode operar com grandes volumes de dados. Esse serviço se concentrou originalmente na série temporal e na análise de logs. Ele também lida com diversos fluxos de dados de aplicativos, sites, dispositivos IoT e outras fontes. A funcionalidade geoespacial no Azure Data Explorer fornece opções para renderização de dados de mapa.

  • O Azure Monitor coleta dados em ambientes e recursos do Azure. Essas informações de diagnóstico são úteis para manter a disponibilidade e o desempenho. Duas plataformas de dados compõem o Monitor:

  • O Log Analytics é uma ferramenta de portal do Azure que executa consultas no monitoramento de dados de log. O Log Analytics também oferece recursos para criação de gráficos e análise estatística dos resultados de consultas.

  • O Key Vault armazena e controla o acesso a segredos, como tokens, senhas e chaves de API. O Key Vault também cria e controla chaves de criptografia e gerencia certificados de segurança.

Alternativas

  • Em vez de desenvolver suas próprias APIs, considere usar o Martin. Esse servidor de peças de mapa de código aberto disponibiliza peças de vetor para aplicativos Web. Gravado no Rust, o Martin se conecta a tabelas do PostgreSQL. Você pode implantá-lo como um contêiner.

  • Se o seu objetivo for fornecer uma interface padronizada para dados de GIS, considere usar o GeoServer. Essa estrutura aberta implementa protocolos de OGC (Open Geospatial Consortium) padrão da indústria, como o WFS (Serviço de Recurso da Web). Ele também se integra a fontes de dados espaciais comuns. Você pode implantar o GeoServer como um contêiner em uma máquina virtual. Quando os aplicativos Web personalizados e as consultas exploratórios são secundários, o GeoServer fornece uma maneira simples de publicar dados geoespaciais.

  • Várias bibliotecas do Spark estão disponíveis para trabalho com dados geoespaciais no Azure Databricks. Essa solução usa estas bibliotecas:

    Mas também há outras soluções para processar e dimensionar cargas de trabalho geoespaciais com o Azure Databricks.

  • As peças de vetor fornecem uma maneira eficiente de exibir dados de GIS em mapas. Essa solução usa o PostGIS para consultar dinamicamente peças de vetor. Essa abordagem funciona bem para consultas simples e conjuntos de resultados bem abaixo de 1 milhão de registros. Mas, nos casos a seguir, uma abordagem diferente pode ser preferível:

    • Suas consultas são caras em termos computacionais.
    • Seus dados não são alterados com frequência.
    • Você está exibindo grandes conjuntos de dados.

    Nessas situações, considere o uso de Tippecanoe para gerar peças de vetor. O Tippecanoe pode ser usado como parte do seu fluxo de processamento de dados, seja como um contêiner ou com o Azure Functions. Você pode disponibilizar as peças resultantes através de APIs.

  • Assim como os Hubs de Eventos, o Hub IoT do Azure pode ingerir grandes quantidades de dados. Mas o Hub IoT também oferece recursos de comunicação bidirecional com dispositivos. Se você receber dados diretamente de dispositivos, mas também enviar comandos e políticas de volta para dispositivos, considere o Hub IoT em vez dos Hubs de Eventos.

  • Para simplificar a solução, omita estes componentes:

    • Azure Data Explorer
    • Power BI

Detalhes do cenário

Existem muitas possibilidades para trabalhar com dados geoespaciais ou informações que incluem um componente geográfico. Por exemplo, o software e os padrões do GIS (sistema de informações geográficas) estão amplamente disponíveis. Essas tecnologias podem armazenar, processar e fornecer acesso a dados geoespaciais. Mas, muitas vezes, é difícil configurar e manter sistemas que funcionem com dados geoespaciais. Também é necessário conhecimento especializado para integrar esses sistemas a outros sistemas.

Este artigo descreve uma solução gerenciável para disponibilizar grandes volumes de dados geoespaciais para análise. A abordagem é baseada na Arquitetura de Referência de Análise Avançada e usa estes serviços do Azure:

  • O Azure Databricks, junto com bibliotecas GIS Spark, processa os dados.
  • O Banco de Dados do Azure para PostgreSQL consulta dados que os usuários solicitam por meio de APIs.
  • O Azure Data Explorer executa consultas exploratórias rápidas.
  • O Azure Mapas cria visuais de dados geoespaciais em aplicativos Web.
  • O recurso visual do Power BI do Azure Mapas fornece relatórios personalizados

Possíveis casos de uso

Essa solução se aplica a muitas áreas:

  • Processamento, armazenamento e fornecimento de acesso a grandes quantidades de dados de varredura, como mapas ou dados sobre o clima.
  • Identificação da posição geográfica das entidades do sistema de ERP (planejamento de recursos empresariais).
  • Combinação de dados de localização da entidade com dados de referência do GIS.
  • Armazenamento da telemetria de IoT (Internet das Coisas) na movimentação de dispositivos.
  • Execução de consultas geoespaciais analíticas.
  • Inserção de dados geoespaciais organizados e contextuais em aplicativos Web.

Considerações

As seguintes considerações, com base no Well-Architected Framework do Azure, se aplicam a esta solução.

Disponibilidade

Escalabilidade

A implementação desta solução atende a estas condições:

  • Processa até 10 milhões conjuntos de dados por dia. Os conjuntos de dados incluem eventos de lote ou de streaming.
  • Armazena 100 milhões conjuntos de dados em um Banco de Dados do Azure para PostgreSQL.
  • Consulta 1 milhão ou menos conjuntos de dados concomitantemente. No máximo 30 usuários executam as consultas.

O ambiente usa essa configuração:

  • Um cluster do Azure Databricks com quatro nós de trabalho F8s_V2.
  • Uma instância com otimização de memória do Banco de Dados do Azure para PostgreSQL.
  • Um Plano do Serviço de Aplicativo com duas instâncias S2 Standard.

Considere esses fatores ao determinar quais ajustes devem ser feitos na sua implementação:

  • A taxa de ingestão de dados.
  • O volume de dados.
  • O volume de consulta.
  • O número de consultas paralelas às quais você precisa dar suporte.

Você pode dimensionar os componentes do Azure de forma independente:

O recurso de dimensionamento automático do Monitor também fornece funcionalidade de escala. Esse recurso pode ser configurado para adicionar recursos para identificar aumentos de carga. Ele também pode remover recursos para economizar dinheiro.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.

Otimização de custo

A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Próximas etapas

Documentação do produto:

Para começar a implementar essa solução, consulte estas informações:

Informações sobre o processamento de dados geoespapais