Hantera moderna databaskrav med Azure SQL Database
När du har konfigurerat din miljö är du redo att börja analysera och testa vissa komponenter i en potentiell lösningsarkitektur. I busfångstscenariot och för många andra moderna program behöver du en modern databas för att lagra, bearbeta och hantera data. Nu ska vi utforska hur Azure SQL Database uppfyller behoven i moderna program.
Skala för att möta efterfrågan med flexibla Azure SQL Database-alternativ
Ett av grundelementen i ett modernt program är möjligheten att enkelt skala upp eller ned för att svara korrekt på arbetsbelastningsanvändningen. Möjligheten att enkelt uppdatera och utveckla en lösning, tillsammans med deterministisk, automatisk distribution är också grundpelare för modern programutveckling. Den här principen ger också program möjlighet att endast betala för det som behövs, när det behövs.
Azure SQL Database har starkt stöd för alla dessa nödvändiga funktioner. Om du behöver en framtidssäker, skalbar, säker och högpresterande databas tillhandahåller Azure SQL Hyperscale allt du behöver och mycket mer. Den kan skala upp till 100 TB och dess distribuerade arkitektur gör det enkelt att skala upp och ut. Det är den perfekta databasen för transaktions- och hybridtransaktionsanalysarbetsbelastningar.
För att stödja utveckling och utvecklare kan du använda den serverlösa beräkningsnivån i Azure SQL Database, som automatiskt kan skalas upp och ned inom ett definierat intervall och kan pausa automatiskt när det inte används för att ge dig det mest kostnadseffektiva sättet att utveckla och testa din lösning. Med tanke på att motorn bakom Azure SQL Database är densamma krävs inga kodändringar och ingen extra ansträngning för att flytta till den serverlösa beräkningsnivån i Azure SQL Database och Azure SQL Hyperscale.
Stöd för utvecklingsarbetsflöden med GitHub Actions
Eftersom DevOps-metoden nu är allestädes närvarande är det viktigt att en modern lösning stöder och har en felfri ci/CD-pipeline (kontinuerlig integrering och kontinuerlig leverans/kontinuerlig distribution). Azure SQL Database har inbyggt stöd för GitHub Actions, som du kan använda för att distribuera ändringar i utvecklingsdatabasen för att testa och produktionsdatabaser när de är klara. Azure SQL Database-åtgärder använder en tillståndsbaserad metod. DevOps för data är ett intressant ämne, och du kan lära dig mer om det i avsnitten Dataexponerade som refereras i slutet av modulen.
Ett annat viktigt krav för en modern databas är möjligheten att hantera och stödja de senaste utvecklingstrenderna och innovationerna. Azure SQL Database innehåller många funktioner så att du kan använda den bästa tekniken eller modellen för ett visst användningsfall. Vi ger en översikt över alla tillgängliga funktioner i ett blogginlägg i slutet av modulen.
Framtidssäkra dina program med Hjälp av Azure SQL Database
Under programmets livslängd vill du använda olika tekniker för att vara så effektiva som möjligt. Du kanske till exempel vill använda en Graph-modell för att enkelt spåra och modellera en komplex nätverksrelation, till exempel ett socialt nätverk eller ett elnät. Eller så kanske du snabbt behöver aggregera en stor mängd data för att beräkna tillväxttakten för ett visst värde. I alla dessa fall, och i många fler, har Azure SQL Database du gått igenom. Det stöder Graph-modeller, Columnstore-index och till och med minnesoptimerade tabeller för det högsta dataflödet (dessa tabeller är kompilerade datastrukturer som sedan läses in i processen för att uppnå höga prestanda).
För busfångstscenariot använder du den serverlösa beräkningsnivån i Azure SQL Database så att du bara betalar för det du behöver och använder på grund av stöd för automatisk skalning och autopaus. Du använder GitHub Actions för att skapa en distributionspipeline för att uppdatera databasen efter behov. Det finns några andra funktioner som krävs för scenariot. Låt oss ta en närmare titt på dem. I nästa övning får du praktiska funktioner.
Bearbeta JSON-data med inbyggda JSON-funktioner
Med Azure SQL Database kan utvecklare använda JSON för att både utbyta data med databasen och lagra JSON-dokument. På så sätt kan du använda JSON som en effektiv transportmekanism för att skicka datauppsättningar, till exempel matriser och objekt, till en lagrad procedur som ska bearbetas. När du har JSON-dokumentet kan du enkelt ändra det med hjälp av interna JSON-funktioner, till exempel JSON_VALUE, JSON_MODIFY eller OPENJSON. Här är ett exempel:
DECLARE @json NVARCHAR(MAX) = '[{"user":{"id": 1, "name": "Anna"}},{"user":{"id": 2, "name": "Davide"}}]'
SELECT * FROM
OPENJSON(@json) WITH (
[Id] INT '$.user.id',
[Name] NVARCHAR(100) '$.user.name'
)
Fler exempel som visar hur du kan använda JSON i Azure SQL Database finns i slutet av modulen.
Analysera geospatiala data med den inbyggda geospatiala motorn
Azure SQL Database har en inbyggd geospatial motor som du kan använda för att utföra geospatiala frågor utan att installera externa bibliotek eller flytta data, vilket kan vara dyrt för stora mängder data. Azure SQL Database har fullt stöd för OGC-standarden (Open Geospatial Consortium), så exporterade data kan användas av bibliotek som OpenLayers.
I följande exempel visas hur du kan skapa en polygon som fungerar som geofence i busfångstscenariot och kontrollera om en punkt som fungerar som dina realtidsbussdatapunkter finns i polygonen.
-- Microsoft Building 44
declare @bldg44 as geography = geography::STGeomFromText('POLYGON((-122.13403149305233 47.64136608877112,-122.13398769073248 47.64058891712273,-122.13319924946629 47.64011342667547,-122.13285369830483 47.640106868176076,-122.13254221532335 47.640834858789844,-122.13257628383073 47.6410086568205,-122.13334039023833 47.64144150986729,-122.13403149305233 47.64136608877112))', 4326)
-- A point you want to check
declare @p as geography = geography::STPointFromText('POINT(-122.13315058040392 47.64101193601368)', 4326)
-- Is the point within the perimeter?
select @p.STWithin(@bldg44)
Eftersom textformatet för platserna (till exempel POINT(-122.13315058040392 47.64101193601368)
) är ett standardformat som kallas välkänd text (WKT) är det möjligt att se formen projicerad på en karta bara genom att kopiera och klistra in strängen. I nästa övning testar du det själv med OpenStreetMap WKT Playground.