Kostenbesparingen via HTAP met Azure SQL

Blob Storage
Cosmos DB
Data Lake Storage
Databricks
Event Hubs
Functions
SQL Database
Stream Analytics
Table Storage
Power BI

In dit artikel wordt een oplossing beschreven voor een hybride HTAP-architectuur (transaction/analytical processing). Voor het verwerken van transacties gebruiken de meeste systemen operationele workloads met lage latentie en hoge volumes. Voor analyses zijn werkbelastingen met een hoger latentievolume gebruikelijker. HTAP-architecturen bieden een oplossing voor beide typen workloads. Met behulp van in-memory databases consolideert HTAP technologieën om query's op grote hoeveelheden gegevens te optimaliseren.

Azure SQL Database vormt de kern van deze HTAP-oplossing. De aanpak verdeelt de gegevens in horizontaal gedistribueerde databases of shards. Andere belangrijke onderdelen zijn:

  • Azure Event Hubs voor gegevensingestie.
  • Azure Stream Analytics voor gegevensverwerking.
  • Azure Functions voor partitionering.
  • Azure Blob Storage voor gebeurtenisopslag.

Samen bieden deze services een HTAP-oplossing die:

  • Vermindert de kosten door snelle toegang te bieden tot inzichten op gearchiveerde gegevens. Latentie op het 'cool' pad daalt met deze oplossing van uren naar minder dan seconden.
  • Vereenvoudigt archivering door automatisch gegevens toe te voegen aan langetermijnopslag.
  • Maximaliseert de schaalbaarheid door gegevens te sharden en een elastische database te gebruiken.

Potentiële gebruikscases

Deze oplossing is van toepassing op organisaties die toegang met lage latentie nodig hebben tot grote hoeveelheden historische gegevens. Enkele voorbeelden:

  • Onlinewinkels die toegang hebben tot klantgeschiedenis en demografische gegevens om persoonlijke ervaringen te bieden.
  • Energieproviders die apparaatgegevens combineren met analyses voor het beheren van slimme energienetten.
  • Bedrijven die fraude voorkomen door patronen in historische en realtime gegevens te identificeren.
  • Fabrikanten die afhankelijk zijn van realtime gebeurtenisverwerking om problemen te identificeren.

Architectuur

Architectuurdiagram waarin wordt weergegeven hoe gegevens door een H T A P-oplossing stromen met Azure SQL Database in het midden.

Download een SVG-bestand van deze architectuur.

  1. Event Hubs opgenomen telemetrie van on-premises faciliteiten.
  2. Blob Storage de gegevens Event Hubs en slaat deze op voor toekomstige analyse.
  3. Stream Analytics verwerkt de gegevens. In het hot-pad van de oplossing worden Azure Cosmos DB gegevens van de vorige twee maanden opgevraagd. Azure Cosmos DB garandeert reactietijden van slechts enkele milliseconden.
  4. Als er fouten optreden tijdens het verwerken of opslaan van gegevens, worden deze door het systeem in Azure Table Storage.
  5. Azure Functions gebruikt de clientbibliotheek SQL Database elastische database om de gegevens te archiveren. Dit proces partitioneert de gegevens om invoegbewerkingen te optimaliseren. De oplossing vormt shards door de gegevens horizontaal te distribueren over verschillende Azure SQL databases. Elke database maakt gebruik van een gepart partitioneerde geclusterde kolomindex om tabellen te comprimeren. De reactietijden voor dit koude pad zijn meestal minder dan één seconde.
  6. Een Azure Databricks verwerkt de blob-Storage gegevens. Met name Azure Databricks Avro-bestanden deserialiseert en de gegevens naar Event Hubs verzendt voor optionele analyse.

Onderdelen

  • Event Hubs is een volledig beheerd streamingplatform voor big data.

  • Stream Analytics biedt realtime verwerking van serverloze stromen door het uitvoeren van query's in de cloud en op edge-apparaten.

  • Azure Cosmos DB is een wereldwijd gedistribueerde database met meerdere modellen. Met Azure Cosmos DB kunt u met uw oplossingen doorvoer en opslag elastisch schalen in een groot aantal geografische regio's.

  • Tabel Storage maakt deel uit van Azure Storage. Met deze service worden gestructureerde NoSQL-gegevens opgeslagen in de cloud.

  • SQL Database is een relationele databaseservice die deel uitmaakt van de Azure SQL-familie. Als een volledig beheerde service worden SQL Database databasebeheerfuncties verwerkt. SQL Database biedt ook geautomatiseerde functies op basis van AI die de prestaties en duurzaamheid optimaliseren. Serverloze reken- en Hyperscale-opslagopties schalen automatisch resources op aanvraag.

  • Hulpprogramma's voor elastische databases helpen u bij het maken en beheren van uitschaaldatabases. Deze functie van SQL Database bevat een clientbibliotheek die u kunt gebruiken om shard-toepassingen te ontwikkelen.

  • Blob Storage is een service die deel uitmaakt van Storage. Blob Storage biedt geoptimaliseerde cloudobjectopslag voor grote hoeveelheden ongestructureerde gegevens.

  • Azure Databricks is een platform voor gegevensanalyse. De volledig beheerde Spark-clusters verwerken grote gegevensstromen uit meerdere bronnen. Azure Databricks schoont en transformeert gegevenssets zonder structuur. De verwerkte gegevens worden gecombineerd met gestructureerde gegevens uit operationele databases of datawarehouses. Azure Databricks traint en implementeert ook schaalbare machine learning en deep learning-modellen.

  • Power BI is een verzameling analyseservices en apps. U kunt Power BI verbinding te maken en niet-gerelateerde gegevensbronnen weer te geven.

Overwegingen

Deze oplossing doet de volgende veronderstellingen:

  • Nadat u de gegevens hebt gearchiveerd, hoeft u deze niet bij te werken of te verwijderen.
  • Het gegevensschema verandert slechts minimaal in de tijd.

Houd rekening met de volgende overwegingen bij het implementeren van deze oplossing:

Prestatieoverwegingen

  • Prestaties optimaliseren:

    • Combineer sharding met tabelcompressie.
    • Tabellen partitioneren op datum. Elke shard bevat gegevens uit een andere periode.
    • Indexen uitlijnen met de datumpartities.
  • Als u wilt opschalen naar meer dan 50.000 berichten per seconde, gebruikt u de clientbibliotheek voor elastische databases vanuit Functions voor het volgende:

    • Groeperen berichten op partitie.
    • Splits insert-instructies in kleine batches.

    Deze aanpak is geschikt voor systemen die gebruikmaken van 10 Standard S3-databases van het type SQL Database. Als u een kolomindex wilt hosten, hebt u ten minste de laag Standard nodig.

  • Gebruik tabelwaardeparameters met opgeslagen procedures voor de beste prestaties tijdens invoegbewerkingen.

  • Wanneer u de instructie CREATE COLUMNSTORE INDEX gebruikt, gebruikt u de COLUMNSTORE_ARCHIVE optie. Deze optie biedt het hoogst mogelijke compressieniveau. Een hoog compressieniveau verhoogt de tijd die u nodig hebt om gegevens op te slaan en op te halen. Maar de resulterende I/O-prestaties moeten nog steeds toereikend zijn.

Schaalbaarheidsoverwegingen

  • Gebruik shards zodat u uw systeem kunt uitbreiden om te voldoen aan veeleisende workloads. Wanneer u shard-databases gebruikt, kunt u shards toevoegen of verwijderen om uit of in te schalen. Met het hulpprogramma split-merge kunt u partities splitsen en samenvoegen.
  • Profiteer van de schaalfunctionaliteit in Functions. Maak functies die worden geschaald op basis van CPU- en geheugengebruik. Configureer de functies om nieuwe exemplaren te starten voor onverwachte workloads.
  • Vergroot de grootte van uw Azure Databricks om avro-bestandsverwerking omhoog te schalen. De oplossing maakt gebruik Azure Databricks avro-bestanden die blob-Storage heeft vastgelegd, opnieuw te verwerken. Spark-clusters in Azure Databricks kunnen alle of een deel van het pad van het Avro-bestand verwerken. Door de grootte Azure Databricks cluster te vergroten, kunt u alle gegevens binnen een vereist tijdsbestek opnieuw verwerken. Als u een groter volume van Azure Databricks wilt verwerken, voegt u zo nodig exemplaren van Event Hubs toe aan de naamruimte.

Overwegingen voor tolerantie

  • Alle onderdelen in dit scenario worden beheerd. Op regionaal niveau bieden ze ingebouwde tolerantie.
  • Zie Overzicht van de pijler betrouwbaarheid voor algemene richtlijnen voor het ontwerpen van flexibele oplossingen.

Prijzen

Als u de kosten van het uitvoeren van dit scenario wilt verkennen, gebruikt u de Azure-prijscalculator , waarmee alle Azure-services vooraf worden geconfigureerd. Pas de parameters aan zodat deze overeenkomen met het verkeer dat u verwacht te ontvangen.

De volgende tabel bevat voorbeeldkostenprofielen voor verschillende hoeveelheden berichten van 1 kilobyte:

Grootte Berichtvolume Profiel
Klein Minder dan 500 berichten per seconde Klein profiel
Normaal 1500 berichten per seconde Gemiddeld profiel
Groot Meer dan 5000 berichten per seconde Groot profiel

Volgende stappen