Een analytische gegevensopslag kiezen in Azure

In een big data is er vaak een analytische gegevensopslag nodig die verwerkte gegevens verwerkt in een gestructureerde indeling verwerkt, die kan worden opgevraagd met analytische hulpprogramma's. Analytische gegevensopslag die ondersteuning biedt voor het uitvoeren van query's op zowel hot-path- als cold-path-gegevens, worden gezamenlijk aangeduid als de ondersteunende laag of gegevens voor opslag.

De laag voor de verwerking van verwerkte gegevens van zowel het hot-pad als het koude pad. In de lambda-architectuurwordt de bedienende laag onderverdeeld in een snelheidslaag voor het leveren van gegevens die incrementeel zijn verwerkt, en een batch-servinglaag, die de batchgewerkte uitvoer bevat. De ondersteunende laag vereist sterke ondersteuning voor willekeurige leesproeven met lage latentie. Gegevensopslag voor de snelheidslaag moet ook willekeurige schrijf schrijfingen ondersteunen, omdat batchgewijs laden van gegevens in dit opslaggeheugen ongewenste vertragingen zou tot gevolg hebben. Aan de andere kant hoeft de gegevensopslag voor de batchlaag geen willekeurige schrijf- maar batch-schrijf schrijf- en ondersteuning te bieden.

Er is geen beste keuze voor gegevensbeheer voor alle gegevensopslagtaken. Verschillende oplossingen voor gegevensbeheer zijn geoptimaliseerd voor verschillende taken. De meeste echte cloud-apps en big data hebben verschillende vereisten voor gegevensopslag en maken vaak gebruik van een combinatie van oplossingen voor gegevensopslag.

Wat zijn uw opties bij het kiezen van een analytische gegevensopslag?

Er zijn verschillende opties voor gegevens die opslag in Azure verwerken, afhankelijk van uw behoeften:

Deze opties bieden verschillende databasemodellen die zijn geoptimaliseerd voor verschillende soorten taken:

  • Sleutel-/waardedatabases bevatten één geseraliseerd object voor elke sleutelwaarde. Ze zijn goed voor het opslaan van grote hoeveelheden gegevens waarbij u één item voor een bepaalde sleutelwaarde wilt krijgen en u geen query hoeft uit te voeren op basis van andere eigenschappen van het item.
  • Documentdatabases zijn sleutel-waardedatabases waarin de waarden documenten zijn. Een 'document' in deze context is een verzameling benoemde velden en waarden. De database slaat de gegevens doorgaans op in een indeling zoals XML, YAML, JSON of BSON, maar kan tekst zonder opmaak gebruiken. Documentdatabases kunnen query's uitvoeren op niet-sleutelvelden en secundaire indexen definiëren om query's efficiënter te maken. Hierdoor is een documentdatabase geschikter voor toepassingen die gegevens moeten ophalen op basis van criteria die complexer zijn dan de waarde van de documentsleutel. U kunt bijvoorbeeld een query uitvoeren op velden zoals product-id, klant-id of klantnaam.
  • Kolomfamiliedatabases zijn sleutel-waardegegevensopslagen die gegevensopslag structureren in verzamelingen gerelateerde kolommen, kolomfamilies genoemd. Een volkstellingsdatabase kan bijvoorbeeld één groep kolommen bevatten voor de naam van een persoon (eerste, middelste, laatste), één groep voor het adres van de persoon en één groep voor de profielgegevens van de persoon (gegevens van geboorte, geslacht). De database kan elke kolomfamilie opslaan in een afzonderlijke partitie, terwijl alle gegevens voor één persoon met dezelfde sleutel worden bewaard. Een toepassing kan één kolomfamilie lezen zonder alle gegevens voor een entiteit te lezen.
  • Graph databases worden gegevens opgeslagen als een verzameling objecten en relaties. Een grafiekdatabase kan efficiënt query's uitvoeren die het netwerk van objecten en de relaties ertussen doorkruisen. De objecten kunnen bijvoorbeeld werknemers in een human resources-database zijn en u wilt mogelijk query's mogelijk maken, zoals 'alle werknemers vinden die direct of indirect voor Scott werken'.
  • Telemetrie- en tijdreeksdatabases zijn een verzameling objecten die alleen kunnen worden toegevoegd. Telemetriedatabases indexeren gegevens efficiënt in verschillende kolomopslag en in-memory structuren, waardoor ze de optimale keuze zijn voor het opslaan en analyseren van grote hoeveelheden telemetrie- en tijdreeksgegevens.

Selectiecriteria voor sleutels

Als u de keuzes wilt beperken, begint u met het beantwoorden van deze vragen:

  • Hebt u opslagruimte nodig die kan fungeren als een hot pad voor uw gegevens? Zo ja, beperkt u uw opties tot de opties die zijn geoptimaliseerd voor een snelheidslaag.

  • Hebt u ondersteuning nodig voor MPP (Massively Parallel Processing), waarbij query's automatisch worden gedistribueerd over verschillende processen of knooppunten? Zo ja, selecteert u een optie die ondersteuning biedt voor uitschalen van query's.

  • Wilt u liever een relationeel gegevensopslag gebruiken? Zo ja, dan beperkt u uw opties tot de opties met een relationeel databasemodel. Houd er echter rekening mee dat sommige niet-relationele winkels ondersteuning bieden SQL syntaxis voor het uitvoeren van query's, en hulpprogramma's zoals PolyBase kunnen worden gebruikt om query's uit te voeren op niet-relationele gegevensopslag.

  • Verzamelt u tijdreeksgegevens? Gebruikt u gegevens die alleen kunnen worden gebruikt?

Mogelijkheidsmatrix

De volgende tabellen geven een overzicht van de belangrijkste verschillen in mogelijkheden.

Algemene mogelijkheden

Mogelijkheid SQL Database Azure Synapse SQL pool Azure Synapse Spark-pool Azure Data Explorer HBase/Phoenix in HDInsight Hive LLAP in HDInsight Azure Analysis Services Cosmos DB
Is beheerde service Ja Ja Ja Ja Ja 1 Ja 1 Ja Ja
Primair databasemodel Relationeel (kolomindeling bij het gebruik van columnstore-indexen) Relationele tabellen met kolomopslag Brede kolomopslag Relationeel (kolomopslag), telemetrie en tijdreeksopslag Brede kolomopslag Hive/in-memory Semantische modellen in tabelvorm Documentopslag, grafiek, sleutel-waardeopslag, brede kolomopslag
SQL taalondersteuning Ja Ja Ja Ja Ja (met phoenix JDBC-stuurprogramma) Ja Nee Ja
Geoptimaliseerd voor de snelheidslaag Ja 2 Ja 3 Ja Ja Ja Ja Nee Ja

[1] Met handmatige configuratie en schalen.

[2] Voor geheugen geoptimaliseerde tabellen en hash- of niet-geclusterde indexen gebruiken.

[3] Ondersteund als Azure Stream Analytics uitvoer.

Schaalbaarheidsmogelijkheden

Mogelijkheid SQL Database Azure Synapse SQL pool Azure Synapse Spark-pool Azure Data Explorer HBase/Phoenix in HDInsight Hive LLAP in HDInsight Azure Analysis Services Cosmos DB
Redundante regionale servers voor hoge beschikbaarheid Ja Nee Nee Ja Ja Nee Nee Ja
Ondersteunt uitschalen van query's Nee Ja Ja Ja Ja Ja Ja Ja
Dynamische schaalbaarheid (omhoog schalen) Ja Ja Ja Ja Nee Nee Ja Ja
Ondersteunt in-memory caching van gegevens Ja Ja Ja Ja Nee Ja Ja Nee

Beveiligingsmogelijkheden

Mogelijkheid SQL Database Azure Synapse Azure Data Explorer HBase/Phoenix in HDInsight Hive LLAP in HDInsight Azure Analysis Services Cosmos DB
Verificatie SQL/Azure Active Directory (Azure AD) SQL / Azure AD Azure AD lokaal / Azure AD 1 lokaal / Azure AD 1 Azure AD databasegebruikers /Azure AD via toegangsbeheer (IAM)
Versleuteling van inactieve gegevens Ja 2 Ja 2 Yes Ja 1 Ja 1 Ja Ja
Beveiliging op rijniveau Yes Ja 3 Nee Ja 1 Ja 1 Ja Nee
Ondersteunt firewalls Ja Ja Ja Ja 4 Ja 4 Ja Ja
Dynamische gegevensmaskering Ja Ja Ja Ja 1 Ja Nee Nee

[1] Vereist het gebruik van een HDInsight-clusterdat is verbonden met een domein.

[2] Vereist het gebruik van TDE (Transparent Data Encryption) voor het versleutelen en ontsleutelen van uw data-at-rest.

[3] Alleen filterpredicaten. Zie Beveiliging op rijniveau

[4] Bij gebruik binnen een Azure-Virtual Network. Zie Extend Azure HDInsight using an Azure Virtual Network (Uw Azure HDInsight uitbreiden met behulp van een Azure Virtual Network).