Geospatial databearbetning och analys

Data Factory
Data Lake Storage
Database for PostgreSQL
Databricks
Event Hubs

Det finns många möjligheter att arbeta med geospatiala data, eller information som innehåller en geografisk komponent. Till exempel är GIS-programvara (Geographic Information System) och -standarder allmänt tillgängliga. Dessa tekniker kan lagra, bearbeta och ge åtkomst till geospatiala data. Men det är ofta svårt att konfigurera och underhålla system som fungerar med geospatiala data. Du behöver också expertkunskaper för att integrera dessa system med andra system.

Den här artikeln beskriver en hanterbar lösning för att göra stora mängder geospatiala data tillgängliga för analys. Metoden baseras på referensarkitekturen för avancerad analys och använder följande Azure-tjänster:

  • Azure Databricks med GIS Spark-bibliotek bearbetar data.
  • Azure Database for PostgreSQL frågar efter data som användare begär via API:er.
  • Azure Data Explorer kör snabba undersökande frågor.
  • Azure Kartor skapar visuella objekt av geospatiala data i webbprogram.
  • Azure Kartor Power BI visuella funktionen i Power BI tillhandahåller anpassade rapporter.

Potentiella användningsfall

Den här lösningen gäller för många områden:

  • Bearbetning, lagring och åtkomst till stora mängder rasterdata, till exempel kartor eller klimatdata.
  • Identifiera den geografiska positionen för ERP-systementiteter (Enterprise Resource Planning).
  • Kombinera entitetsplatsdata med GIS-referensdata.
  • Lagra Sakernas Internet (IoT)-telemetri från att flytta enheter.
  • Köra analytiska geospatiala frågor.
  • Bädda in curding och kontextualiserade geospatiala data i webbappar.

Arkitektur

Arkitekturdiagram som visar hur geospatiala data flödar genom ett Azure-system. Olika komponenter tar emot, bearbetar, lagrar, analyserar och publicerar data.

Diagrammet innehåller flera grå rutor, var och en med en annan etikett. Från vänster till höger är etiketterna Mata in, Förbered, Läsa in, Betjäna och Visualisera och utforska. En sista ruta under de andra har etiketten Övervaka och säker. Varje ruta innehåller ikoner som representerar olika Azure-tjänster. Numrerade pilar kopplar ihop rutorna på det sätt som stegen beskriver i diagramförklaringen.

  1. IoT-data kommer in i systemet:

    • Azure Event Hubs matar in strömmar av IoT-data. Data innehåller koordinater eller annan information som identifierar platser för enheter.
    • Event Hubs använder Azure Databricks för inledande dataströmbearbetning.
    • Event Hubs lagrar data i Azure Data Lake Storage.
  2. GIS-data kommer in i systemet:

    • Azure Data Factory matar in GIS-data och vektor-GIS-data i val annat format.

      • Rutnätsdata består av rutnät med värden. Varje pixelvärde representerar en egenskap som temperatur eller höjning av ett geografiskt område.
      • Vektordata representerar specifika geografiska funktioner. Hörn, eller diskreta geometriska platser, utgör vektorerna och definierar formen på varje rumsligt objekt.
    • Data Factory lagrar data i Data Lake Storage.

  3. Spark-kluster i Azure Databricks använda geospatiala kodbibliotek för att transformera och normalisera data.

  4. Data Factory läser in förberedda vektor- och rasterdata i Azure Database for PostgreSQL. Lösningen använder PostGIS-tillägget med den här databasen.

  5. Data Factory läser in förberedda vektor- och rasterdata i Azure Data Explorer.

  6. Azure Database for PostgreSQL lagrar GIS-data. API:er gör dessa data tillgängliga i standardiserade format:

    • GeoJSON baseras på JavaScript Object Notation (JSON). GeoJSON representerar enkla geografiska funktioner och deras icke-rumsliga egenskaper.
    • Välkänd text (WKT) är ett textpåläggsspråk som representerar vektorgeometriobjekt.
    • Vektorpaneler är paket med geografiska data. Deras förenklade format förbättrar mappningsprestanda.

    En Redis-cache förbättrar prestandan genom att ge snabb åtkomst till data.

  7. Den Web Apps funktionen i Azure App Service fungerar med Azure Kartor för att skapa visuella objekt av data.

  8. Användare analyserar data med Azure Data Explorer. GIS-funktionerna i det här verktyget skapar insiktsfulla visualiseringar. Exempel är att skapa punktdiagram från geospatiala data.

  9. Power BI tillhandahåller anpassade rapporter och business intelligence (BI). Azure Kartor visuellt objekt Power BI platsdatas roll i affärsresultat.

Under hela processen:

  • Azure Monitor samlar in information om händelser och prestanda.
  • Log Analytics kör frågor på Övervakningsloggar och analyserar resultatet.
  • Azure Key Vault skyddar lösenord, anslutningssträngar och hemligheter.

Komponenter

  • Event Hubs är en fullständigt hanterad strömningsplattform för stordata. Den här plattformen som en tjänst (PaaS) erbjuder en partitionerad konsumentmodell. Flera program kan använda den här modellen för att bearbeta dataströmmen samtidigt.

  • Data Factory är en integreringstjänst som fungerar med data från olika datalager. Du kan använda den här fullständigt hanterade, serverlösa plattformen för att skapa, schemalägga och samordna arbetsflöden för datatransformering.

  • Azure Databricks är en plattform för dataanalys. Dess fullständigt hanterade Spark-kluster bearbetar stora dataströmmar från flera källor. Azure Databricks kan omvandla geospatiala data i stor skala för användning i analys- och datavisualisering.

  • Data Lake Storage är en skalbar och säker datasjö för högpresterande analysarbetsbelastningar. Den här tjänsten kan hantera flera petabyte med information samtidigt som dataflödet på hundratals gigabit upprätthålls. Data kommer vanligtvis från flera heterogena källor och kan vara strukturerade, halvstrukturerade eller ostrukturerade.

  • Azure Database for PostgreSQL är en fullständigt hanterad relationsdatabastjänst som baseras på Community Edition av PostgreSQL-databasmotorn med öppen källkod.

  • PostGIS är ett tillägg för PostgreSQL-databasen som integreras med GIS-servrar. PostGIS kan köra SQL platsfrågor som omfattar geografiska objekt.

  • Redis är ett datalager med öppen källkod i minnet. Redis-cacheminnen lagrar data som används ofta i serverminnet. Cacheminnena kan sedan snabbt bearbeta stora mängder programbegäranden som använder data.

  • Power BI är en samling programvarutjänster och appar. Du kan använda Power BI för att ansluta orelaterade datakällor och skapa visuella objekt av dem.

  • Azure Kartor visuella objekt för Power BI ett sätt att förbättra kartor med rumsliga data. Du kan använda det här visuella objektet för att visa hur platsdata påverkar affärsmått.

  • App Service och dess Web Apps tillhandahåller ett ramverk för att skapa, distribuera och skala webbappar. Plattformen App Service erbjuder inbyggt infrastrukturunderhåll, säkerhetskorrigering och skalning.

  • API:er för GIS-data i Azure Kartor lagra och hämta kartdata i format som GeoJSON och vektorpaneler.

  • Azure Data Explorer är en snabb, fullständigt hanterad dataanalystjänst som kan arbeta med stora mängder data. Den här tjänsten fokuserade ursprungligen på tidsserier och logganalys. Den hanterar nu även olika dataströmmar från program, webbplatser, IoT-enheter och andra källor. Geospatiala funktioner i Azure Data Explorer alternativ för rendering av kartdata.

  • Monitor samlar in data om miljöer och Azure-resurser. Den här diagnostikinformationen är användbar för att upprätthålla tillgänglighet och prestanda. Två dataplattformar utgör Monitor:

  • Log Analytics är ett Azure Portal-verktyg som kör frågor på Monitor-loggdata. Log Analytics innehåller också funktioner för att diagram och statistiskt analysera frågeresultat.

  • Key Vault lagrar och styr åtkomsten till hemligheter som token, lösenord och API-nycklar. Key Vault också skapar och styr krypteringsnycklar och hanterar säkerhetscertifikat.

Alternativ

  • I stället för att utveckla egna API:er bör du överväga att använda Martin. Den här panelservern med öppen källkod gör vektorpaneler tillgängliga för webbappar. Martin har skrivitsi Rust och ansluter till PostgreSQL-tabeller. Du kan distribuera den som en container.

  • Om målet är att tillhandahålla ett standardiserat gränssnitt för GIS-data bör du överväga att använda GeoServer. Det här öppna ramverket implementerar OGC Open Geospatial Consortium protokoll (industry-standard Open Geospatial Consortium), till exempel WFS (Webbfunktionstjänst). Den integreras också med vanliga rumsliga datakällor. Du kan distribuera GeoServer som en container på en virtuell dator. När anpassade webbappar och undersökande frågor är sekundära är GeoServer ett enkelt sätt att publicera geospatiala data.

  • Olika Spark-bibliotek är tillgängliga för att arbeta med geospatiala data på Azure Databricks. Den här lösningen använder följande bibliotek:

    Men det finns även andra lösningar för bearbetning och skalning av geospatiala arbetsbelastningar med Azure Databricks.

  • Vektorpaneler är ett effektivt sätt att visa GIS-data på kartor. Den här lösningen använder PostGIS för att dynamiskt fråga vektorpaneler. Den här metoden fungerar bra för enkla frågor och resultatuppsättningar som innehåller mycket mindre än 1 miljon poster. Men i följande fall kan en annan metod vara bättre:

    • Dina frågor är beräkningsmässigt dyra.
    • Dina data ändras inte ofta.
    • Du visar stora datamängder.

    I sådana situationer bör du överväga att användaEgecanoe för att generera vektorpaneler. Du kan köraEgecanoe som en del av ditt databearbetningsflöde, antingen som en container eller med Azure Functions. Du kan göra de resulterande panelerna tillgängliga via API:er.

  • Precis Event Hubs kan Azure IoT Hub mata in stora mängder data. Men IoT Hub också funktioner för dubbelriktad kommunikation med enheter. Om du tar emot data direkt från enheter men även skickar kommandon och principer tillbaka till enheter bör du överväga IoT Hub stället för Event Hubs.

  • Om du vill effektivisera lösningen utelämnar du följande komponenter:

    • Öppna Azure-datautforskaren
    • Power BI

Överväganden

Följande överväganden, baserat på Microsoft Azure Well-Architected Framework,gäller för den här lösningen:

Överväganden för tillgänglighet

Skalbarhetsöverväganden

Den här lösningens implementering uppfyller följande villkor:

  • Bearbetar upp till 10 miljoner datauppsättningar per dag. Datauppsättningarna omfattar batchhändelser eller direktuppspelningshändelser.
  • Lagrar 100 miljoner datauppsättningar i en Azure Database for PostgreSQL databas.
  • Frågar 1 miljon eller färre datamängder samtidigt. Högst 30 användare kör frågorna.

Miljön använder den här konfigurationen:

  • Ett Azure Databricks kluster med fyra F8s_V2 arbetsnoder.
  • En minnesoptimerad instans av Azure Database for PostgreSQL.
  • En App Service plan med två Standard S2-instanser.

Överväg dessa faktorer för att avgöra vilka justeringar du ska göra för implementeringen:

  • Din datainmatningshastighet.
  • Din datavolym.
  • Din frågevolym.
  • Antalet parallella frågor som du behöver stöd för.

Du kan skala Azure-komponenter oberoende av varandra:

Funktionen för automatisk skalning i Monitor innehåller även skalningsfunktioner. Du kan konfigurera den här funktionen för att lägga till resurser för att hantera ökningar i belastningen. Det kan också ta bort resurser för att spara pengar.

Säkerhetsöverväganden

Prissättning

  • Om du vill beräkna kostnaden för att implementera den här lösningen kan du se ett exempel på en kostnadsprofil. Den här profilen är för en enda implementering av miljön som beskrivs i Skalbarhetsöverväganden. Den inkluderar inte kostnaden för Azure Data Explorer.
  • Om du vill justera parametrarna och utforska kostnaden för att köra den här lösningen i din miljö använder du priskalkylatorn för Azure.

Nästa steg

Om du vill börja implementera den här lösningen kan du se den här informationen:

Information om bearbetning av geospatiala data