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
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.
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.
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.
Spark-kluster i Azure Databricks använda geospatiala kodbibliotek för att transformera och normalisera data.
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.
Data Factory läser in förberedda vektor- och rasterdata i Azure Data Explorer.
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.
Den Web Apps funktionen i Azure App Service fungerar med Azure Kartor för att skapa visuella objekt av data.
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.
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:
- Azure Monitor registrerar och lagrar logg- och prestandadata.
- Azure Monitor mått samlar in numeriska värden med jämna mellanrum.
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:
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
Event Hubs sprider felrisken mellan kluster.
- Använd ett namnområde med tillgänglighetszoner aktiverat för att sprida risken över tre fysiskt avgränsade anläggningar.
- Överväg att använda funktionen för geo-haveriberedskap i Event Hubs. Den här funktionen replikerar hela konfigurationen av ett namnområde från en primär till en sekundär namnrymd.
Se funktioner för affärskontinui som Azure Database for PostgreSQL erbjuder. Dessa funktioner omfattar en rad återställningsmål.
App Service diagnostik varnar dig om problem i appar, till exempel driftstopp. Använd den här tjänsten för att identifiera, felsöka och lösa problem som avbrott.
Överväg att App Service för att backa upp programfiler. Men var försiktig med säkerhetskopierade filer, som inkluderar appinställningar i oformaterad text. Dessa inställningar kan innehålla hemligheter som anslutningssträngar.
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:
Event Hubs skalas automatiskt upp för att uppfylla användningsbehoven. Men vidta åtgärder för att hantera genomflödesenheter och optimera partitioner.
Data Factory hanterar stora mängder data. Dess serverlösa arkitektur stöder parallellitet på olika nivåer.
Azure Database for PostgreSQL erbjuder horisontell skalning med höga prestanda.
Azure Data Explorer elastiskt skala till terabyte data på några minuter.
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
Skydda vektorpaneldata. Vektorpaneler bäddar in koordinater och attribut för flera entiteter i en fil. Om du genererar vektorpaneler använder du en dedikerad uppsättning paneler för varje behörighetsnivå i ditt åtkomstkontrollsystem. Med den här metoden har endast användare inom varje behörighetsnivå åtkomst till den nivåns datafil.
Du kan förbättra säkerheten genom att Key Vault i följande situationer:
Se Säkerhet i Azure App Service information om hur App Service hjälper till att skydda webbappar. Tänk också på följande:
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:
Relaterade arkitekturer
- Stordataanalys med Azure Data Explorer
- Konsortium för hälsodata i Azure
- DataOps för modernt informationslager
- Interaktiv analys i Azure Data Explorer
Relaterade guider
- Jämför maskininlärningsprodukter och -tekniker från Microsoft – Azure Databricks
- MLOps-ramverket (Machine Learning Operations) för att skala upp livscykeln för maskininlärning Azure Machine Learning
- Azure Machine Learning-beslutsguide för val av optimalt verktyg
- Övervaka Azure Databricks
Information om bearbetning av geospatiala data
- Funktioner för att köra frågor mot PostGIS för vektorpaneler
- Funktioner för att läsa in PostGIS-rastrar
- Azure Data Explorer geospatiala funktioner
- Datakällor för vektorpaneler i Azure Kartor
- Metoder för att bearbeta geospatiala data i Databricks
Relaterade resurser
- Anslut en WFS till Azure Kartor.
- Bearbeta OpenStreetMap-data med Spark.
- Utforska olika sätt att visa data med Azure Kartor.