Dela via


Förstå datamodeller

Moderna lösningar hanterar olika data, till exempel transaktioner, händelser, dokument, telemetri, binära tillgångar och analysfakta. Ett enda datalager uppfyller sällan alla åtkomstmönster effektivt. De flesta produktionssystem använder flerspråkig beständighet, vilket innebär att du väljer flera lagringsmodeller. Den här artikeln centraliserar de kanoniska definitionerna av de primära datalagermodellerna som är tillgängliga i Azure och tillhandahåller jämförande tabeller för att påskynda modellvalet innan du väljer specifika tjänster.

Använd följande steg för att välja dina datamodeller:

  1. Identifiera åtkomstmönster för arbetsbelastningar, till exempel punktläsningar, aggregeringar, fulltext, likhet, tidsfönstergenomsökningar och objektleverans.

  2. Mappa mönstren till lagringsmodellerna i följande avsnitt.

  3. Skapa en slutlista över Azure-tjänster som implementerar dessa modeller.

  4. Tillämpa utvärderingskriterier, till exempel konsekvens, svarstid, skala, styrning och kostnad.

  5. Kombinera endast modeller där åtkomstmönster eller livscykel tydligt avviker.

Så här använder du den här guiden

Varje modellavsnitt innehåller en kortfattad definition, typiska arbetsbelastningar, dataegenskaper, exempelscenarier och länkar till representativa Azure-tjänster. Varje avsnitt innehåller också en tabell som hjälper dig att välja rätt Azure-tjänst för ditt användningsfall. I vissa fall kan du använda andra artiklar för att göra mer välgrundade val om Azure-tjänstalternativ. Respektive modellavsnitt refererar till dessa artiklar.

Två jämförande tabeller sammanfattar icke-relationella modellegenskaper som hjälper dig att snabbt utvärdera alternativ utan att upprepa innehåll mellan avsnitt.

Klassificeringsöversikt

Kategori Primärt syfte Vanliga Azure-tjänstexempel
Relationell (OLTP) Konsekventa transaktionsåtgärder Azure SQL Database, Azure Database for PostgreSQL eller Azure Database for MySQL
Icke-relationella, till exempel dokument, nyckelvärde, kolumnfamilj och diagram Flexibla schema- eller relationscentrerade arbetsbelastningar Azure Cosmos DB-API:er, Azure Managed Redis, Managed Cassandra eller HBase
Tidsserier Tidsstämplade mått och händelser med hög inmatning Azure-datautforskaren
Objekt och fil Förvaring av stora binära eller halvstrukturerade filer Azure Blob Storage eller Azure Data Lake Storage
Sökning och indexering Fulltext- och flerfältsrelevans, sekundär indexering Azure AI-sökning
Vector Semantisk eller ungefärlig närmaste grannlikhet (ANN) Azure AI Search- eller Azure Cosmos DB-varianter
Analys, on-line analytisk bearbetning (OLAP), massivt parallell bearbetning (MPP) Storskalig historisk aggregering eller business intelligence (BI) Microsoft Fabric, Azure Synapse Analytics, Azure Data Explorer, Azure Analysis Services eller Azure Databricks

Anmärkning

En enda tjänst kan tillhandahålla flera modeller, även kallade multimodel. Välj den modell som passar bäst i stället för att kombinera modeller på ett sätt som komplicerar åtgärder.

Relationsdatalager

Hanteringssystem för relationsdatabaser organiserar data i normaliserade tabeller med hjälp av schema-on-write. De säkerställer integritet och stöder transaktioner med atomicitet, konsekvens, isolering och hållbarhet (ACID) samt omfattande SQL-frågor.

Styrkor: Transaktionskonsekvens för flera rader, komplexa kopplingar, starka relationsbegränsningar och mogna verktyg för rapportering, administration och styrning.

Överväganden: Horisontell skalning kräver vanligtvis shardning eller partitionering, och normalisering kan öka kopplingskostnaden för läsintensiva avnormaliserade vyer.

Arbetsbelastningar: Orderhantering, inventeringsspårning, registrering av finansiella transaktionsregister, fakturering och driftrapportering.

Välj en Azure-tjänst för relationsdatalager

  • SQL Database är en hanterad relationsdatabas för moderna molnprogram som använder SQL Server-motorn.

  • Azure SQL Managed Instance är en nästan komplett SQL Server-miljö i molnet som är perfekt för lift-and-shift-migreringar.

  • SQL Database (Hyperskala) är en mycket skalbar SQL-nivå som är utformad för massiva arbetsbelastningar med snabb autoskalning och snabba säkerhetskopieringar.

  • Azure Database for PostgreSQL är en hanterad PostgreSQL-tjänst som stöder tillägg med öppen källkod och flexibla distributionsalternativ.

  • Azure Database for MySQL är en hanterad MySQL-databas för webbappar och arbetsbelastningar med öppen källkod.

  • SQL Database i Fabric är en utvecklarvänlig transaktionsdatabas, baserad på SQL Database, som du kan använda för att enkelt skapa en driftdatabas i Fabric.

Använd följande tabell för att avgöra vilken Azure-tjänst som uppfyller dina krav för användningsfall.

Tjänster Passar bäst för Viktiga funktioner Exempel på användningsfall
SQL-databas Molnbaserade appar Hanterade, elastiska pooler, Hyperskala, inbyggd hög tillgänglighet, avancerad säkerhet Skapa ett modernt SaaS-program (programvara som en tjänst) med hjälp av en skalbar SQL-serverdel
SQL-hanterad instans Äldre företagsappar Fullständig SQL Server-kompatibilitet, lift-and-shift-stöd, virtuella nätverk, avancerad granskning Migrera en lokal SQL Server-app med minimala kodändringar
SQL Database (Hyperskala) Global spridning Skalbarhet för läsning i flera regioner, geo-replikering, snabb autoskalning Hantera en globalt distribuerad app som kräver högt läsdataflöde
Azure-databas för PostgreSQL Analysarbetsbelastningar med öppen källkod PostGIS, Hyperskala, Flexibel server, tillägg med öppen källkod Utveckla en geospatial analysapp med postgreSQL och PostGIS
Azure Database for MySQL Lätta webbappar Flexibel server, kompatibilitet med öppen källkod, kostnadseffektiv Värd för en WordPress-baserad e-handelswebbplats
SQL Database i Fabric Arbetsbelastningar för online-transaktionsbehandling (OLTP) inom Fabric-ekosystemet Byggd på SQL Database-motorn, skalbar och integrerad i Fabric Skapa AI-appar på en fungerande relationsdatamodell som innehåller inbyggda vektorsökningsfunktioner

Icke-relationella datalager

Icke-relationella databaser, även kallade NoSQL-databaser, optimerar för flexibla scheman, horisontell skalning och specifika åtkomst- eller aggregeringsmönster. De lättar vanligtvis på vissa aspekter av relationsbeteendet, till exempel schemastyvhet och transaktionsomfång, för skalbarhet eller flexibilitet.

Dokumentdatalager

Använd dokumentdatalager för att lagra halvstrukturerade dokument, ofta i JSON-format, där varje dokument innehåller namngivna fält och data. Data kan vara enkla värden eller komplexa element, till exempel listor och underordnade samlingar. Schemaflexivhet per dokument möjliggör gradvis utveckling.

Styrkor: Mappning av naturligt programobjekt, avnormaliserade aggregeringar, indexering med flera fält

Överväganden: Dokumentstorlekstillväxt, selektiv transaktionsomfång, behov av noggrann design av dataform för storskaliga frågor

Arbetsbelastningar: Produktkataloger, innehållshantering, profillager

Välj en Azure-tjänst för dokumentdatalager

  • Azure Cosmos DB for NoSQL är en schemalös NoSQL-databas med flera regioner som har läs- och skrivåtgärder med låg svarstid.

  • Azure Cosmos DB for MongoDB är en globalt distribuerad databas som har MongoDB-trådprotokollkompatibilitet och autoskalning.

  • Azure Cosmos DB i Fabric är en NoSQL-databas utan schema som har läs- och skrivåtgärder med låg svarstid, förenklad hantering och inbyggd Fabric-analys.

Använd följande tabell för att avgöra vilken Azure-tjänst som uppfyller dina krav för användningsfall.

Tjänster Passar bäst för Viktiga funktioner Exempel på användningsfall
Azure Cosmos DB för NoSQL Anpassade JSON-dokumentmodeller som stöder SQL-liknande frågor Rich query language, multi-region writes, tid att leva (TTL), ändringsfeed Skapa en SaaS-plattform med flera klientorganisationer som stöder flexibla scheman
Azure Cosmos DB för MongoDB Appar som använder MongoDB-drivrutiner eller JSON-centrerade API:er Global distribution, autoskalning, inbyggt MongoDB-trådprotokoll Migrera en Node.js app från MongoDB till Azure
Azure Cosmos DB i Fabric Realtidsanalys över NoSQL-data Automatisk extrahering, transformering och laddning (ETL) till OneLake via Fabric-integration Transaktionsappar som innehåller analysinstrument i realtid

Datalager för kolumnfamilj

En kolumnfamiljedatabas, även känd som en bredkolumnsdatabas, lagrar glesa data i rader och organiserar dynamiska kolumner i kolumnfamiljer för att stödja samåtkomst. Kolumnorientering förbättrar genomsökningar över valda kolumnuppsättningar.

Styrkor: Högt skrivdataflöde, effektiv hämtning av breda eller glesa datamängder, dynamiskt schema inom familjer

Överväganden: Primär radnyckel och kolumnfamiljsdesign, stöd för sekundärt index varierar, frågeflexieflexitet lägre än relationsbaserad

Arbetsbelastningar: IoT-telemetri (Internet of Things), anpassning, analysföraggregering, hög data i tidsserieformat när du inte använder en dedikerad tidsseriedatabas

Välj en Azure-tjänst för kolumnfamiljedatalager

Använd följande tabell för att avgöra vilken Azure-tjänst som uppfyller dina krav för användningsfall.

Tjänster Passar bäst för Viktiga funktioner Exempel på användningsfall
Azure Managed Instance för Apache Cassandra Nya och migrerade Cassandra-arbetsbelastningar Hanterad, inbyggd Apache Cassandra IoT-enhetstelemetriinmatning som stöder Cassandra-kompatibilitet
Apache HBase på HDInsight Hadoop-ekosystem, batchanalys HdFS-integrering (Hadoop Distributed File System), storskalig batchbearbetning Batchbearbetning av sensordata i en tillverkningsanläggning
Azure Data Explorer (Kusto) Telemetri med hög inmatning, tidsserieanalys KQL, snabba ad hoc-frågor, tidsfönsterfunktioner Realtidsanalys för programloggar och mått

Nyckelvärdesdatalager

Ett nyckelvärdesdatalager associerar varje datavärde med en unik nyckel. De flesta nyckelvärdeslager stöder endast enkla åtgärder för frågor, infogning och borttagning. Om du vill ändra ett värde helt eller delvis måste ett program skriva över befintliga data för hela värdet. I de flesta implementeringar är läsning eller skrivning av ett enda värde en atomisk åtgärd.

Styrkor: Enkelhet, låg svarstid, linjär skalbarhet

Överväganden: Begränsad frågeextektivitet, omdesign som behövs för värdebaserade sökningar, kostnader för överskrivning av stort värde

Arbetsbelastningar: Cachelagring, sessioner, funktionsflaggor, användarprofiler, rekommendationssökningar

Välj en Azure-tjänst för nyckelvärdesdatalager

  • Azure Managed Redis är ett hanterat minnesinternt datalager baserat på den senaste Redis Enterprise-versionen som ger låg svarstid och högt dataflöde.

  • Azure Cosmos DB for Table är ett nyckelvärdeslager som är optimerat för snabb åtkomst till strukturerade NoSQL-data.

  • Azure Cosmos DB for NoSQL är ett dokumentdatalager som är optimerat för snabb åtkomst till strukturerade NoSQL-data och ger horisontell skalbarhet.

Använd följande tabell för att avgöra vilken Azure-tjänst som uppfyller dina krav för användningsfall.

Tjänster Passar bäst för Viktiga funktioner Exempel på användningsfall
Azure Managed Redis Snabb cachelagring, sessionstillstånd, publicera-prenumerera Minnesintern lagring, svarstid för undermillisekunder, Redis-protokoll Cachelagring av produktsidor på en e-handelsplats
Azure Cosmos DB för tabell Migrera befintliga Azure Table Storage-arbetsbelastningar API-kompatibilitet för table storage Lagra användarinställningar och inställningar i en mobilapp
Azure Cosmos DB för NoSQL Snabb cachelagring med massiv skalning och hög tillgänglighet Schemalös, multiregion, automatisk skalning Cachelagring, sessionsstatus, tjänstelager

Diagramdatalager

En grafdatabas lagrar information som noder och kanter. Kanter definierar relationer, och både noder och kanter kan ha egenskaper som liknar tabellkolumner. Du kan analysera anslutningar mellan entiteter, till exempel anställda och avdelningar.

Styrkor: Relationsinriktade frågemönster, effektiva bläddringssteg med variabelt djup

Överväganden: Omkostnader om relationer är ytliga, kräver noggrann modellering för prestanda, inte idealiskt för massanalysgenomsökningar

Överbelastningar: Sociala nätverk, bedrägeriringar, kunskapsgrafer, leveranskedjans beroenden

Välj en Azure-tjänst för diagramdatalager

Använd SQL Server-graftillägg för att lagra grafdata. Graftillägget utökar funktionerna i SQL Server, SQL Database och SQL Managed Instance för att möjliggöra modellering och frågor mot komplexa relationer med hjälp av grafstrukturer direkt i en relationsdatabas.

Tidsseriedatalager

Tidsseriedatalager hanterar en uppsättning värden ordnade efter tid. De har stöd för funktioner som tidsbaserade frågor och aggregeringar och är optimerade för att mata in och analysera stora mängder data nästan i realtid.

Styrkor: Komprimering, fönsterbaserad frågeprestanda, inmatningshantering i fel ordning

Överväganden: Hantering av taggkardinalitet, lagringskostnad, strategi för nedsampling

Arbetsbelastningar: IoT-sensormått, programtelemetri, övervakning, industriella data

Välj en Azure-tjänst för tidsseriedatalager

Använd Azure Data Explorer för att lagra tidsseriedata. Azure Data Explorer är en hanterad stordataanalysplattform med höga prestanda som gör det enkelt att analysera stora mängder data nästan i realtid.

Objektdatalager

Lagra stora binära eller halvstrukturerade objekt och inkludera metadata som sällan ändras eller förblir oföränderliga.

Styrkor: Praktiskt taget obegränsad skalning, nivåindelad kostnad, hållbarhet, parallell läsfunktion

Överväganden: Åtgärder för hela objekt, begränsade metadatafrågor, eventuella listbeteenden

Arbetsbelastningar: Mediatillgångar, säkerhetskopior, råzoner för datalager, loggarkiv

Välj en Azure-tjänst för objektdatalager

  • Data Lake Storage är ett stordataoptimerad objektlager som kombinerar hierarkisk namnrymd och HDFS-kompatibilitet för avancerad analys och storskalig databearbetning.

  • Blob Storage är ett skalbart objektlager för ostrukturerade data som bilder, dokument och säkerhetskopior som innehåller nivåindelad åtkomst för kostnadsoptimering.

Använd följande tabell för att avgöra vilken Azure-tjänst som uppfyller dina krav för användningsfall.

Tjänster Passar bäst för Viktiga funktioner Exempel på användningsfall
Data Lake Storage Stordataanalys och hierarkiska data HDFS, hierarkiskt namnområde, optimerat för analys Lagra och fråga petabyte med strukturerade och ostrukturerade data med hjälp av Azure Synapse Analytics eller Azure Databricks
Blob Storage Lagring av allmänna objekt Platt namnområde, enkelt REST API och nivåindelad lagring som innehåller frekvent, lågfrekvent lagring och arkiv Värd för bilder, dokument, säkerhetskopior och statiskt webbplatsinnehåll

Sök och indexera datalager

Med en sökmotordatabas kan program söka efter information i externa datalager. En sökmotordatabas kan indexerar stora mängder data och ge nästan realtidsåtkomst till dessa index.

Styrkor: Fulltextfrågor, bedömning, språklig analys, fuzzy-matchning

Överväganden: Eventuell konsistens av index, separat inmatnings- eller indexeringspipeline, kostnader för stora indexuppdateringar

Arbetsbelastningar: Webbplats- eller produktsökning, loggsökning, metadatafiltrering, identifiering av flera attribut

Välj en Azure-tjänst för sökdatalager

Mer information finns i Välj ett sökdatalager i Azure.

Datalager för vektorsökning

Vektorsökningsdata lagrar och hämtar högdimensionella vektorrepresentationer av data, som ofta genereras av maskininlärningsmodeller.

Styrkor: Semantisk sökning, ANN-algoritmer

Överväganden: Indexering av komplexitet, lagringskostnader, svarstid kontra noggrannhet, integreringsutmaningar

Arbetsbelastningar: Semantisk dokumentsökning, rekommendationsmotorer, bild- och videohämtning, bedrägeri och avvikelseidentifiering

Välj en Azure-tjänst för datalager för vektorsökning

Mer information finns i Välj en Azure-tjänst för vektorsökning.

Analysdatalager

Analytics-datalager lagrar stora datamängder och bevarar dem under en analyspipelinen livscykel.

Styrkor: Skalbar beräkning och lagring, stöd för SQL och Spark, integrering med BI-verktyg, tidsserier och telemetrianalys

Överväganden: Kostnad och komplexitet för orkestrering, frågesvarstid för ad hoc-arbetsbelastningar, styrning över flera datadomäner

Arbetsbelastningar: Företagsrapportering, stordataanalys, telemetriaggregering, operativa instrumentpaneler, datavetenskapspipelines

Välj en Azure-tjänst för analysdatalager

Mer information finns i Välj ett analysdatalager i Azure.

Jämförande egenskaper (grundläggande icke-relationella modeller)

Aspekt Dokument Kolumnfamilj Nyckelvärde Graf
Normalisering Avnormaliserad Avnormaliserad Avnormaliserad Normaliserade relationer
Schematisk metodik Schema vid läsning Definierade kolumnfamiljer, schema för kolumner vid läsning Schema vid läsning Schema vid läsning
Konsekvens (typiskt) Justerbar för varje objekt För varje rad eller familj För varje nyckel För varje kant eller traverseringssemantik
Omfång för atomaritet Dokument Rad eller familj, beroende på tabellimplementering Enkel nyckel Graphtransaktion (varierar)
Låsning och parallellitet Optimistisk (ETag) Pessimistisk eller optimistisk, beroende på implementering Optimistisk (nyckel) Optimistisk (mönster)
Åtkomstmönster Aggregering (entitet) Stora glesa aggregeringar Punktsökning efter nyckel Relationstraverseringar
Indexering Primär och sekundär Primär och begränsad sekundär Primär (nyckel) Primär och ibland sekundär
Datans struktur Hierarkisk flexibel Gles tabellbredd Ogenomskinliga värden Noder och kanter
Lämplighet för glesa och breda scenarier Ja/Ja Ja/Ja Yes/No Nej/Nej
Typisk datumstorlek Liten till medelstor Medelstor–stor Liten Liten
Skalningsdimension Antal partitioner Bredd på partitions- och kolumnfamilj Nyckelutrymme Antal noder eller kanter

Jämförande egenskaper (specialiserade icke-relationella modeller)

Aspekt Tidsserier Objekt (blob) Sökning/indexering
Normalisering Normaliserad Avnormaliserad Avnormaliserad
Schema Schema vid läsning (taggar) Ogenomskinliga värden och metadata Schema vid skrivning (indexmappning)
Omfång för atomaritet N/A (tillägg) Object För varje dokument- eller indexåtgärd
Åtkomstmönster Tidsskivgenomsökningar, fönsteraggregering Åtgärder för hela objekt Textfrågor och filter
Indexering Tid och valfri sekundär funktion Endast nyckel (sökväg) Inverterade och valfria fasetter
Datans struktur Tabell (tidsstämpel, taggar, värde) Binär eller blob med metadata Tokeniserad text och strukturerade fält
Skrivprofil Höghastighetstillägg Massuppdateringar eller ovanliga uppdateringar Batch- eller direktuppspelningsindex
Läs profil Aggregerade intervall Helt eller delvis nedladdade filer Rankade resultatuppsättningar
Tillväxtdrivare Händelsehastighet multiplicerad med retention Antal objekt och storlek Indexerad dokumentvolym
Konsistenstolerans Eventuellt för sena data Läs-efter-skriv för varje objekt Eventuellt för nya dokument

Välj bland modeller (heuristik)

Behov Föredra
Strikta transaktioner med flera entiteter Relationell
Utveckling av aggregeringsformer, JSON-centrerade API:er Dokument
Extrema nyckelsökningar med låg latens eller cachelagring Nyckelvärde
Omfattande, gles, skrivkrävande telemetri Kolumnfamilj eller tidsserier
Djup relationsbläddering Graf
Massiva historiska analysgenomsökningar Analys eller OLAP
Stora ostrukturerade binärfiler eller sjözoner Object
Relevans och filtrering av fulltext Sökning och indexering
Tidsstämpelmått med hög inmatning med fönsterfrågor Tidsserier
Snabb likhet (semantisk eller vektor) Vektorsökning

Kombinera modeller och undvika fallgropar

Använd mer än en modell när följande scenarier gäller:

  • Åtkomstmönstren skiljer sig åt, till exempel punktsökning jämfört med bred analysgenomsökning jämfört med fulltextrelevans.
  • Livscykel och lagring skiljer sig åt, till exempel oföränderlig rådata jämfört med kuraterad strukturerad data.
  • Konflikt mellan svarstid och dataflödeskrav.

Undvik för tidig fragmentering:

  • Använd en tjänst när den fortfarande uppfyller prestanda-, skalnings- och styrningsmålen.
  • Centralisera logiken för delad klassificering och undvik duplicerade transformeringspipelines mellan butiker om det inte behövs.

Håll utkik efter följande vanliga antimönster:

  • Flera mikrotjänster delar en databas, vilket skapar koppling.
  • Teams lägger till ytterligare en modell utan operativ mognad, till exempel övervakning eller säkerhetskopior.
  • Ett sökindex blir det primära datalagret, vilket leder till missbruk.

När du ska omvärdera ditt modellval

Signal Möjlig åtgärd
Öka ad hoc-kopplingar i ett dokumentarkiv Introducera en relationell läsmodell
Hög CPU på sökindex på grund av analytiska aggregeringar Avlastning till analysmotorn
Stora denormaliserade dokument skapar partiell konflikt vid uppdatering Omforma aggregeringar eller dela
Tidsfönsterfrågor går långsamt i kolumnfamiljelagret Använda en specialbyggd tidsseriedatabas
Svarstiden för punktsökning ökar med diagramblädringens djup Lägga till härledda materialiserade vyer

Nästa steg

Använd följande artiklar för att välja ett specialiserat datalager:

Lär dig mer om referensarkitekturer som använder Azure-tjänsterna i den här artikeln: