Den här artikeln beskriver en hanterbar lösning för att göra stora mängder geospatiala data tillgängliga för analys.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
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örbereda, 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 ansluter rutorna på det sätt som stegen beskriver i diagramförklaringen.
Arbetsflöde
IoT-data anger systemet:
- Azure Event Hubs matar in strömmar med IoT-data. Data innehåller koordinater eller annan information som identifierar enheters platser.
- Event Hubs använder Azure Databricks för inledande dataströmbearbetning.
- Event Hubs lagrar data i Azure Data Lake Storage.
GIS-data anger systemet:
Azure Data Factory matar in raster-GIS-data och vektor-GIS-data i valfritt format.
- Rastreringsdata består av rutnät med värden. Varje pixelvärde representerar en egenskap som temperatur eller höjd för 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änder 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 textmarkeringsspråk som representerar vektorgeometriobjekt.
- Vektorpaneler är paket med geografiska data. Deras enkla format förbättrar mappningsprestandan.
En Redis-cache förbättrar prestandan genom att ge snabb åtkomst till data.
Funktionen Web Apps 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-funktioner 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). Det visuella Azure-Kartor för Power BI visar rollen för platsdata i affärsresultat.
Under hela processen:
- Azure Monitor samlar in information om händelser och prestanda.
- Log Analytics kör frågor i Övervaka loggar och analyserar resultatet.
- Azure Key Vault skyddar lösenord, anslutningssträng och hemligheter.
Komponenter
Azure 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.
Azure Data Factory är en integrationstjä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 analysarbetsbelastningar med höga prestanda. Den här tjänsten kan hantera flera petabyte med information samtidigt som hundratals gigabit dataflöde bibehå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å communityversionen 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, minnesinternt. Redis-cacheminnen behåller 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 programtjänster och appar. Du kan använda Power BI för att ansluta orelaterade datakällor och skapa visuella objekt av dem.
Det visuella Azure-Kartor för Power BI är 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.
Azure App Service och dess Web Apps-funktion tillhandahåller ett ramverk för att skapa, distribuera och skala webbappar. App Service-plattformen erbjuder inbyggt infrastrukturunderhåll, säkerhetskorrigeringar 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 fungera 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 innehåller alternativ för återgivning av kartdata.
Azure 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-loggar registrerar och lagrar logg- och prestandadata.
- Azure Monitor Metrics samlar in numeriska värden med jämna mellanrum.
Log Analytics är ett Azure-portalverktyg som kör frågor på Övervaka loggdata. Log Analytics innehåller även funktioner för diagram och statistisk analys av frågeresultat.
Key Vault lagrar och styr åtkomsten till hemligheter som token, lösenord och API-nycklar. Key Vault skapar och styr även 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 är skriven i 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 branschstandardprotokoll för Open Geospatial Consortium (OGC), till exempel Web Feature Service (WFS). 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 i 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 långt under 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 dessa situationer bör du överväga att använda Tippecanoe för att generera vektorpaneler. Du kan köra Tippecanoe som en del av databehandlingsflödet, antingen som en container eller med Azure Functions. Du kan göra de resulterande panelerna tillgängliga via API:er.
Precis som Event Hubs kan Azure IoT Hub mata in stora mängder data. Men IoT Hub erbjuder också dubbelriktade kommunikationsfunktioner med enheter. Om du tar emot data direkt från enheter men även skickar tillbaka kommandon och principer till enheter bör du överväga IoT Hub i stället för Event Hubs.
Om du vill effektivisera lösningen utelämnar du följande komponenter:
- Öppna Azure-datautforskaren
- Power BI
Information om scenario
Det finns många möjligheter att arbeta med geospatiala data eller information som innehåller en geografisk komponent. Till exempel är programvara och standarder för geografiska informationssystem (GIS) 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å referensarkitektur 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 data som användarna 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.
- Den visuella funktionen Azure Kartor Power BI 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 IoT-telemetri (Internet of Things) från flyttenheter.
- Köra geospatiala analytiska frågor.
- Bädda in kuraterade och kontextualiserade geospatiala data i webbappar.
Att tänka på
Följande överväganden, som baseras på Microsoft Azure Well-Architected Framework, gäller för den här lösningen.
Tillgänglighet
Event Hubs sprider felrisk över kluster.
- Använd ett namnområde med tillgänglighetszoner aktiverade för att sprida risker över tre fysiskt avgränsade anläggningar.
- Överväg att använda funktionen geo-haveriberedskap i Event Hubs. Den här funktionen replikerar hela konfigurationen av ett namnområde från en primär till ett sekundärt namnområde.
Se funktioner för affärskontinuitet som Azure Database for PostgreSQL erbjuder. Dessa funktioner omfattar en rad olika återställningsmål.
App Service-diagnostik varnar dig för problem i appar, till exempel stilleståndstid. Använd den här tjänsten för att identifiera, felsöka och lösa problem som avbrott.
Överväg att använda App Service för att säkerhetskopiera programfiler. Men var försiktig med säkerhetskopierade filer, som innehåller appinställningar i oformaterad text. Dessa inställningar kan innehålla hemligheter som anslutningssträng.
Skalbarhet
Implementeringen av den här lösningen uppfyller följande villkor:
- Bearbetar upp till 10 miljoner datauppsättningar per dag. Datauppsättningarna innehåller batch- eller strömningshä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.
Tänk på dessa faktorer för att avgöra vilka justeringar som ska göras för implementeringen:
- Datainmatningshastigheten.
- 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 dataflö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 kan elastiskt skalas till terabyte data på några minuter.
Funktionen för automatisk skalning i Monitor ger också skalningsfunktioner. Du kan konfigurera den här funktionen för att lägga till resurser för att hantera ökad belastning. Det kan också ta bort resurser för att spara pengar.
Säkerhet
Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.
Skydda paneldata för vektorer. 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.
För att förbättra säkerheten använder du Key Vault i följande situationer:
Se Säkerhet i Azure App Service för information om hur App Service hjälper till att skydda webbappar. Tänk också på följande:
Kostnadsoptimering
Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.
- Information om hur du beräknar kostnaden för att implementera den här lösningen finns i en exempelkostnadsprofil. Den här profilen är avsedd 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.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudförfattare:
- Richard Bumann | Lösningsarkitekt
Nästa steg
Produktdokumentation:
- Om Azure Event Hubs
- Begrepp i Azure Databricks
- Introduktion till Azure Data Lake Storage
- Vad är Azure Data Factory?
- Översikt över Azure App Service
Information om hur du börjar implementera den här lösningen finns i följande information:
- Anslut en WFS till Azure Kartor
- Bearbeta OpenStreetMap-data med Spark.
- Utforska sätt att visa data med Azure Kartor.
Information om bearbetning av geospatiala data
- Funktioner för att köra frågor mot PostGIS för vektorpaneler
- Funktioner för inläsning av PostGIS-rastrar
- Geospatiala funktioner i Azure Data Explorer
- Datakällor för vektorpaneler i Azure Kartor
- Metoder för att bearbeta geospatiala data i Databricks
Relaterade resurser
Relaterade arkitekturer
- Stordataanalys med Azure Data Explorer
- Konsortium för hälsodata i Azure
- [DataOps för det moderna informationslagret] [DataOps för det moderna informationslagret]
- Interaktiv analys i Azure Data Explorer
- Geospatial referensarkitektur – Azure Orbital
- Geospatial analys för telekom
- Spaceborne-dataanalys med Azure Synapse Analytics
Relaterade guider
- Jämför maskininlärningsprodukter och -tekniker från Microsoft – Azure Databricks
- Ramverk för maskininlärningsåtgärder (MLOps) för att skala upp livscykeln för maskininlärning med Azure Machine Learning
- [Beslutsguide för Azure Machine Learning för optimalt val av verktyg] [Beslutsguide för Azure Machine Learning för optimalt val av verktyg]
- Övervaka Azure Databricks