Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gegevensgestuurde ondernemingen moeten hun back-end- en analysesystemen in bijna realtime synchroniseren met klantgerichte toepassingen. De effecten van transacties, updates en wijzigingen moeten 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 de gegevens gebruiken, kan slechts enkele 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.
Opmerking
U kunt een vergelijkbare architectuur implementeren met behulp van Microsoft Fabric, dat een SaaS-platform (Software as a Service) biedt voor gegevensopname, transformatie, opslag en analyse. In dit geval vervangt Fabric de Azure Synapse Analytics-onderdelen van de architectuur en biedt geïntegreerde mogelijkheden voor realtime gegevensverwerking en -analyse. Zie Fabric Real-Time Intelligence voor meer informatie.
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
Download een Visio-bestand van deze architectuur.
Gegevensstroom
Cdc (Change Data Capture) 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.
De connectors extraheren wijzigingsgegevens en verzenden de vastgelegde gebeurtenissen naar Event Hubs. Event Hubs kan grote hoeveelheden gegevens van meerdere bronnen ontvangen.
Event Hubs streamt de gegevens rechtstreeks naar Azure Synapse Analytics Spark-pools of verzendt de gegevens naar een Data Lake Storage-landingszone in onbewerkte indeling.
Andere batchgegevensbronnen kunnen Azure Synapse Analytics-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 Analytics-pijplijnen kunnen werkstroomafhankelijkheden indelen binnen het algehele verwerkingsframework.
Azure Synapse Analytics Spark-pools maken gebruik van volledig ondersteunde Apache Spark structured streaming-API's om gegevens te verwerken in het Spark Streaming-framework. De gegevensverwerkingsstap bevat controles van gegevenskwaliteit en validaties van zakelijke regels op hoog niveau.
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 verbetert de prestaties van Delta Lake. Gegevens uit de gevalideerde Data Lake Storage-zone kunnen ook een bron zijn voor verdere geavanceerde analyses en machine learning.
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.
Power BI maakt gebruik van de gegevens die worden weergegeven via de toegewezen SQL-pool om dashboards en rapporten op bedrijfsniveau te bouwen.
U kunt ook vastgelegde onbewerkte gegevens gebruiken in Data Lake Store en de gevalideerde gegevens in de Delta-indeling voor de volgende taken:
Ongeplande en verkennende analyse via serverloze SQL-pools van Azure Synapse Analytics
Machine learning-modeltraining en -implementatie via Azure Machine Learning
Voor sommige interfaces met lage latentie moeten gegevens worden gedenormaliseerd voor serverlatenties met één cijfer. Deze use-case 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.
De partitioneringsstrategie van Azure Cosmos DB ondersteunt mogelijk niet efficiënt 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 AI Search. Azure Cosmos DB en AI Search kunnen voldoen aan de meeste scenario's waarvoor queryreacties met lage latentie zijn vereist. Een retailtoepassing slaat bijvoorbeeld productcatalogusgegevens op in Azure Cosmos DB, maar heeft zoekmogelijkheden voor volledige tekst en flexibele indexering nodig. AI Search kan de gegevens indexeren en geavanceerde zoekfuncties bieden, zoals automatisch aanvullen, synoniemen en semantische classificatie. Deze functies zijn handig wanneer indexeringsbeperkingen van Azure Cosmos DB complexe zoekscenario's beperken.
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 behulp van het mechanisme voor uitgeversabonnee van Event Hubs kunnen verschillende toepassingen berichten verzenden naar Event Hubs-onderwerpen en kunnen downstreamgebruikers verbinding maken met en deze berichten verwerken. Met de functie Voor vastleggen van Event Hubs 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. In deze architectuur ontvangt Event Hubs CDC-gebeurtenissen van meerdere bronnen en distribueert deze naar downstreamgebruikers.
Data Lake Storage is een schaalbare en veilige Data Lake-oplossing. Het vormt het opslagsubsysteem waarin alle gegevens in onbewerkte en gevalideerde indelingen worden opgeslagen. In deze architectuur verwerkt Data Lake Storage transacties op schaal 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 UNIX-machtigingen (POSIX). Het ABFS-stuurprogramma (Azure Blob FileSystem) biedt een hadoop-compatibele API.
Azure Synapse Analytics is een onbeperkte analyseservice waarin gegevensintegratie, zakelijke datawarehousing en big data-analyses worden gecombineerd. Deze oplossing maakt gebruik van de volgende functies van het Azure Synapse Analytics-ecosysteem:
Azure Synapse Analytics Spark-pools zijn clusters die een Spark-runtime op aanvraag bieden waarmee ingebouwde prestatieverbeteringen worden toegevoegd aan opensource Spark. In deze architectuur kunnen klanten flexibele instellingen voor automatisch schalen configureren, taken op afstand verzenden via het Apache Livy-eindpunt en de Synapse Studio-notebookinterface gebruiken voor interactieve ervaringen.
Serverloze SQL-pools van Azure Synapse Analytics zijn een functie op aanvraag die een interface biedt voor het uitvoeren van query's op Lakehouse-gegevens met behulp van bekende T-SQL-syntaxis. Er is geen infrastructuur voor het instellen en de implementatie van de Azure Synapse Analytics-werkruimte maakt automatisch het eindpunt. In deze architectuur maken serverloze SQL-pools van Azure Synapse Analytics eenvoudige detectie en verkenning van gegevens mogelijk voor ongeplande queryanalyse.
Toegewezen SQL-pools van Azure Synapse Analytics zijn ingerichte datawarehousing-resources. Ze slaan gegevens op in relationele tabellen met behulp van kolomopslag. In deze architectuur gebruiken toegewezen SQL-pools 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 is een business analytics-service die een visuele interface biedt 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. In deze architectuur kunt u Power BI gebruiken om gegevens te transformeren op basis van bedrijfsvereisten en visuals en rapporten te delen met klanten.
Azure Cosmos DB is een wereldwijd gedistribueerde NoSQL-databaseservice. 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.
AI Search is een op AI gebaseerd platform als een dienst (PaaS) waarmee ontwikkelaars uitgebreide zoekervaringen kunnen bouwen voor hun toepassingen en websites. Gebruik AI Search in deze oplossing wanneer het Indexeringsmodel van Azure Cosmos DB te star is voor geavanceerde zoekscenario's. AI Search maakt flexibele query's mogelijk met functies zoals typotolerantie, automatisch aanvullen, semantische classificatie en synoniemenkoppeling. U kunt een query uitvoeren op geïndexeerde gegevens met behulp van een REST API of de .NET SDK. Als u gegevens uit meerdere indexen wilt ophalen, kunt u ze samenvoegen in één index of complexe gegevenstypen gebruiken om geneste structuren te modelleren.
Scenariodetails
Voor de end-to-end werkstroom voor het verwerken van wijzigingen in bijna realtime is het volgende vereist:
Een CDC-technologie. 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 weergaven 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 past bij de volgende gebruiksvoorbeelden:
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 de activiteiten en 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 u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie 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 de controlelijst ontwerpbeoordeling voor betrouwbaarheid voor meer informatie.
Event Hubs biedt gegevensretentie van 90 dagen voor de premium- en toegewezen lagen. Voor failoverscenario's kunt u een secundaire naamruimte instellen in de gekoppelde regio en deze activeren tijdens de failover. Schakel zoneredundantie in om tolerantie te garanderen tegen datacenterfouten. U kunt de functie Event Hubs-opname gebruiken om gegevens op te slaan in Data Lake Storage voor scenario's voor opnieuw afspelen en herstellen.
Azure Synapse Analytics Spark-pooltaken worden elke zeven dagen gerecycled omdat knooppunten worden uitgepakt voor onderhoud. Houd rekening met deze activiteit wanneer u werkt via de SLA's (Service Level Agreements) die aan het systeem zijn gekoppeld. Deze beperking is geen probleem voor veel scenario's waarbij de beoogde hersteltijd (RTO) ongeveer 15 minuten is. Zorg ervoor dat automatisch schalen is geconfigureerd voor het afhandelen van belastingpieken en knooppuntfouten.
Gebruik toegewezen SQL-pools met geo-back-up en zone-redundante opslag (ZRS) om te beschermen tegen regionale en zonegebonden storingen.
Kostenoptimalisatie
Kostenoptimalisatie richt zich op manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie de controlelijst ontwerpbeoordeling voor Kostenoptimalisatie voor meer informatie.
U kunt kiezen uit verschillende Event Hubs-lagen op basis van workloadkenmerken. Event Hubs-facturen leggen opslag afzonderlijk vast op basis van de hoeveelheid gegevens die is opgeslagen in Data Lake Storage.
Overweeg objectlevenscyclusbeheer via lagen in 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 minder kost. 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.
Voor Spark-pools van Azure Synapse Analytics gebruikt u automatisch schalen om resources dynamisch toe te wijzen op basis van de vraag naar werkbelasting en om overprovisioning te voorkomen. Kies de kleinste poolgrootte die voldoet aan de prestatiebehoeften en gebruik instellingen voor automatische beëindiging om niet-actieve pools onmiddellijk af te sluiten. Optimaliseer Spark-taken door willekeurige bewerkingen te minimaliseren, tussenliggende resultaten in de cache te plaatsen en partitiegrootten af te stemmen om de uitvoeringstijd en het resourceverbruik te verminderen. Bewaak het gebruik met behulp van bewakingshulpprogramma's van Azure Synapse Analytics en pas configuraties aan op basis van taakprestaties en kostentrends.
Als u de kostenefficiëntie in Azure Cosmos DB wilt optimaliseren, past u uw indexeringsbeleid aan zodat alleen de benodigde paden worden opgenomen, waardoor het verbruik van opslag- en aanvraageenheden (RU) wordt verminderd. Kies het juiste API- en consistentieniveau om te voldoen aan de behoeften van workloads zonder overprovisioning. Gebruik doorvoer voor automatisch schalen om RU's dynamisch aan te passen op basis van vraag en werkbelastingen zo mogelijk samen te voegen in minder containers om overhead te minimaliseren. Bewaak regelmatig het gebruik door Microsoft Cost Management te gebruiken en stel waarschuwingen in om onverwachte kosten te voorkomen.
Gebruik de Azure-prijscalculator om prijzen te schatten.
Prestatie-efficiëntie
Prestatie-efficiëntie verwijst naar de mogelijkheid van uw workload om efficiënt te voldoen aan de behoeften van de gebruiker. Zie de controlelijst ontwerpbeoordeling voor prestatie-efficiëntie voor meer informatie.
U kunt Event Hubs schalen via partitionering, waarmee gebeurtenissen over meerdere parallelle logboeken (partities) worden gedistribueerd om de doorvoer te verhogen. Als u de volgorde van gerelateerde gebeurtenissen, zoals gebeurtenissen van dezelfde klant of hetzelfde apparaat, wilt behouden, gebruikt u een consistente partitiesleutel wanneer u gebeurtenissen publiceert. Deze procedure zorgt ervoor dat alle gerelateerde gebeurtenissen worden gerouteerd naar dezelfde partitie, waarbij Event Hubs hun volgorde onderhoudt. Doorvoereenheden (RU's) afstemmen op basis van het verwachte gebeurtenisvolume. Gebruik de opnamefunctie om rechtstreeks naar Data Lake Storage te schrijven in Avro- of Parquet-indeling voor efficiënte downstreamverwerking.
U kunt Azure Synapse Analytics Spark-pools instellen met kleine, middelgrote of grote VM-SKU's (virtuele machines) op basis van de workload. U kunt automatische schaalaanpassing ook configureren in Spark-pools van Azure Synapse Analytics om rekening te houden met pieken in activiteiten in workloads. Als u meer rekenresources nodig hebt, worden de clusters automatisch omhoog geschaald om te voldoen aan de vraag en omlaag te schalen nadat de verwerking is voltooid.
Delta Lake speelt een centrale rol bij het garanderen van hoogwaardige, betrouwbare en schaalbare gegevensverwerking in deze architectuur:
Schakel de functies voor automatisch optimaliseren en automatisch comprimeren in Delta Lake in om automatisch kleine bestanden te beheren en de gegevensindeling te optimaliseren tijdens schrijfbewerkingen. Deze functies zijn ideaal voor streaming- of frequente microbatchopnamescenario's, omdat ze de noodzaak van handmatige interventie verminderen.
Gebruik
OPTIMIZEdit om kleine bestanden handmatig te comprimeren in grotere bestanden. Deze procedure is vooral handig als u de leesefficiëntie wilt verbeteren en de overhead van metagegevens wilt verminderen nadat streamingopname veel kleine bestanden heeft gemaakt.Gebruik
OPTIMIZEdeze functie voorZORDER BYvaak opgevraagde kolommen, zoals tijdstempels of klant-id's, om gerelateerde gegevens te koppelen. Deze query verbetert de queryprestaties door de hoeveelheid gegevens te verminderen die tijdens leesbewerkingen wordt gescand.
Voer de volgende taken uit om de prestaties in toegewezen SQL-pools te optimaliseren voor bijna realtime analyses:
- Gebruik de juiste distributiemethoden, zoals hash, round robin, gerepliceerde methoden.
- Partitioneer grote tabellen op tijd of regio om het verwijderen van query's te verbeteren.
- Gebruik gerealiseerde weergaven en caching van resultatensets voor veelgebruikte gegevens.
- Onderhoud up-to-datumstatistieken en -indexen om query's efficiënt uit te voeren.
- Wijs resourceklassen toe om geheugen en gelijktijdigheid te beheren.
- Bewaak de prestaties met behulp van ingebouwde hulpprogramma's zoals SQL Insights en Dynamische beheerweergaven (DMV's).
Deze procedures zorgen voor prestaties met lage latentie en hoge doorvoer in grootschalige analytische workloads.
Als u Azure Cosmos DB wilt optimaliseren voor prestaties in realtime analysescenario's, configureert u het juiste indexeringsbeleid om querylatentie en opslagoverhead te verminderen en kiest u het juiste consistentieniveau om de prestaties met nauwkeurigheid van gegevens te verdelen. Partitionering effectief gebruiken om workloads gelijkmatig te verdelen en dynamische partities te voorkomen. Schakel schrijfbewerkingen in meerdere regio's in voor globale toegang met lage latentie en bewaak doorvoer met behulp van RU's om dynamisch te schalen op basis van de vraag. Deze procedures zorgen voor responsieve, schaalbare prestaties voor workloads met hoge opname en lage latentie.
Medewerkers
Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.
Hoofdauteur:
- Pratima Valavala | Cloud Solution Architect
Andere inzender:
- Rajesh Mittal | Cloud Solution Architect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Schaalbaarheid met Event Hubs
- Gegevens indexeren uit Azure Cosmos DB
- Aanbevolen procedures voor toegewezen SQL-pools
- Aanbevolen procedures voor serverloze SQL-pools
- Oplossingen voor gegevensanalyse bouwen met behulp van serverloze SQL-pools van Azure Synapse Analytics
- Een query uitvoeren op een data lake of lakehouse met behulp van serverloze SQL-pools van Azure Synapse Analytics