Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Datengesteuerte Unternehmen müssen ihre Back-End- und Analysesysteme nahezu in Echtzeit mit kundenorientierten Anwendungen synchronisieren. Die Auswirkungen von Transaktionen, Aktualisierungen und Änderungen müssen genau in End-to-End-Prozessen, verwandten Anwendungen und Online-Transaktionsverarbeitungssystemen (OLTP) widergespiegelt werden. Die zulässige Latenz, damit Änderungen in OLTP-Anwendungen in den nachgelagerten Systemen, die die Daten nutzen, widergespiegelt werden, beträgt möglicherweise nur wenige Minuten.
In diesem Artikel wird eine End-to-End-Lösung für die Datenverarbeitung in Quasi-Echtzeit beschrieben, um Lakehouse-Daten synchron zu halten. Die Lösung nutzt Azure Event Hubs, Azure Synapse Analytics und Azure Data Lake Storage für die Datenverarbeitung und -analyse.
Hinweis
Sie können eine ähnliche Architektur mithilfe von Microsoft Fabric implementieren, die eine einheitliche Software as a Service(SaaS)-Plattform für Datenaufnahme, Transformation, Speicher und Analysen bereitstellt. In diesem Fall ersetzt Fabric die Azure Synapse Analytics-Komponenten der Architektur und bietet integrierte Funktionen für die Echtzeitdatenverarbeitung und -analyse. Weitere Informationen finden Sie unter Fabric Real-Time Intelligence.
Apache und Apache® Spark sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
Change Data Capture (CDC) ist eine Voraussetzung für Quellsysteme, um Änderungen zu überwachen. Debezium-Verbinder können eine Verbindung mit verschiedenen Quellsystemen herstellen und änderungen bei derEntwendung anzapfen. Die Connectors können Änderungen erfassen und Ereignisse aus verschiedenen Managementsystemen für relationale Datenbanken (Relational Database Management Systems, RDBMS) erzeugen. Die Installation eines Debezium-Connectors erfordert ein Kafka-Verbindungssystem.
Die Connectors extrahieren Änderungsdaten und senden die erfassten Ereignisse an Event Hubs. Event Hubs kann große Datenmengen aus mehreren Quellen empfangen.
Event Hubs streamen die Daten direkt an Azure Synapse Analytics Spark-Pools oder senden die Daten an eine Data Lake Storage-Zielzone im unformatierten Format.
Andere Batchdatenquellen können Azure Synapse Analytics-Pipelines verwenden, um Daten in Data Lake Storage zu kopieren und zur Verarbeitung zur Verfügung zu stellen. Ein END-to-End-Extrakt-, Transformations- und Ladeworkflow (ETL) muss möglicherweise verschiedene Schritte verketten oder Abhängigkeiten zwischen Schritten hinzufügen. Azure Synapse Analytics-Pipelines können Workflowabhängigkeiten innerhalb des gesamten Verarbeitungsframeworks koordinieren.
Azure Synapse Analytics Spark Pools verwenden vollständig unterstützte Apache Spark strukturierte Streaming-APIs zum Verarbeiten von Daten im Spark Streaming Framework. Der Datenverarbeitungsschritt umfasst Datenqualitätsprüfungen und allgemeine Geschäftsregelüberprüfungen.
Data Lake Storage speichert die überprüften Daten im offenen Delta Lake-Format . Delta Lake bietet ACID-Semantik und -Transaktionen (Atomicity, Consistency, Isolation, Durability; Unteilbarkeit, Konsistenz, Isolation, Dauerhaftigkeit), skalierbare Metadatenverarbeitung und einheitliche Streaming- und Batchdatenverarbeitung für vorhandene Data Lakes.
Die Verwendung von Indizes für die Abfragebeschleunigung verbessert die Delta Lake-Leistung. Daten aus der überprüften Data Lake Storage-Zone können auch eine Quelle für weitere erweiterte Analysen und maschinelles Lernen sein.
Daten aus der validierten Zone des Data Lake Storage werden transformiert und mit weiteren Regeln angereichert in ihren endgültigen verarbeiteten Zustand gebracht und in einen dedizierten SQL-Pool geladen, um umfangreiche Analyseabfragen auszuführen.
Power BI verwendet die Daten, die über den dedizierten SQL-Pool verfügbar gemacht werden, um Dashboards und Berichte auf Unternehmensniveau zu erstellen.
Sie können auch erfasste Rohdaten im Data Lake Store und die überprüften Daten im Delta-Format für die folgenden Aufgaben verwenden:
Ungeplante und explorative Analyse über Azure Synapse Analytics serverlose SQL-Pools
Schulung und Bereitstellung des Machine Learning-Modells über Azure Machine Learning
Bei einigen latenzarmen Schnittstellen müssen Daten für Serverlatenzen im einstelligen Bereich denormalisiert werden. Dieser Anwendungsfall ist hauptsächlich für API-Antworten vorgesehen. In diesem Szenario werden Dokumente in einem NoSQL-Datenspeicher wie Azure Cosmos DB für Antworten im einstelligen Millisekundenbereich abgefragt.
Die Azure Cosmos DB-Partitionierungsstrategie unterstützt möglicherweise nicht effizient alle Abfragemuster. Wenn dies der Fall ist, können Sie die Lösung erweitern, indem Sie die Daten indizieren, auf die die APIs mit Azure AI Search zugreifen müssen. Azure Cosmos DB und AI Search können die meisten Szenarien erfüllen, die Abfrageantworten mit geringer Latenz erfordern. Beispielsweise speichert eine Einzelhandelsanwendung Produktkatalogdaten in Azure Cosmos DB, benötigt jedoch Volltext-Suchfunktionen und flexible Indizierung. DIE KI-Suche kann die Daten indizieren und erweiterte Suchfunktionen wie AutoVervollständigen, Synonyme und semantische Rangfolge bereitstellen. Diese Features sind nützlich, wenn Azure Cosmos DB-Indizierungseinschränkungen komplexe Suchszenarien einschränken.
Komponenten
Diese Lösung verwendet die folgenden Azure-Komponenten:
Event Hubs ist ein verwalteter, verteilter Aufnahmedienst, der skaliert werden kann, um große Datenmengen aufzunehmen. Mithilfe des Publisher-Subscriber-Mechanismus von Event Hubs können unterschiedliche Anwendungen Nachrichten an Event Hubs-Topics senden, und nachgeschaltete Consumer können diese Nachrichten empfangen und verarbeiten. Die Event Hubs-Erfassungsfunktion kann Nachrichten in Data Lake Storage im Avro-Format schreiben, sobald sie eintreffen. Dadurch werden Szenarien zur einfachen Microbatch-Verarbeitung und Langzeitaufbewahrung ermöglicht. Event Hubs bietet auch eine kafka-kompatible API und unterstützt die Schemaregistrierung. In dieser Architektur empfängt Event Hubs CDC-Ereignisse aus mehreren Quellen und verteilt sie an nachgeschaltete Verbraucher.
Data Lake Storage ist eine skalierbare und sichere Data Lake-Lösung. Es bildet das Speichersubsystem, das alle Daten in unformatierten und validierten Formaten speichert. In dieser Architektur verarbeitet Data Lake Storage Transaktionen im Maßstab und unterstützt verschiedene Dateiformate und Größen. Hierarchische Namespaces helfen beim Organisieren von Daten in einer vertrauten Ordnerstruktur und unterstützen portable Operating System Interface for Unix (POSIX)-Berechtigungen. Der Azure Blob Filesystem (ABFS)-Treiber stellt eine Hadoop-kompatible API bereit.
Azure Synapse Analytics ist ein unbegrenzter Analysedienst, der Datenintegration, Enterprise Data Warehouse und Big Data Analytics kombiniert. Diese Lösung verwendet die folgenden Features des Azure Synapse Analytics-Ökosystems:
Azure Synapse Analytics Spark Pools sind Cluster, die eine On-Demand Spark-Laufzeit bereitstellen, die integrierte Leistungsverbesserungen zu Open-Source-Spark hinzufügt. In dieser Architektur können Kunden flexible Autoscale-Einstellungen konfigurieren, Aufträge remote über den Apache Livy-Endpunkt übermitteln und die Synapse Studio-Notizbuchschnittstelle für interaktive Erfahrungen verwenden.
Azure Synapse Analytics serverlose SQL-Pools sind ein Abfrage-on-Demand-Feature, das eine Schnittstelle zum Abfragen von Lakehouse-Daten mit vertrauter T-SQL-Syntax bereitstellt. Es gibt keine Infrastruktur zum Einrichten, und die Bereitstellung des Azure Synapse Analytics-Arbeitsbereichs erstellt automatisch den Endpunkt. In dieser Architektur ermöglichen Azure Synapse Analytics serverlose SQL-Pools die grundlegende Ermittlung und Analyse von Daten für ungeplante Abfrageanalysen.
Dedizierte SQL-Pools für Azure Synapse Analytics sind bereitgestellte Datenbank-Ressourcen. Sie speichern Daten in relationalen Tabellen mithilfe von Spaltenspeicher. In dieser Architektur verwenden dedizierte SQL-Pools eine Skalierungsarchitektur, um die Datenverarbeitung über mehrere Knoten hinweg zu verteilen. PolyBase-Abfragen stellen die Daten in SQL-Pooltabellen zur Verfügung. Die Tabellen können eine Verbindung mit Power BI herstellen, um Analysen und Berichte zu erstellen.
Power BI ist ein Business Analytics-Dienst, der eine visuelle Schnittstelle zum Erstellen und Zugreifen auf Berichte und Dashboards bietet. Power BI Desktop kann eine Verbindung mit verschiedenen Datenquellen herstellen, die Quellen in ein Datenmodell kombinieren und Berichte oder Dashboards erstellen. In dieser Architektur können Sie Power BI verwenden, um Daten basierend auf geschäftlichen Anforderungen zu transformieren und visuelle Elemente und Berichte für Kunden freizugeben.
Azure Cosmos DB ist ein global verteilter NoSQL-Datenbankdienst. Diese Lösung verwendet Azure Cosmos DB für Anwendungen, die Antwortzeiten und Hochverfügbarkeit im einstelligen Millisekundenbereich erfordern. Azure Cosmos DB bietet Schreibvorgänge aus mehreren Regionen in allen Azure-Regionen.
AI Search ist eine KI-basierte Plattform als Dienst (PaaS), mit der Entwickler umfangreiche Suchfunktionen für ihre Anwendungen und Websites erstellen können. Verwenden Sie AI Search in dieser Lösung, wenn das Azure Cosmos DB-Indizierungsmodell für erweiterte Suchszenarien zu starr ist. AI Search ermöglicht flexible Abfragen mit Features wie Tippfehlertoleranz, AutoVervollständigen, semantischer Rangfolge und Synonymabgleich. Sie können indizierte Daten mithilfe einer REST-API oder des .NET SDK abfragen. Wenn Sie Daten aus mehreren Indizes abrufen müssen, können Sie sie entweder in einem einzelnen Index konsolidieren oder komplexe Datentypen verwenden, um geschachtelte Strukturen zu modellieren.
Szenariodetails
Der End-to-End-Workflow zum Verarbeiten von Änderungen in Quasi-Echtzeit erfordert Folgendes:
Eine CDC-Technologie. Die OLTP-Anwendungen verfügen möglicherweise über unterschiedliche Back-End-Datenspeicher, z. B. SQL Server, MySQL und Oracle. Der erste Schritt besteht darin, direkt auf Änderungen zu lauschen und sie weiterzugeben.
Erfassungspuffer zum Veröffentlichen der Änderungsereignisse im großen Stil. Dieser Dienst sollte große Datenmengen verarbeiten können, wenn Nachrichten eingehen. Einzelne Abonnenten können eine Verbindung mit diesem System herstellen und die Daten verarbeiten.
Verteilter und skalierbarer Speicher für Daten in unveränderter Form im Rohdatenformat
Verteiltes, effizientes Datenstromverarbeitungssystem, das Benutzern den Neustart und die Verwaltung des Zustands ermöglicht
Ein Analysesystem, das im großen Stil ausgeführt wird, um Geschäftsentscheidungen zu unterstützen
Eine Self-Service-Analyseschnittstelle
Für API-Antworten mit geringer Latenz wird eine NoSQL-Datenbank zum Speichern von denormalisierten Darstellungen der Daten verwendet.
In einigen Fällen ein System zum Indizieren von Daten, Aktualisieren des Index in regelmäßigen Abständen und Verfügbarmachen der neuesten Daten für die Downstreamnutzung
Alle oben genannten Technologien sollten relevante Sicherheitskonstrukte für Umkreissicherheit, Authentifizierung, Autorisierung und Datenverschlüsselung verwenden.
Mögliche Anwendungsfälle
Diese Lösung passt zu den folgenden Anwendungsfällen:
Branchen, die Änderungen vom OLTP zur analytischen Onlineverarbeitung (Online Analytics Processing, OLAP) weitergeben müssen
Anwendungen, für die eine Datentransformation oder -anreicherung erforderlich ist
Das Szenario zur Datenverarbeitung in Echtzeit ist insbesondere für die Finanzdienstleistungsbranche wichtig. Wenn beispielsweise ein Versicherungs-, Kreditkarten- oder Bankkunde eine Zahlung tätigt und dann sofort den Kundendienst kontaktiert, muss der Kundendienstmitarbeiter über die neuesten Informationen verfügen.
Ähnliche Szenarien gelten für den Einzelhandels-, Handels- und Gesundheitssektor. Durch die Aktivierung dieser Szenarien werden Vorgänge optimiert und zu einer höheren Produktivität der Organisation und zu einer erhöhten Kundenzufriedenheit führt.
Überlegungen
Diese Überlegungen bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. Weitere Informationen finden Sie unter Well-Architected Framework.
Zuverlässigkeit
Zuverlässigkeit trägt dazu bei, dass Ihre Anwendung die Verpflichtungen erfüllen kann, die Sie für Ihre Kunden vornehmen. Weitere Informationen finden Sie in der Prüfliste zur Entwurfsüberprüfung für Zuverlässigkeit.
Event Hubs bietet eine 90-tägige Datenaufbewahrung auf den Premium- und dedizierten Ebenen. Bei Failoverszenarien können Sie einen sekundären Namespace in der gekoppelten Region einrichten und während des Failovers aktivieren. Aktivieren Sie Zonenredundanz, um die Ausfallsicherheit gegenüber Rechenzentrumsfehlern sicherzustellen. Sie können das Feature "Event Hubs-Erfassung" verwenden, um Daten für Replay- und Wiederherstellungsszenarien in Data Lake Storage zu speichern.
Azure Synapse Analytics Spark-Poolaufträge werden alle sieben Tage neu gestartet, da Knoten für Wartungsarbeiten heruntergefahren werden. Berücksichtigen Sie diese Aktivität, während Sie die an das System gebundenen Vereinbarungen (Service Level Agreements, SLAs) durcharbeiten. Diese Einschränkung ist kein Problem für viele Szenarien, in denen das Wiederherstellungszeitziel (RTO) etwa 15 Minuten beträgt. Stellen Sie sicher, dass die automatische Skalierung so konfiguriert ist, dass Ladespitzen und Knotenfehler behandelt werden.
Verwenden Sie dedizierte SQL-Pools mit geo-backup- und zonenredundanten Speicher (ZRS), um vor regionalen und zonalen Ausfällen zu schützen.
Kostenoptimierung
Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie in der Prüfliste für die Entwurfsüberprüfung für die Kostenoptimierung.
Sie können je nach Workloadmerkmalen aus verschiedenen Event Hubs-Ebenen auswählen. Event Hubs abrechnungen erfassen den Speicher separat basierend auf der Datenmenge, die auf Data Lake Storage gespeichert ist.
Berücksichtigen Sie die Lebenszyklusverwaltung von Objekten über Ebenen im Data Lake Storage. Wenn Daten älter werden, können Sie diese von einer heißen Speicherstufe, in der Sie für Analysen auf aktuelle Daten zugreifen, zu einer kalten Speicherstufe verschieben, die kostengünstiger ist. Die kalte Speicherebene ist eine kostengünstige Option für die Langzeitaufbewahrung.
Sie können den dedizierten SQL-Pool anhalten, wenn Sie ihn nicht in Ihren Entwicklungs- oder Testumgebungen verwenden. Sie können ein Skript planen, um den Pool nach Bedarf anzuhalten, oder Sie können den Pool manuell über das Portal anhalten.
Verwenden Sie für Azure Synapse Analytics Spark Pools die automatische Skalierung, um Ressourcen basierend auf der Workloadnachfrage dynamisch zuzuordnen und die Überteilung zu vermeiden. Wählen Sie die kleinste Poolgröße aus, die den Leistungsanforderungen entspricht, und verwenden Sie automatische Beendigungseinstellungen, um leerlaufende Pools umgehend herunterzufahren. Optimieren Sie Spark-Aufträge, indem Sie Shuffle-Vorgänge minimieren, Zwischenergebnisse zwischenspeichern und Partitionsgrößen optimieren, um die Laufzeit und den Ressourcenverbrauch zu reduzieren. Überwachen Sie die Nutzung mithilfe von Azure Synapse Analytics-Überwachungstools und passen Sie Konfigurationen basierend auf Auftragsleistung und Kostentrends an.
Um die Kosteneffizienz in Azure Cosmos DB zu optimieren, passen Sie Ihre Indizierungsrichtlinien so an, dass nur erforderliche Pfade enthalten sind, wodurch der Speicher- und Anforderungseinheitsverbrauch (RU) reduziert wird. Wählen Sie die entsprechende API- und Konsistenzstufe aus, um die Workloadanforderungen zu erfüllen, ohne die Bereitstellung zu übersteigen. Verwenden Sie die automatische Durchsatzskalierung, um die RUs basierend auf dem Bedarf dynamisch anzupassen, und konsolidieren Sie die Workloads nach Möglichkeit in weniger Containern, um den Aufwand zu minimieren. Überwachen Sie die Nutzung regelmäßig mithilfe von Microsoft Cost Management, und legen Sie Warnungen fest, um unerwartete Gebühren zu vermeiden.
Verwenden Sie den Azure-Preisrechner , um die Preise zu schätzen.
Leistungseffizienz
Die Leistungseffizienz bezieht sich auf die Fähigkeit Ihrer Workload, die Anforderungen der Benutzer effizient zu erfüllen. Weitere Informationen finden Sie in der Prüfliste zur Entwurfsüberprüfung für Die Leistungseffizienz.
Sie können Event Hubs durch Partitionierung skalieren, wodurch Ereignisse über mehrere parallele Protokolle (Partitionen) verteilt werden, um den Durchsatz zu erhöhen. Um die Reihenfolge verwandter Ereignisse wie Ereignisse desselben Kunden oder Geräts beizubehalten, verwenden Sie beim Veröffentlichen von Ereignissen einen konsistenten Partitionsschlüssel . Diese Vorgehensweise stellt sicher, dass alle zugehörigen Ereignisse an dieselbe Partition weitergeleitet werden, in der die Reihenfolge der Ereignisse innerhalb von "Event Hubs" beibehalten wird. Optimieren Sie Durchsatzeinheiten (TUs) basierend auf dem erwarteten Ereignisvolumen. Verwenden Sie die Aufnahmefunktion, um direkt in Data Lake Storage im Avro- oder Parquet-Format zu schreiben, um eine effiziente nachgelagerte Verarbeitung zu ermöglichen.
Sie können Azure Synapse Analytics Spark Pools mit kleinen, mittleren oder großen VM-SKUs basierend auf der Workload einrichten. Sie können die automatische Skalierung auch in Azure Synapse Analytics Spark-Pools konfigurieren, um Aktivitätsspitzen in Workloads zu berücksichtigen. Wenn Sie mehr Rechenressourcen benötigen, skalieren die Cluster automatisch nach oben, um die Nachfrage zu erfüllen, und skalieren nach unten, nachdem die Verarbeitung abgeschlossen ist.
Delta Lake spielt eine zentrale Rolle bei der Sicherstellung der hochleistungsfähigen, zuverlässigen und skalierbaren Datenverarbeitung in dieser Architektur:
Aktivieren Sie die Features für die automatische Optimierung und automatische Komprimierung in Delta Lake, um kleine Dateien automatisch zu verwalten und das Datenlayout während schreibvorgängen zu optimieren. Diese Features eignen sich ideal für Streaming- oder häufige Mikrobatchaufnahmeszenarien, da sie den Bedarf an manuellen Eingriffen reduzieren.
Verwenden Sie
OPTIMIZE, um kleine Dateien manuell in größere zu kompaktieren. Diese Vorgehensweise ist besonders nützlich, wenn Sie die Leseeffizienz verbessern und den Metadatenaufwand verringern möchten, nachdem die Streamingaufnahme viele kleine Dateien erstellt hat.Verwenden Sie
OPTIMIZEzusammen mitZORDER BYbei häufig abgefragten Spalten, wie Zeitstempel oder Kunden-IDs, um verwandte Daten zusammenzuführen. Diese Abfrage verbessert die Abfrageleistung, indem die Datenmenge reduziert wird, die während der Lesevorgänge gescannt wird.
Führen Sie die folgenden Aufgaben aus, um die Leistung in dedizierten SQL-Pools für nahezu Echtzeitanalysen zu optimieren:
- Verwenden Sie geeignete Verteilungsmethoden wie Hash, Roundrobin, replizierte Methoden.
- Partitionieren Sie große Tabellen nach Zeit oder Region, um die Abfragelöschung zu verbessern.
- Verwenden Sie materialisierte Ansichtstabellen und das Zwischenspeichern von Resultat-Sätzen für häufig abgerufene Daten.
- Halten Sie aktuelle Statistiken und Indexe vor, um Abfragen effizient auszuführen.
- Weisen Sie Ressourcenklassen zum Verwalten von Arbeitsspeicher und Parallelität zu.
- Überwachen Sie die Leistung mithilfe integrierter Tools wie SQL Insights und dynamischer Verwaltungsansichten (Dynamic Management Views, DMVs).
Diese Methoden tragen dazu bei, dass die Leistung mit geringer Latenz und hoher Durchsatz in umfangreichen Analysearbeitslasten gewährleistet ist.
Um Azure Cosmos DB für die Leistung in Echtzeitanalyseszenarien zu optimieren, konfigurieren Sie geeignete Indizierungsrichtlinien, um die Latenz und den Speicheraufwand der Abfrage zu reduzieren, und wählen Sie die richtige Konsistenzstufe aus, um die Leistung mit der Datengenauigkeit auszugleichen. Verwenden Sie die Partitionierung effektiv, um Workloads gleichmäßig zu verteilen und Hot Partitionen zu vermeiden. Aktivieren Sie Schreibvorgänge mit mehreren Regionen für globalen Zugriff mit geringer Latenz und überwachen Sie den Durchsatz mithilfe von RUs, um dynamisch basierend auf Bedarf zu skalieren. Diese Praktiken tragen dazu bei, dass reaktionsfähige und skalierbare Leistung für hochvolumige Workloads mit niedriger Latenz gewährleistet wird.
Beitragende
Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.
Hauptautor:
- Pratima Valavala | Cloud-Lösungsarchitekt
Andere Mitwirkende:
- Rajesh Mittal | Cloud-Lösungsarchitekt
Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.
Nächste Schritte
- Skalierbarkeit mit Event Hubs
- Indexdaten aus Azure Cosmos DB
- Best Practices für dedizierte SQL-Pools
- Bewährte Methoden für serverlose SQL-Pools
- Erstellen von Datenanalyselösungen mithilfe von Serverlosen SQL-Pools in Azure Synapse Analytics
- Abfragen eines Datensees oder Seehauses mithilfe von Serverlosen SQL-Pools von Azure Synapse Analytics