Välja en lagringsteknik för stordata i Azure
I det här avsnittet jämförs alternativen för datalagring för stordatalösningar – mer specifikt datalagring för massinmatning av data och batchbearbetning, till skillnad från analysdatalager eller inmatning av strömmande data i realtid.
Vilka alternativ har du när du väljer datalagring i Azure?
Det finns flera alternativ för att mata in data i Azure, beroende på dina behov.
Fillagring:
NoSQL-databaser:
Analytiska databaser:
Azure Storage blobar
Azure Storage är en hanterad lagringstjänst som är mycket tillgänglig, säker, beständig, skalbar och redundant. Microsoft tar hand om underhåll och hanterar kritiska problem åt dig. Azure Storage är den vanligaste lagringslösningen som Azure erbjuder, på grund av antalet tjänster och verktyg som kan användas med den.
Det finns olika Azure Storage tjänster som du kan använda för att lagra data. Det mest flexibla alternativet för att lagra blobar från ett antal datakällor är Blob Storage. Blobar är i princip filer. De lagrar bilder, dokument, HTML-filer, virtuella hårddiskar (VHD), stordata som loggar, databassäkerhetskopior – i stort sett vad som helst. Blobar lagras i containrar som liknar mappar. En container tillhandahåller en gruppering av en uppsättning blobar. Ett lagringskonto kan innehålla ett obegränsat antal containrar, och varje container kan lagra ett obegränsat antal blobbar.
Azure Storage är ett bra alternativ för stordata- och analyslösningar på grund av dess flexibilitet, hög tillgänglighet och låga kostnader. Den tillhandahåller lagringsnivåer för hot, cool och archive för olika användningsfall. Mer information finns i Azure Blob Storage: Lagringsnivåer för hot, cool och archive.
Azure Blob Storage kan nås från Hadoop (tillgängligt via HDInsight). HDInsight kan använda en blobcontainer i Azure Storage som standardfilsystem för klustret. Via ett HDFS-gränssnitt (Hadoop Distributed File System) som tillhandahålls av en WASB-drivrutin kan den fullständiga uppsättningen komponenter i HDInsight användas direkt på strukturerade eller ostrukturerade data som lagras som blobar. Azure Blob Storage kan också nås via Azure Synapse Analytics med hjälp av dess PolyBase-funktion.
Andra funktioner som gör Azure Storage ett bra val är:
- Strategier för flera samtidighet.
- Haveriberedskap och alternativ för hög tillgänglighet.
- Kryptering i vila.
- Rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att styra åtkomst med hjälp Azure Active Directory användare och grupper.
Azure Data Lake Store
Azure Data Lake Store är en lagringsplats för stordata analytiska arbetsbelastningar i företagsomfattande hyperskala. Med Data Lake kan du samla in data av valfri storlek, typ och inmatningshastighet på en enda säker plats för drifts- och undersökande analys.
Data Lake Store inte några begränsningar för kontostorlekar, filstorlekar eller mängden data som kan lagras i en datasjö. Data lagras durably genom att göra flera kopior och det finns ingen tidsbegränsning för hur länge data kan lagras i Data Lake. Förutom att göra flera kopior av filer för att skydda mot oväntade fel sprider Data Lake delar av en fil över ett antal enskilda lagringsservrar. Detta förbättrar läsgenomströmning vid läsning av filen parallellt för att utföra dataanalyser.
Data Lake Store kan nås från Hadoop (tillgängligt via HDInsight) med hjälp av WebHDFS-kompatibla REST-API:er. Du kan överväga att använda detta som ett Azure Storage när dina enskilda eller kombinerade filstorlekar överskrider det som stöds av Azure Storage. Det finns dock riktlinjer för prestandajustering som du bör följa när du använder Data Lake Store som primär lagring för ett HDInsight-kluster, med specifika riktlinjer för Spark,Hive,MapReduceoch Storm. Se även till att kontrollera Data Lake Store regional tillgänglighet ,eftersom den inte är tillgänglig i lika många regioner som Azure Storage och den måste finnas i samma region som ditt HDInsight-kluster.
Tillsammans med Azure Data Lake Analytics är Data Lake Store särskilt utformat för att möjliggöra analys av lagrade data och är justerat för prestanda för dataanalysscenarier. Data Lake Store kan också nås via Azure Synapse med hjälp av dess PolyBase-funktion.
Azure Cosmos DB
Azure Cosmos DB är Microsofts globalt distribuerade databas för flera modeller. Cosmos DB garanterar svarstider på en siffra på millisekunder vid den 99:e percentilen var som helst i världen, erbjuder flera väldefinierade konsekvensmodeller för att finjustera prestanda och garanterar hög tillgänglighet med funktioner för flera platser.
Azure Cosmos DB är schemaoberoende. Den indexerar automatiskt alla data utan att du behöver hantera schema- och indexhantering. Den har även stöd för dokument, nyckelvärden, diagram och kolumnfamiljedatamodeller med inbyggt stöd för flera modeller.
Azure Cosmos DB funktioner:
- Geo-replikering
- Elastisk skalbarhet av dataflöden och lagringsutrymme över hela världen
- Fem väldefinierade konsekvensnivåer
HBase på HDInsight
Apache HBase är en NoSQL-databas med öppen källkod som bygger på Hadoop och modelleras efter Google BigTable. HBase ger slumpmässig åtkomst och stark konsekvens för stora mängder ostrukturerade och halvstrukturerade data i en schemalös databas som är ordnad efter kolumnfamiljer.
Data lagras i tabellens rader och data i raderna grupperas per kolumnfamilj. HBase är schemalöst i den mening att varken kolumnerna eller den typ av data som lagras i dem måste definieras innan de används. Den öppna källkoden skalas linjärt för att hantera petabyte med data på tusentals noder. Den kan utgå ifrån dataredundans, batchbearbetning och andra funktioner som tillhandahålls av distribuerade program i Hadoop-miljön.
HDInsight-implementeringen utnyttjar HBases utskalningsarkitektur för att tillhandahålla automatisk horisontell partitionering av tabeller, stark konsekvens för läsningar och skrivningar samt automatisk redundans. Prestanda utökas av cachelagring i minnet för läsning och snabb strömning för skrivning. I de flesta fall vill du skapa HBase-klustret i ett virtuellt nätverk så att andra HDInsight-kluster och program kan komma åt tabellerna direkt.
Öppna Azure-datautforskaren
Azure Data Explorer är en snabb och mycket skalbar datagranskningstjänst för logg- och telemetridata. Det hjälper dig att hantera de många dataströmmar som genereras av modern programvara så att du kan samla in, lagra och analysera data. Azure Data Explorer är perfekt för att analysera stora volymer av olikartade data från olika datakällor, till exempel webbplatser, program, IoT-enheter med mera. Dessa data används för diagnostik, övervakning, rapportering, maskininlärning och ytterligare analysfunktioner. Azure Data Explorer gör det enkelt att mata in dessa data och gör att du kan köra komplexa ad hoc-frågor på data på några sekunder.
Azure Data Explorer kan skalas ut linjärt för att öka dataflödet för datainmatning och frågebearbetning. Ett Azure Data Explorer kluster kan distribueras till en Virtual Network för att aktivera privata nätverk.
Viktiga urvalsvillkor
Börja med att besvara de här frågorna för att begränsa alternativen:
Behöver du hanterad, snabb och molnbaserad lagring för någon typ av text eller binära data? Om ja, väljer du något av fillagrings- eller analysalternativen.
Behöver du fillagring som är optimerad för parallella analysarbetsbelastningar och högt dataflöde/IOPS? Om ja, väljer du ett alternativ som är justerat för prestanda för analysarbetsbelastningar.
Behöver du lagra ostrukturerade eller halvstrukturerade data i en schemalös databas? I så fall väljer du något av alternativen för icke-relationell eller analys. Jämför alternativ för indexering och databasmodeller. Beroende på vilken typ av data du behöver lagra kan de primära databasmodellerna vara den största faktorn.
Kan du använda tjänsten i din region? Kontrollera regional tillgänglighet för varje Azure-tjänst. Se Produkt tillgänglig efter region.
Kapacitetsmatris
I följande tabeller sammanfattas de viktigaste skillnaderna i funktioner.
Fillagringsfunktioner
| Funktion | Azure Data Lake Store | Azure Blob Storage containrar |
|---|---|---|
| Syfte | Optimerad lagring för arbetsbelastningar för stordataanalys | Objektlager för generell användning för en mängd olika lagringsscenarier |
| Användningsfall | Batch, strömningsanalys och maskininlärningsdata, till exempel loggfiler, IoT-data, klicka på strömmar, stora datauppsättningar | Alla typer av text eller binära data, till exempel programmets backend-, säkerhetskopieringsdata, medielagring för strömning och allmänna data |
| Struktur | Hierarkiskt filsystem | Objektlager med platt namnrymd |
| Autentisering | Baserat på Azure Active Directory identiteter | Baserat på åtkomstnycklar för delade hemligheter för konto och signaturnycklar för deladåtkomst och rollbaserad åtkomstkontroll i Azure (Azure RBAC) |
| Autentiseringsprotokoll | OAuth 2.0. Anrop måste innehålla en giltig JWT (JSON-webbtoken) som utfärdats av Azure Active Directory | Hash-baserad kod för meddelandeautentisering (HMAC). Anrop måste innehålla en Base64-kodad SHA-256-hash över en del av HTTP-begäran. |
| Auktorisering | POSIX-åtkomstkontrollistor (ACL:er). ACL:er baserade Azure Active Directory identiteter kan anges på fil- och mappnivå. | Använd Kontoåtkomstnycklar för auktorisering på kontonivå. För konto-, container- eller blobauktorisering använder du signaturnycklar för delad åtkomst. |
| Granskning | Tillgängliga. | Tillgängligt |
| Kryptering i vila | Transparent, serversidan | Transparent, serversidan; Kryptering på klientsidan |
| Developer-SDK:er | .NET, Java, Python, Node.js | .NET, Java, Python, Node.js, C++, Ruby |
| Prestanda för analysarbetsbelastning | Optimerad prestanda för parallella analysarbetsbelastningar, högt dataflöde och IOPS | Inte optimerad för analysarbetsbelastningar |
| Storleksgränser | Inga begränsningar för kontostorlekar, filstorlekar eller antal filer | Specifika begränsningar som dokumenteras här |
| Geo-redundans | Lokalt redundant (LRS), globalt redundant (GRS), globalt redundant läsåtkomst (RA-GRS), zonredundant (ZRS). | Lokalt redundant (LRS), globalt redundant (GRS), read-access global redundant (RA-GRS), zonredundant (ZRS). Mer information finns här |
NoSQL-databasfunktioner
| Funktion | Azure Cosmos DB | HBase på HDInsight |
|---|---|---|
| Primär databasmodell | Dokumentarkiv, diagram, nyckel/värde-lager, bred kolumnarkiv | Bred kolumnlager |
| Sekundära index | Ja | Inga |
| SQL språkstöd | Yes | Ja (med Phoenix JDBC-drivrutinen) |
| Konsekvens | Stark, avgränsad föråldrighet, session, konsekvent prefix, eventuell | Stark |
| Intern Azure Functions integrering | Ja | No |
| Automatisk global distribution | Ja | Ingen HBase-klusterreplikering kan konfigureras över regioner med slutlig konsekvens |
| Prismodell | Elastiskt skalbara enheter för begäran (RU:er) debiteras per sekund efter behov, elastiskt skalbar lagring | Prissättning per minut för HDInsight-kluster (horisontell skalning av noder), lagring |
Funktioner för analysdatabaser
| Funktion | Öppna Azure-datautforskaren | |
|---|---|---|
| Primär databasmodell | Relationslager (kolumnarkiv), telemetri och tidsseriearkiv | |
| SQL språkstöd | Yes | |
| Prismodell | Elastiskt skalbara klusterinstanser | |
| Autentisering | Baserat på Azure Active Directory identiteter | |
| Kryptering i vila | Kund hanterade nycklar som stöds | |
| Prestanda för analysarbetsbelastning | Optimerad prestanda för parallella analysarbetsbelastningar | |
| Storleksgränser | Linjärt skalbar |