Este artigo descreve uma solução gerenciável para disponibilizar grandes volumes de dados geoespaciais para análise.
Arquitetura
Baixe um arquivo Visio desta arquitetura.
O diagrama contém várias caixas cinzentas, cada uma com um rótulo diferente. Da esquerda para a direita, os rótulos são Ingerir, Preparar, Carregar, Servir e Visualizar e explorar. Uma caixa final por baixo das outras tem a etiqueta Monitor e segura. Cada caixa contém ícones que representam vários serviços do Azure. As setas numeradas conectam as caixas da maneira que as etapas descrevem na explicação do diagrama.
Fluxo de Trabalho
Os dados da IoT entram no sistema:
- Os Hubs de Eventos do Azure ingerem fluxos de dados da IoT. Os dados contêm coordenadas ou outras informações que identificam a localização dos dispositivos.
- Os Hubs de Eventos usam o Azure Databricks para processamento de fluxo inicial.
- Os Hubs de Eventos armazenam os dados no Armazenamento do Azure Data Lake.
Os dados SIG entram no sistema:
O Azure Data Factory ingere dados SIG raster e dados SIG vetoriais de qualquer formato.
- Os dados raster consistem em grades de valores. Cada valor de pixel representa uma característica como a temperatura ou elevação de uma área geográfica.
- Os dados vetoriais representam características geográficas específicas. Vértices, ou localizações geométricas discretas, compõem os vetores e definem a forma de cada objeto espacial.
O Data Factory armazena os dados no Armazenamento Data Lake.
Os clusters Spark no Azure Databricks usam bibliotecas de código geoespacial para transformar e normalizar os dados.
O Data Factory carrega os dados vetoriais e raster preparados no Banco de Dados do Azure para PostgreSQL. A solução utiliza a extensão PostGIS com esta base de dados.
O Data Factory carrega os dados vetoriais e raster preparados no Azure Data Explorer.
O Banco de Dados do Azure para PostgreSQL armazena os dados GIS. As APIs disponibilizam esses dados em formatos padronizados:
- GeoJSON é baseado em JavaScript Object Notation (JSON). GeoJSON representa características geográficas simples e suas propriedades não espaciais.
- Texto conhecido (WKT) é uma linguagem de marcação de texto que representa objetos de geometria vetorial.
- Os blocos vetoriais 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.
O recurso Aplicativos Web do Serviço de Aplicativo do Azure funciona com o Azure Maps para criar elementos visuais dos dados.
Os usuários analisam os dados com o Azure Data Explorer. As funcionalidades SIG desta ferramenta criam visualizações perspicazes. Exemplos incluem a criação de gráficos de dispersão a partir de dados geoespaciais.
O Power BI fornece relatórios personalizados e business intelligence (BI). O visual do Azure Maps para Power BI destaca a função dos dados de localização nos resultados de negócios.
Ao longo do processo:
- O Azure Monitor coleta informações sobre eventos e desempenho.
- O Log Analytics executa consultas nos logs do Monitor 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 totalmente gerenciada para big data. Esta plataforma como serviço (PaaS) oferece um modelo de consumidor particionado. Vários aplicativos podem usar esse modelo para processar o fluxo de dados ao mesmo tempo.
O Azure Data Factory é um serviço de integração que funciona com dados de armazenamentos de dados diferentes. Você pode usar essa plataforma totalmente gerenciada e sem servidor 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 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álises e visualização de dados.
O Data Lake Storage é um data lake escalável e seguro para cargas de trabalho de análise de alto desempenho. Esse serviço pode gerenciar vários petabytes de informações enquanto sustenta centenas de gigabits de taxa de transferência. Os dados normalmente vêm de várias fontes heterogêneas e podem ser estruturados, semiestruturados 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.
PostGIS é uma extensão para a base de dados PostgreSQL que se integra com servidores GIS. O PostGIS pode executar consultas de localização SQL que envolvem objetos geográficos.
O Redis é um armazenamento de dados na memória de código aberto. Os caches Redis mantêm os dados acessados com frequência na memória do servidor. Os caches podem, então, 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. Você pode usar o Power BI para conectar fontes de dados não relacionadas e criar visuais delas.
O visual do Azure Maps para Power BI fornece uma maneira de aprimorar mapas com dados espaciais. Você pode usar esse visual para mostrar como os dados de localização afetam as métricas de negócios.
O Serviço de Aplicativo do Azure e seu recurso de Aplicativos Web fornecem uma estrutura para criar, implantar e dimensionar aplicativos Web. A plataforma do Serviço de Aplicativo oferece manutenção de infraestrutura integrada, patches de segurança e dimensionamento.
As APIs de dados SIG no Azure Maps armazenam e recuperam dados de mapa em formatos como GeoJSON e mosaicos vetoriais.
O Azure Data Explorer é um serviço de análise de dados rápido e totalmente gerenciado que pode trabalhar com grandes volumes de dados. Este serviço focava-se originalmente em séries cronológicas e análise de registos. Agora 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 renderizar dados de mapa.
O Azure Monitor coleta dados sobre 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 Azure Monitor registra registros e armazena dados de log e desempenho.
- O Azure Monitor Metrics coleta valores numéricos em intervalos regulares.
O Log Analytics é uma ferramenta do portal do Azure que executa consultas nos dados de log do Monitor. O Log Analytics também fornece recursos para gráficos e análise estatística dos resultados da consulta.
O Key Vault armazena e controla o acesso a segredos como tokens, senhas e chaves de API. O Cofre de Chaves 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 Martin. Este servidor de mosaico de código aberto disponibiliza mosaicos vetoriais para aplicações Web. Escrito em Rust, Martin se conecta a tabelas PostgreSQL. Você pode implantá-lo como um contêiner.
Se o seu objetivo é fornecer uma interface padronizada para dados GIS, considere usar o GeoServer. Esta estrutura aberta implementa protocolos Open Geospatial Consortium (OGC) padrão da indústria, como o Web Feature Service (WFS). Também se integra com fontes de dados espaciais comuns. Você pode implantar o GeoServer como um contêiner em uma máquina virtual. Quando aplicativos Web personalizados e consultas exploratórias são secundários, o GeoServer fornece uma maneira direta de publicar dados geoespaciais.
Várias bibliotecas do Spark estão disponíveis para trabalhar com dados geoespaciais no Azure Databricks. Esta solução utiliza estas bibliotecas:
Os mosaicos vetoriais fornecem uma forma eficiente de apresentar dados SIG em mapas. Esta solução utiliza PostGIS para consultar dinamicamente mosaicos vetoriais. Essa abordagem funciona bem para consultas simples e conjuntos de resultados que contêm bem menos de 1 milhão de registros. Mas, nos seguintes casos, uma abordagem diferente pode ser melhor:
- Suas consultas são computacionalmente caras.
- Seus dados não mudam com frequência.
- Você está exibindo grandes conjuntos de dados.
Nessas situações, considere o uso de Tippecanoe para gerar telhas vetoriais. Você pode executar o Tippecanoe como parte do seu fluxo de processamento de dados, como um contêiner ou com o Azure Functions. Você pode disponibilizar os blocos resultantes por meio de APIs.
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 de 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 incluam um componente geográfico. Por exemplo, o software e as normas dos sistemas de informação geográfica (SIG) 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 trabalham com dados geoespaciais. Você também precisa de conhecimento especializado para integrar esses sistemas com outros sistemas.
Este artigo descreve uma solução gerenciável para disponibilizar grandes volumes de dados geoespaciais para análise. A abordagem baseia-se na Arquitetura de Referência do Advanced Analytics e utiliza estes serviços do Azure:
- O Azure Databricks com bibliotecas do GIS Spark processa 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 Maps cria elementos visuais de dados geoespaciais em aplicações Web.
- O recurso visual do Power BI do Azure Maps do Power BI fornece relatórios personalizados
Potenciais casos de utilização
Esta solução aplica-se a muitas áreas:
- Processamento, armazenamento e fornecimento de acesso a grandes quantidades de dados raster, como mapas ou dados climáticos.
- Identificação da posição geográfica das entidades do sistema de planeamento de recursos empresariais (ERP).
- Combinação de dados de localização de entidades com dados de referência SIG.
- Armazenamento de telemetria da Internet das Coisas (IoT) a partir de dispositivos em movimento.
- Execução de consultas geoespaciais analíticas.
- Incorporação de dados geoespaciais curados e contextualizados em aplicações Web.
Considerações
As considerações a seguir, baseadas no Microsoft Azure Well-Architected Framework, aplicam-se a esta solução.
Disponibilidade
Os Hubs de Eventos espalham o risco de falha entre clusters.
- Use um namespace com zonas de disponibilidade ativadas para distribuir o risco por três instalações fisicamente separadas.
- Considere o uso do recurso de recuperação de desastres geográficos dos Hubs de Eventos. Esse recurso replica toda a configuração de um namespace de um namespace primário para um namespace secundário.
Consulte os recursos de continuidade de negócios que o Banco de Dados do Azure para PostgreSQL oferece. Esses recursos abrangem uma série de objetivos de recuperação.
O diagnóstico do Serviço de Aplicativo alerta você sobre problemas em aplicativos, como tempo de inatividade. Use este serviço para identificar, solucionar problemas e resolver problemas como interrupções.
Considere usar o Serviço de Aplicativo para fazer backup de arquivos de aplicativos. Mas tenha cuidado com os arquivos de backup, que incluem configurações do aplicativo em texto sem formatação. Essas configurações podem conter segredos como cadeias de conexão.
Escalabilidade
A implementação desta solução cumpre as seguintes condições:
- Processa até 10 milhões de conjuntos de dados por dia. Os conjuntos de dados incluem eventos em lote ou streaming.
- Armazena 100 milhões de conjuntos de dados em um Banco de Dados do Azure para banco de dados PostgreSQL.
- Consulta 1 milhão ou menos de conjuntos de dados ao mesmo tempo. Um máximo de 30 usuários executam as consultas.
O ambiente usa esta configuração:
- Um cluster do Azure Databricks com quatro nós de trabalho F8s_V2.
- Uma instância otimizada para memória do Banco de Dados do Azure para PostgreSQL.
- Um plano do Serviço de Aplicativo com duas instâncias S2 padrão.
Considere estes fatores para determinar quais ajustes fazer para sua implementação:
- A sua taxa de ingestão de dados.
- O seu volume de dados.
- O volume da sua consulta.
- O número de consultas paralelas que você precisa suportar.
Você pode dimensionar componentes do Azure independentemente:
Os Hubs de Eventos são dimensionados automaticamente para atender às necessidades de uso. Mas tome medidas para gerenciar unidades de taxa de transferência e otimizar partições.
O Data Factory lida com grandes quantidades de dados. Sua arquitetura sem servidor suporta paralelismo em diferentes níveis.
O Banco de Dados do Azure para PostgreSQL oferece dimensionamento horizontal de alto desempenho.
Os clusters do Azure Databricks são redimensionados conforme necessário.
O Azure Data Explorer pode ser dimensionado de forma elástica para terabytes de dados em minutos.
Os aplicativos Web do Serviço de Aplicativo aumentam e diminuem a escala.
O recurso de dimensionamento automático do Monitor também fornece funcionalidade de dimensionamento. Você pode configurar esse recurso para adicionar recursos para lidar com aumentos de carga. Também pode remover recursos para poupar dinheiro.
Segurança
A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.
Proteja os dados do bloco vetorial. Os blocos vetoriais incorporam coordenadas e atributos para várias entidades em um arquivo. Se você gerar blocos vetoriais, use um conjunto dedicado de blocos para cada nível de permissão em seu sistema de controle de acesso. Com essa abordagem, apenas os usuários dentro de cada nível de permissão têm acesso ao arquivo de dados desse nível.
Para melhorar a segurança, use o Cofre da Chave nestas situações:
Consulte Segurança no Serviço de Aplicativo do Azure para obter informações sobre como o Serviço de Aplicativo ajuda a proteger aplicativos Web. Considere também estes pontos:
- Veja como obter o certificado de que seu aplicativo precisa se ele usar um nome de domínio personalizado.
- Veja como redirecionar solicitações HTTP para seu aplicativo para a porta HTTPS.
- Saiba mais sobre as práticas recomendadas para autenticação em aplicativos Web.
Otimização de custos
A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.
- Para estimar o custo de implementação dessa solução, consulte um exemplo de perfil de custo. Este perfil é para uma única implementação do ambiente descrito em Considerações de escalabilidade. Ele não inclui o custo do Azure Data Explorer.
- Para ajustar os parâmetros e explorar o custo de execução dessa solução em seu ambiente, use a calculadora de preços do Azure.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Richard Bumann - Brasil | Arquiteto de Soluções
Próximos passos
Documentação do produto:
- Sobre os Hubs de Eventos do Azure
- Conceitos do Azure Databricks
- Introdução ao Armazenamento do Azure Data Lake
- O que é o Azure Data Factory?
- Visão geral do Serviço de Aplicativo do Azure
Para começar a implementar esta solução, consulte estas informações:
- Conectar um WFS ao Azure Maps
- Processe dados do OpenStreetMap com o Spark.
- Explore maneiras de exibir dados com o Azure Maps.
Informações sobre o processamento de dados geoespaciais
- Funções para consultar PostGIS para blocos vetoriais
- Funções para carregar rasters PostGIS
- Funções geoespaciais do Azure Data Explorer
- Fontes de dados para blocos vetoriais no Azure Maps
- Abordagens para processamento de dados geoespaciais em Databricks
Recursos relacionados
Arquiteturas relacionadas
- Análise de Big Data com o Azure Data Explorer
- Consórcio de dados de integridade no Azure
- [DataOps para o armazém de dados moderno] [DataOps para o armazém de dados moderno]
- Análise interativa do Azure Data Explorer
- Arquitetura de referência geoespacial - Azure Orbital
- Análise geoespacial para telecomunicações
- Análise de dados espaciais com o Azure Synapse Analytics
Guias relacionados
- Compare os produtos e tecnologias de aprendizado de máquina da Microsoft - Azure Databricks
- Estrutura de operações de aprendizado de máquina (MLOps) para aumentar o ciclo de vida do aprendizado de máquina com o Azure Machine Learning
- [Guia de decisão do Azure Machine Learning para seleção ideal de ferramentas] [Guia de decisão do Azure Machine Learning para seleção ideal de ferramentas]
- Monitorar o Azure Databricks