Bijna realtime lakehouse-gegevensverwerking

Azure AI Search
Azure Cosmos DB
Azure Data Lake
Azure Event Hubs
Azure Synapse Analytics

Gegevensgestuurde ondernemingen moeten hun back-end- en analysesystemen in bijna realtime synchroniseren met klantgerichte toepassingen. De impact van transacties, updates en wijzigingen moet nauwkeurig worden weergegeven via end-to-end processen, gerelateerde toepassingen en OLTP-systemen (Online Transaction Processing). De acceptabele latentie voor wijzigingen in OLTP-toepassingen om weer te geven in de downstreamsystemen die gebruikmaken van de gegevens, kan een paar minuten duren.

In dit artikel wordt een end-to-end-oplossing beschreven voor bijna realtime gegevensverwerking om lakehouse-gegevens synchroon te houden. De oplossing maakt gebruik van Azure Event Hubs, Azure Synapse Analytics en Azure Data Lake Storage voor gegevensverwerking en -analyse.

Apache en Apache® Spark zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Er wordt geen goedkeuring door De Apache Software Foundation geïmpliceerd door het gebruik van deze markeringen.

Architectuur

Een diagram met de gegevensstroom voor de end-to-end gegevensverwerkingsoplossing.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

  1. Wijzigingsgegevens vastleggen is een vereiste voor bronsystemen om te luisteren naar wijzigingen. Debezium-connectors kunnen verbinding maken met verschillende bronsystemen en gebruikmaken van wijzigingen wanneer ze plaatsvinden. De connectors kunnen wijzigingen vastleggen en gebeurtenissen produceren van verschillende relationele databasebeheersystemen (RDBMS). Voor het installeren van een Debezium-connector is een Kafka-verbindingssysteem vereist.

  2. Met de connectors worden wijzigingsgegevens geëxtraheerd en worden de vastgelegde gebeurtenissen naar Azure Event Hubs verzonden. Event Hubs kan grote hoeveelheden gegevens van meerdere bronnen ontvangen.

  3. Event Hubs streamt de gegevens rechtstreeks naar Azure Synapse Analytics Spark-pools of kan de gegevens verzenden naar een Azure Data Lake Storage-landingszone in onbewerkte indeling.

  4. Andere batchgegevensbronnen kunnen Azure Synapse-pijplijnen gebruiken om gegevens te kopiëren naar Data Lake Storage en deze beschikbaar te maken voor verwerking. Een ETL-werkstroom (end-to-end extraheren, transformeren en laden) moet mogelijk verschillende stappen koppelen of afhankelijkheden toevoegen tussen stappen. Azure Synapse-pijplijnen kunnen werkstroomafhankelijkheden indelen binnen het algehele verwerkingsframework.

  5. Azure Synapse Spark-pools maken gebruik van volledig ondersteunde apache Spark gestructureerde streaming-API's om gegevens te verwerken in het Spark-streamingframework. De gegevensverwerkingsstap bevat controles van gegevenskwaliteit en validaties van zakelijke regels op hoog niveau.

  6. Data Lake Storage slaat de gevalideerde gegevens op in de open Delta Lake-indeling . Delta Lake biedt atomiciteit, consistentie, isolatie en duurzaamheid (ACID) semantiek en transacties, schaalbare verwerking van metagegevens en geïntegreerde streaming en batchgegevensverwerking voor bestaande data lakes.

    Het gebruik van indexen voor queryversnelling vergroot Delta met verdere prestatieverbeteringen. Gegevens uit de gevalideerde Data Lake Storage-zone kunnen ook een bron zijn voor verdere geavanceerde analyses en machine learning.

  7. Gegevens uit de gevalideerde zone van Data Lake Storage, getransformeerd en verrijkt met meer regels in de uiteindelijke verwerkte status, worden geladen in een toegewezen SQL-pool voor het uitvoeren van grootschalige analytische query's.

  8. Power BI maakt gebruik van de gegevens die worden weergegeven via de toegewezen SQL-pool om dashboards en rapporten op bedrijfsniveau te bouwen.

  9. U kunt ook vastgelegde onbewerkte gegevens gebruiken in de Data Lake Store-landingszone en gevalideerde gegevens in de Delta-indeling voor:

    • Verdere ad-hoc- en verkennende analyse via serverloze Azure Synapse SQL-pools.
    • Machine learning via Azure Machine Learning.
  10. Voor sommige interfaces met lage latentie moeten gegevens worden gedenormaliseerd voor serverlatenties met één cijfer. Dit gebruiksscenario is voornamelijk bedoeld voor API-antwoorden. In dit scenario worden documenten in een NoSQL-gegevensarchief, zoals Azure Cosmos DB, opgevraagd voor reacties van één milliseconde.

  11. De partitioneringsstrategie van Azure Cosmos DB leent zich mogelijk niet voor alle querypatronen. Als dat het geval is, kunt u de oplossing uitbreiden door de gegevens te indexeren waartoe de API's toegang nodig hebben met Azure Cognitive Search. Azure Cosmos DB en Cognitive Search kunnen voldoen aan de meeste scenario's waarvoor queryreacties met lage latentie zijn vereist.

Onderdelen

Deze oplossing maakt gebruik van de volgende Azure-onderdelen:

  • Event Hubs is een beheerde, gedistribueerde opnameservice die kan worden geschaald om grote hoeveelheden gegevens op te nemen. Met het Event Hubs-mechanisme voor abonnee-uitgever kunnen verschillende toepassingen berichten verzenden naar onderwerpen in Event Hubs en kunnen downstreamgebruikers verbinding maken met en berichten verwerken. Met de functie Event Hubs Capture kunnen berichten naar Data Lake Storage worden geschreven in AVRO-indeling wanneer ze binnenkomen. Deze mogelijkheid maakt eenvoudige microbatchverwerking en langetermijnretentiescenario's mogelijk. Event Hubs biedt ook een kafka-compatibele API en ondersteunt het schemaregister.

  • Data Lake Storage vormt het opslagsubsysteem waarin alle gegevens in onbewerkte en gevalideerde indelingen worden opgeslagen. Data Lake Storage kan transacties op schaal verwerken en ondersteunt verschillende bestandsindelingen en grootten. Hiërarchische naamruimten helpen bij het organiseren van gegevens in een vertrouwde mapstructuur en ondersteunen Portable Operating System Interface voor POSIX-machtigingen (Portable Operating System Interface). Het ABFS-stuurprogramma (Azure Blob Filesystem) biedt een hadoop-compatibele API.

  • Azure Synapse Analytics is een onbeperkte analyseservice die gegevensintegratie, zakelijke datawarehousing en big data-analyses combineert. Deze oplossing maakt gebruik van de volgende functies van het Azure Synapse Analytics-ecosysteem:

    • Azure Synapse Spark-pools bieden een Spark-runtime op aanvraag waarmee ingebouwde prestatieverbeteringen worden toegevoegd aan opensource Spark. Klanten kunnen flexibele instellingen voor automatisch schalen configureren, taken extern verzenden via het Apache Livy-eindpunt en de Synapse Studio-notebookinterface gebruiken voor interactieve ervaringen.

    • Serverloze Azure Synapse SQL-pools bieden een interface voor het opvragen van lakehouse-gegevens met behulp van een vertrouwde T-SQL-syntaxis. Er is geen infrastructuur voor het instellen en de implementatie van de Azure Synapse-werkruimte maakt automatisch het eindpunt. Serverloze Azure Synapse SQL-pools maken eenvoudige detectie en verkenning van gegevens mogelijk en zijn een goede optie voor ad-hocqueryanalyse van gebruikers.

    • Toegewezen SQL-pools van Azure Synapse slaan gegevens op in relationele tabellen met kolomopslag. Toegewezen SQL-pools maken gebruik van een uitschaalarchitectuur om gegevensverwerking over meerdere knooppunten te distribueren. PolyBase-query's brengen de gegevens naar SQL-pooltabellen. De tabellen kunnen verbinding maken met Power BI voor analyse en rapportage.

  • Power BI biedt een visuele interface voor het maken en openen van rapporten en dashboards. Power BI Desktop kan verbinding maken met verschillende gegevensbronnen, de bronnen combineren in een gegevensmodel en rapporten of dashboards maken. Met Power BI kunt u gegevens transformeren op basis van zakelijke vereisten en visuals en rapporten delen met anderen via de Power BI-service.

  • Azure Cosmos DB is een beheerde, multimodale NoSQL-database die open API's ondersteunt, zoals MongoDB en Cassandra. Deze oplossing maakt gebruik van Azure Cosmos DB voor toepassingen waarvoor reactietijden van één milliseconden en hoge beschikbaarheid zijn vereist. Azure Cosmos DB biedt schrijfbewerkingen voor meerdere regio's in alle Azure-regio's. U kunt Azure Synapse Link voor Azure Cosmos DB gebruiken om inzichten af te leiden en analyses uit te voeren over gegevens in realtime.

  • Azure Cognitive Search is een cloudzoekservice die de gegevens kan indexeren die uw toepassingen en API's nodig hebben. Cognitive Search heeft optionele AI-verrijkingsfuncties die helpen bij het extraheren van tekst en het afleiden van tekst uit niet-tekstbestanden. Cognitive Search kan worden geïntegreerd met services zoals Azure Data Lake Storage en Azure Cosmos DB om eenvoudig toegang te krijgen tot en te indexeren van gegevens. U kunt een query uitvoeren op de geïndexeerde gegevens met behulp van een REST API of de .NET SDK. Als u gegevens uit twee afzonderlijke indexen wilt ophalen, kunt u deze combineren tot één index of complexe gegevenstypen gebruiken.

Scenariodetails

Voor de end-to-end werkstroom voor het verwerken van wijzigingen in bijna realtime is het volgende vereist:

  • Een CDC-technologie (Change Data Capture). De OLTP-toepassingen kunnen verschillende back-endgegevensarchieven hebben, zoals SQL Server, MySQL en Oracle. De eerste stap is het luisteren naar wijzigingen terwijl ze plaatsvinden en deze doorsturen.
  • Een opnamebuffer om de wijzigingsgebeurtenissen op schaal te publiceren. Deze service moet de mogelijkheid hebben om grote hoeveelheden gegevens te verwerken wanneer berichten binnenkomen. Afzonderlijke abonnees kunnen verbinding maken met dit systeem en de gegevens verwerken.
  • Gedistribueerde en schaalbare opslag voor gegevens zoals deze zich in een onbewerkte indeling bevinden.
  • Een gedistribueerd, efficiënt stroomverwerkingssysteem waarmee gebruikers de status opnieuw kunnen opstarten en beheren.
  • Een analysesysteem dat op schaal wordt uitgevoerd om zakelijke beslissingen te nemen.
  • Een zelfbedieningsinterface voor analyses.
  • Voor API-antwoorden met lage latentie, een NoSQL-database voor het opslaan van gedenormaliseerde weergave van de gegevens.
  • In sommige gevallen moet een systeem voor het indexeren van gegevens, de index regelmatig vernieuwen en de meest recente gegevens beschikbaar maken voor downstreamverbruik.

Alle voorgaande technologieën moeten relevante beveiligingsconstructies gebruiken voor perimeterbeveiliging, verificatie, autorisatie en gegevensversleuteling.

Potentiële gebruikscases

Deze oplossing is geschikt voor:

  • Branches die wijzigingen van OLTP moeten doorgeven aan OLAP (Online Analytics Processing).
  • Toepassingen waarvoor gegevenstransformatie of verrijking is vereist.

Het scenario voor realtime gegevensverwerking is vooral belangrijk voor financiële dienstverlening. Als een verzekerings-, creditcard- of bankklant bijvoorbeeld een betaling doet en vervolgens onmiddellijk contact op neemt met de klantenservice, moet de klantondersteuningsmedewerker over de meest recente informatie beschikken.

Vergelijkbare scenario's zijn van toepassing op de sectoren detailhandel, handel en gezondheidszorg. Het inschakelen van deze scenario's stroomlijnt bewerkingen, wat leidt tot een grotere productiviteit van de organisatie en een hogere klanttevredenheid.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.

  • Event Hubs biedt 90 dagen retentie van gegevens in de premium- en toegewezen lagen. Voor failoverscenario's kunt u een secundaire naamruimte instellen in de gekoppelde regio en deze activeren tijdens de failover.

  • Azure Synapse Spark-pooltaken worden elke zeven dagen gerecycled omdat knooppunten worden uitgepakt voor onderhoud. Houd rekening met deze activiteit wanneer u werkt via de service level agreements (SLA's) die aan het systeem zijn gekoppeld. Deze beperking is geen probleem voor veel scenario's waarbij de beoogde hersteltijd (RTO) ongeveer 15 minuten is.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

  • U kunt kiezen uit verschillende Event Hubs-lagen op basis van workloadkenmerken. Event Hubs factureert Opslag afzonderlijk, op basis van de hoeveelheid gegevens die wordt opgeslagen in Data Lake Storage.

  • Overweeg objectlevenscyclusbeheer via lagen in Azure Data Lake Storage. Naarmate gegevens ouder worden, kunt u gegevens verplaatsen van een dynamische laag, waar u toegang nodig hebt tot recente gegevens voor analyse, naar een koude opslaglaag die veel lager is geprijsd. De koude opslaglaag is een rendabele optie voor langetermijnretentie.

  • U kunt de toegewezen SQL-pool onderbreken wanneer u deze niet gebruikt in uw ontwikkel- of testomgevingen. U kunt een script plannen om de pool naar behoefte te onderbreken of u kunt de pool handmatig onderbreken via de portal.

  • Azure Cosmos DB biedt verschillende inrichtingsmodellen, zoals serverloze, handmatig ingerichte doorvoer en automatische schaalaanpassing. Overweeg serverloze inrichting te gebruiken voor uw ontwikkel- en testworkloads. U kunt ook automatische schaalaanpassing gebruiken, waar u het maximum aantal aanvraageenheden per seconde (RU/s) voor de container kunt instellen. De doorvoer op de container wordt automatisch geschaald tussen 10% van de maximale RU/s als een lagere drempelwaarde en de maximaal geconfigureerde RU/s.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. Zie overzicht van de pijler Prestatie-efficiëntie voor meer informatie.

  • U kunt Event Hubs schalen via partitionering. Overweeg om uw gegevens te partitioneren om de volgorde van gebeurtenissen te behouden via een doorvoerlogboek. Met partitionering kunt u meerdere parallelle logboeken maken door de beschikbare doorvoercapaciteit te maximaliseren.

  • U kunt Azure Synapse Spark-pools instellen met kleine, middelgrote of grote VM-SKU's (virtuele machines), op basis van de workload. U kunt ook automatische schaalaanpassing configureren in Azure Synapse Spark-pools om rekening te houden met spiky workloads. Als u meer rekenresources nodig hebt, worden de clusters automatisch omhoog geschaald om aan de vraag te voldoen en omlaag te schalen nadat de verwerking is voltooid.

  • Gebruik aanbevolen procedures voor het ontwerpen van tabellen in de toegewezen SQL-pool. Gekoppelde prestatie- en schaalbaarheidslimieten zijn van toepassing op basis van de laag waarop de SQL-pool wordt uitgevoerd.

  • Azure Cosmos DB maakt gebruik van partities om containers te schalen op basis van een partitiesleutel. Alle gegevens op basis van een partitiesleutel vormen een logische partitie. Zorg ervoor dat u de juiste partitioneringsstrategie kiest op basis van workloadvereisten. U kunt ook indexen gebruiken voor het sneller ophalen van gegevens.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Andere inzender:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen