Välj ett analysdatalager i Azure
I en stordataarkitektur finns det ofta ett behov av ett analysdatalager som hanterar bearbetade data i ett strukturerat format som kan efterfrågas med hjälp av analysverktyg. Analytiska datalager som stöder frågekörning av både hot-path- och cold-path-data kallas gemensamt för det betjänande lagret eller data som betjänar lagring.
Serveringslagret hanterar bearbetade data från både den heta sökvägen och den kalla sökvägen. I lambda-arkitekturen delas serveringslagret upp i ett hastighetsbearbetande lager som lagrar data som har bearbetats stegvis och ett batchbetjäningslager som innehåller batchbearbetade utdata. Serveringsskiktet kräver starkt stöd för slumpmässiga läsningar med låg svarstid. Datalagring för hastighetslagret bör också ha stöd för slumpmässiga skrivningar, eftersom batchinläsning av data i det här arkivet skulle medföra oönskade fördröjningar. Å andra sidan behöver datalagring för batchlagret inte stödja slumpmässiga skrivningar, utan batchskrivningar i stället.
Det finns inget enskilt bästa datahanteringsalternativ för alla datalagringsuppgifter. Olika datahanteringslösningar är optimerade för olika uppgifter. De flesta verkliga molnappar och stordataprocesser har olika krav på datalagring och använder ofta en kombination av datalagringslösningar.
Vilka alternativ har du när du väljer ett analysdatalager?
Det finns flera alternativ för data som hanterar lagring i Azure, beroende på dina behov:
- Azure Synapse Analytics
- Azure Synapse Spark-pooler
- Azure Databricks
- Azure-datautforskaren
- Azure SQL Database
- SQL Server på en virtuell Azure-dator
- HBase/Phoenix på HDInsight
- Hive LLAP på HDInsight
- Azure Analysis Services
- Azure Cosmos DB
De här alternativen innehåller olika databasmodeller som är optimerade för olika typer av uppgifter:
- Nyckel-/värdedatabaser innehåller ett enda serialiserat objekt för varje nyckelvärde. De är bra för att lagra stora mängder data där du vill hämta ett objekt för ett visst nyckelvärde och du inte behöver fråga baserat på andra egenskaper för objektet.
- Dokumentdatabaser är nyckel-/värdedatabaser där värdena är dokument. Ett "dokument" i den här kontexten är en samling namngivna fält och värden. Databasen lagrar vanligtvis data i ett format som XML, YAML, JSON eller binär JSON (BSON), men kan använda oformaterad text. Dokumentdatabaser kan köra frågor mot icke-nyckelfält och definiera sekundära index för att göra frågan mer effektiv. Detta gör en dokumentdatabas mer lämplig för program som behöver hämta data baserat på kriterier som är mer komplexa än värdet för dokumentnyckeln. Du kan till exempel fråga efter fält som produkt-ID, kund-ID eller kundnamn.
- Kolumnlagringsdatabaser är nyckel-/värdedatalager som lagrar varje kolumn separat på disk. En bred kolumnlagringsdatabas är en typ av kolumnlagringsdatabas som lagrar kolumnfamiljer, inte bara enskilda kolumner. En folkräkningsdatabas kan till exempel ha en kolumnfamilj för en persons namn (först, mitten, sista), en familj för personens adress och en familj för personens profilinformation (födelsedatum, kön). Databasen kan lagra varje kolumnfamilj i en separat partition, samtidigt som alla data för en person som är relaterade till samma nyckel bevaras. Ett program kan läsa en enda kolumnfamilj utan att läsa igenom alla data för en entitet.
- Graph-databaser lagrar information som en samling objekt och relationer. En grafdatabas kan effektivt utföra frågor som passerar nätverket av objekt och relationerna mellan dem. Objekten kan till exempel vara anställda i en personaldatabas och du kanske vill underlätta frågor som "hitta alla anställda som direkt eller indirekt arbetar för Scott".
- Telemetri- och tidsseriedatabaser är en tilläggssamling med objekt. Telemetridatabaser indexerar effektivt data i en mängd olika kolumnlager och minnesinterna strukturer, vilket gör dem till det optimala valet för att lagra och analysera stora mängder telemetri- och tidsseriedata.
Kriterier för nyckelval
För att begränsa alternativen börjar du med att svara på följande frågor:
Behöver du serveringslagring som kan fungera som en frekvent sökväg för dina data? Om ja, begränsa dina alternativ till de som är optimerade för ett hastighetsbetjäningslager.
Behöver du stöd för massivt parallell bearbetning (MPP), där frågor distribueras automatiskt över flera processer eller noder? Om ja väljer du ett alternativ som stöder utskalning av frågor.
Föredrar du att använda ett relationsdatalager? I så fall begränsar du dina alternativ till dem med en relationsdatabasmodell. Observera dock att vissa icke-relationslager har stöd för SQL-syntax för frågor och att verktyg som PolyBase kan användas för att köra frågor mot icke-relationella datalager.
Samlar du in tidsseriedata? Använder du tilläggsdata?
Kapacitetsmatris
I följande tabeller sammanfattas de viktigaste skillnaderna i funktioner.
Allmänna funktioner
Kapacitet | SQL Database | Azure Synapse SQL-pool | Azure Synapse Spark-pool | Öppna Azure-datautforskaren | HBase/Phoenix på HDInsight | Hive LLAP på HDInsight | Azure Analysis Services | Azure Cosmos DB |
---|---|---|---|---|---|---|---|---|
Är hanterad tjänst | Ja | Ja | Ja | Ja | Ja 1 | Ja 1 | Ja | Ja |
Primär databasmodell | Relationell (kolumnlagringsformat när du använder kolumnlagringsindex) | Relationstabeller med kolumnlagring | Brett kolumnarkiv | Relationsarkiv (kolumnarkiv), telemetri och tidsseriearkiv | Brett kolumnarkiv | Hive/In-Memory | Tabellsemantiska modeller | Dokumentarkiv, diagram, nyckel/värde-arkiv, stort kolumnarkiv |
Stöd för SQL-språk | Ja | Ja | Ja | Ja | Ja (med Phoenix JDBC-drivrutin) | Ja | No | Ja |
Optimerad för hastighetsbetjäningslager | Ja 2 | Ja 3 | Ja | Ja | Ja | Ja | No | Ja |
[1] Med manuell konfiguration och skalning.
[2] Använda minnesoptimerade tabeller och hash- eller icke-grupperade index.
[3] Stöds som ett Azure Stream Analytics-utdata.
Skalbarhetsfunktioner
Kapacitet | SQL Database | Azure Synapse SQL-pool | Azure Synapse Spark-pool | Öppna Azure-datautforskaren | HBase/Phoenix på HDInsight | Hive LLAP på HDInsight | Azure Analysis Services | Azure Cosmos DB |
---|---|---|---|---|---|---|---|---|
Redundanta regionala servrar för hög tillgänglighet | Ja | Nej | Nej | Ja | Ja | No | Ja | Ja |
Stöder utskalning av frågor | Nej | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Dynamisk skalbarhet (skala upp) | Ja | Ja | Ja | Ja | Nej | Nej | Ja | Ja |
Stöder minnesintern cachelagring av data | Ja | Ja | Ja | Ja | No | Ja | Ja | Nej |
Säkerhetsfunktioner
Kapacitet | SQL Database | Azure Synapse | Öppna Azure-datautforskaren | HBase/Phoenix på HDInsight | Hive LLAP på HDInsight | Azure Analysis Services | Azure Cosmos DB |
---|---|---|---|---|---|---|---|
Autentisering | SQL/Microsoft Entra ID | SQL/Microsoft Entra ID | Microsoft Entra ID | local/Microsoft Entra ID 1 | local/Microsoft Entra ID 1 | Microsoft Entra ID | databasanvändare/Microsoft Entra-ID via åtkomstkontroll (identitets- och åtkomsthantering (IAM)) |
Datakryptering i vila | Ja 2 | Ja 2 | Ja | Ja 1 | Ja 1 | Ja | Ja |
Säkerhet på radnivå | Ja | Ja 3 | Ja | Ja 1 | Ja 1 | Ja | Nej |
Stöder brandväggar | Ja | Ja | Ja | Ja 4 | Ja 4 | Ja | Ja |
Dynamisk datamaskning | Ja | Ja | Ja | Ja 1 | Ja | Nej | Nej |
[1] Kräver att ett domänanslutet HDInsight-kluster används.
[2] Kräver att transparent datakryptering används för att kryptera och dekryptera dina data i vila.
[3] Endast filterpredikat. Se Säkerhet på radnivå
[4] När det används i ett virtuellt Azure-nätverk. Mer information finns i Utöka Azure HDInsight med hjälp av ett virtuellt Azure-nätverk.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudförfattare:
- Zoiner Tejada | VD och arkitekt
Nästa steg
- Analysera data i ett relationsdatalager
- Skapa en enkel databas – Azure SQL Database
- Skapa en Azure Databricks-arbetsyta
- Skapa Apache Spark-kluster i Azure HDInsight med Azure Portal
- Skapa en Synapse-arbetsyta
- Utforska Azure-datatjänster för modern analys
- Utforska Azure-databas- och analystjänster
- Fråga Azure Cosmos DB med hjälp av API:et för NoSQL