Elaborazione e analisi dei dati geospaziali

Azure Data Factory
Azure Data Lake Storage
Database di Azure per PostgreSQL
Azure Databricks
Hub eventi di Azure

Questo articolo descrive una soluzione gestibile per rendere disponibili per l'analisi volumi elevati di dati geospaziali.

Architettura

Diagramma dell'architettura che illustra il flusso dei dati geospaziali attraverso un sistema di Azure. Vari componenti ricevono, elaborano, archiviano, analizzano e pubblicano i dati.

Scaricare un file di Visio di questa architettura.

Il diagramma contiene diverse caselle grigie, ognuna con un'etichetta diversa. Le etichette da sinistra a destra indicano Ingest (inserimento), Prepare (preparazione), Load (caricamento), Serve (servizio) ed Explore (esplorazione). Un'ultima casella al di sotto delle altre presenta l'etichetta Monitor and secure (Monitoraggio e protezione). Ogni casella contiene icone che rappresentano vari servizi di Azure. Le caselle sono collegate da frecce numerate secondo la sequenza della descrizione dei passaggi nella spiegazione del diagramma.

Workflow

  1. I dati IoT accedono al sistema:

    • Hub eventi di Azure inserisce flussi di dati IoT. I dati contengono coordinate o altre informazioni che identificano le posizioni dei dispositivi.
    • Hub eventi usa Azure Databricks per l'elaborazione iniziale del flusso.
    • Hub eventi archivia i dati in Azure Data Lake Archiviazione.
  2. I dati GIS accedono al sistema:

    • Azure Data Factory inserisce dati GIS raster e dati GIS vettoriali di qualsiasi formato.

      • I dati raster sono costituiti da griglie di valori. Ogni valore di pixel rappresenta una caratteristica come la temperatura o l'altitudine di un'area geografica.
      • I dati vettoriali rappresentano caratteristiche geografiche specifiche. I vertici, o posizioni geometriche discrete, costituiscono i vettori e definiscono la forma di ogni oggetto nello spazio.
    • Data Factory archivia i dati in Data Lake Storage.

  3. I cluster Spark in Azure Databricks usano librerie di codice geospaziale per trasformare e normalizzare i dati.

  4. Data Factory carica i dati raster e vettoriali preparati in Database di Azure per PostgreSQL. La soluzione usa l'estensione PostGIS con questo database.

  5. Data Factory carica i dati raster e vettoriali preparati in Azure Esplora dati.

  6. Database di Azure per PostgreSQL archivia i dati GIS. Le API rendono disponibili questi dati in formati standardizzati:

    • GeoJSON è basato su JavaScript Object Notation (JSON). GeoJSON rappresenta funzionalità geografiche semplici e le relative proprietà non spaziali.
    • WKT (Well-known text) è un linguaggio di markup del testo che rappresenta oggetti geometrici vettoriali.
    • Le sezioni vettoriali sono pacchetti di dati geografici. Il formato semplificato migliora le prestazioni di mapping.

    Una cache Redis migliora le prestazioni fornendo un accesso rapido ai dati.

  7. La funzionalità App Web del servizio app Azure funziona con Mappe di Azure per creare oggetti visivi dei dati.

  8. Gli utenti analizzano i dati con Esplora dati di Azure. Le funzionalità GIS di questo strumento creano visualizzazioni dettagliate, ad esempio creando diagrammi di dispersione da dati geospaziali.

  9. Power BI offre report personalizzati e business intelligence (BI). L'oggetto visivo di Mappe di Azure per Power BI evidenzia il ruolo dei dati di posizione nei risultati aziendali.

Nel corso del processo:

  • Monitoraggio di Azure raccoglie informazioni su eventi e prestazioni.
  • Log Analytics esegue query sui log di Monitoraggio e analizza i risultati.
  • Azure Key Vault protegge password, stringa di connessione e segreti.

Componenti

  • Hub eventi di Azure è una piattaforma di streaming completamente gestita per Big Data. Questa piattaforma distribuita come servizio (PaaS) offre un modello di consumer partizionato. Più applicazioni possono usare questo modello per elaborare il flusso di dati contemporaneamente.

  • Azure Data Factory è un servizio di integrazione che funziona con dati provenienti da archivi dati diversi. È possibile usare questa piattaforma serverless completamente gestita per creare, pianificare e orchestrare flussi di lavoro di trasformazione dei dati.

  • Azure Databricks è una piattaforma di analisi dei dati. I cluster Spark completamente gestiti elaborano flussi ingenti di dati provenienti da più origini. Azure Databricks può trasformare i dati geospaziali su larga scala per l'uso nell'analisi e nella visualizzazione dei dati.

  • Data Lake Storage è un data lake scalabile e sicuro per carichi di lavoro di analisi a elevate prestazioni. Questo servizio è in grado di gestire diversi petabyte di informazioni supportando al tempo stesso centinaia di gigabit di velocità effettiva. I dati provengono in genere da più origini eterogenee e possono essere strutturati, semistrutturati o non strutturati.

  • Database di Azure per PostgreSQL è un servizio di database relazionale completamente gestito basato sull'edizione community del motore di database PostgreSQL open source.

  • PostGIS è un'estensione per il database PostgreSQL che si integra con i server GIS. PostGIS può eseguire query di posizione SQL che coinvolgono oggetti geografici.

  • Redis è un archivio dati in memoria open source. Le cache Redis mantengono nella memoria del server i dati a cui si accede di frequente. Le cache possono quindi elaborare rapidamente volumi elevati di richieste delle applicazioni che usano i dati.

  • Power BI è una raccolta di app e servizi software. È possibile usare Power BI per connettere origini dati non correlate e crearne oggetti visivi.

  • L'oggetto visivo di Mappe di Azure per Power BI offre un modo per migliorare le mappe con i dati spaziali. È possibile usare questo oggetto visivo per mostrare in che modo i dati sulla posizione influiscono sulle metriche aziendali.

  • app Azure Servizio e la relativa funzionalità di App Web forniscono un framework per la compilazione, la distribuzione e il ridimensionamento delle app Web. La piattaforma del servizio app offre funzionalità predefinite di manutenzione dell'infrastruttura, applicazione di patch di sicurezza e ridimensionamento.

  • Le API dei dati GIS in Mappe di Azure archiviano e recuperano i dati di mappa in formati come GeoJSON e sezioni vettoriali.

  • Esplora dati di Azure è un servizio di analisi dei dati veloce e completamente gestito in grado di interagire con volumi elevati di dati. Questo servizio, che in origine era focalizzato su serie temporali e analisi dei log, ora gestisce flussi di dati eterogenei provenienti da applicazioni, siti Web, dispositivi IoT e altre origini. La funzionalità geospaziale in Esplora dati di Azure offre opzioni per il rendering dei dati di mappa.

  • Monitoraggio di Azure raccoglie i dati in ambienti e risorse di Azure. Queste informazioni di diagnostica sono utili per mantenere disponibilità e prestazioni. Monitoraggio è composto da due piattaforme dati:

  • Log Analytics è uno strumento del portale di Azure che esegue query sui dati di log di Monitoraggio. Log Analytics offre anche funzionalità per la creazione di grafici e l'analisi statistica dei risultati delle query.

  • Key Vault archivia e controlla l'accesso ai segreti, come token, password e chiavi API. Key Vault crea e controlla anche le chiavi di crittografia e gestisce i certificati di sicurezza.

Alternative

  • Anziché sviluppare API proprie, è consigliabile usare Martin. Questo server delle sezioni open source rende disponibili sezioni vettoriali per app Web. Scritto in Rust, Martin si connette alle tabelle PostgreSQL. È possibile distribuirlo come contenitore.

  • Se l'obiettivo è fornire un'interfaccia standardizzata per dati GIS, è consigliabile usare GeoServer. Questo framework aperto implementa protocolli OGC (Open Geospatial Consortium) di standard del settore, ad esempio Web Feature Service (WFS). Si integra anche con origini dati spaziali comuni. È possibile distribuire GeoServer come contenitore in una macchina virtuale. Nei casi in cui le app Web personalizzate e le query esplorative sono secondarie, GeoServer offre un modo semplice per pubblicare dati geospaziali.

  • Sono disponibili varie librerie Spark per l'uso di dati geospaziali in Azure Databricks. Questa soluzione usa le librerie seguenti:

    Ma esistono anche altre soluzioni per l'elaborazione e il ridimensionamento dei carichi di lavoro geospaziali con Azure Databricks.

  • Le sezioni vettoriali offrono un modo efficiente per visualizzare i dati GIS sulle mappe. Questa soluzione usa PostGIS per eseguire query in modo dinamico sulle sezioni vettoriali. Questo approccio funziona bene per query semplici e set di risultati che contengono meno di 1 milione di record. Se si verificano le condizioni seguenti invece può essere più indicato scegliere un approccio diverso:

    • Le query sono onerose dal punto di vista dei calcoli.
    • I dati non cambiano di frequente.
    • Vengono visualizzati set di dati di grandi dimensioni.

    In queste situazioni è consigliabile usare Tippecanoe per generare sezioni vettoriali. È possibile eseguire Tippecanoe come parte del flusso di elaborazione dati, come contenitore o con Funzioni di Azure. È possibile rendere disponibili le sezioni risultanti tramite le API.

  • Analogamente a Hub eventi, l'hub IoT di Azure può inserire grandi quantità di dati. L'hub IoT tuttavia offre anche funzionalità di comunicazione bidirezionale con i dispositivi. Se si ricevono dati direttamente dai dispositivi ma si inviano anche comandi e criteri ai dispositivi, valutare l'opportunità di usare l'hub IoT invece di Hub eventi.

  • Per semplificare la soluzione, omettere questi componenti:

    • Esplora dati di Azure
    • Power BI

Dettagli dello scenario

I dati geospaziali o le informazioni che includono un componente geografico hanno molteplici possibilità d'uso. Sono ad esempio ampiamente disponibili software e standard GIS (Geographic Information System), tecnologie in grado di archiviare, elaborare e fornire l'accesso ai dati geospaziali. È tuttavia spesso difficile configurare e gestire sistemi in grado di interagire con dati geospaziali. È necessaria inoltre una conoscenza specifica per integrare tali sistemi con altri sistemi.

Questo articolo descrive una soluzione gestibile per rendere disponibili per l'analisi volumi elevati di dati geospaziali. L'approccio si basa sull'architettura di riferimento di analisi avanzata e usa questi servizi di Azure:

  • Azure Databricks con le librerie Spark GIS elabora i dati.
  • Database di Azure per PostgreSQL esegue query sui dati che gli utenti richiedono tramite API.
  • Esplora dati di Azure esegue query esplorative veloci.
  • Mappe di Azure crea oggetti visivi di dati geospaziali nelle applicazioni Web.
  • La funzionalità visiva di Power BI Mappe di Azure di Power BI offre report personalizzati

Potenziali casi d'uso

Questa soluzione si applica a molte aree:

  • Elaborazione, archiviazione e accesso a quantità elevate di dati raster, ad esempio mappe o dati sul clima.
  • Identificazione della posizione geografica di entità di sistema ERP (Enterprise Resource Planning).
  • Combinazione dei dati sulla posizione delle entità con i dati di riferimento GIS.
  • Archiviazione dei dati di telemetria Internet delle cose (IoT) da dispositivi in movimento.
  • Esecuzione di query geospaziali analitiche.
  • Incorporamento di dati geospaziali curati e contestualizzati in app Web.

Considerazioni

Le considerazioni seguenti, basate su Microsoft Azure Well-Architected Framework, si applicano a questa soluzione.

Disponibilità

Scalabilità

L'implementazione di questa soluzione soddisfa queste condizioni:

  • Elabora fino a 10 milioni di set di dati al giorno. I set di dati includono eventi batch o di streaming.
  • Archivia 100 milioni di set di dati in un Database di Azure per PostgreSQL.
  • Esegue query su un massimo di un milione di set di dati contemporaneamente. Le query vengono eseguite da un massimo di 30 utenti.

L'ambiente usa questa configurazione:

  • Un cluster Azure Databricks con quattro nodi di lavoro F8s_V2.
  • Un'istanza di Database di Azure per PostgreSQL ottimizzata per la memoria.
  • Un piano di servizio app con due istanze Standard S2.

Prendere in considerazione questi fattori per determinare le modifiche da apportare per l'implementazione:

  • Frequenza di inserimento dei dati.
  • Volume dei dati.
  • Volume delle query.
  • Numero di query parallele che è necessario supportare.

È possibile ridimensionare i componenti di Azure in modo indipendente:

Anche la funzionalità di scalabilità automatica di Monitoraggio offre funzionalità di ridimensionamento. È possibile configurare questa funzionalità per aggiungere risorse per la gestione degli aumenti di carico. Può anche rimuovere risorse per risparmiare denaro.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

  • Per stimare il costo dell'implementazione di questa soluzione, vedere un profilo dei costi di esempio. Questo profilo è relativo a una singola implementazione dell'ambiente descritto in Considerazioni sulla scalabilità. Non include il costo di Esplora dati di Azure.
  • Per modificare i parametri ed esplorare il costo di esecuzione di questa soluzione nel proprio ambiente, usare il calcolatore prezzi di Azure.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Passaggi successivi

Documentazione sui prodotti:

Per iniziare a implementare questa soluzione, vedere queste informazioni:

Informazioni sull'elaborazione dei dati geospaziali