Datengesteuerte Unternehmen müssen ihre Back-End- und Analysesysteme nahezu in Echtzeit mit den kundenorientierten Anwendungen synchronisieren. Die Auswirkungen von Transaktionen, Updates und Änderungen müssen in End-to-End-Prozessen, verwandten Anwendungen und OLTP-Systemen (Online Transaction Processing, Onlinetransaktionsverarbeitung) präzise widergespiegelt werden. Die tolerierbare Wartezeit bei Änderungen in OLTP-Anwendungen, mit der Änderungen in den Downstreamsystemen angezeigt werden, die die Daten nutzen, 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.
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 ist eine Voraussetzung für Quellsysteme, um auf Änderungen zu lauschen. Debezium-Connectors können eine Verbindung mit verschiedenen Quellsystemen herstellen und Änderungen sofort abrufen. 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 Azure Event Hubs. Event Hubs kann große Datenmengen aus mehreren Quellen empfangen.
Event Hubs streamt die Daten direkt in Spark-Pools in Azure Synapse Analytics oder kann die Daten im Rohformat an eine Azure Data Lake Storage-Zielzone senden.
Andere Batchdatenquellen können Azure Synapse-Pipelines verwenden, um Daten in Data Lake Storage zu kopieren und zur Verarbeitung zur Verfügung zu stellen. Ein End-to-End-Workflow zum Extrahieren, Transformieren und Laden (ETL) muss möglicherweise verschiedene Schritte verketten oder Abhängigkeiten zwischen Schritten hinzufügen. Azure Synapse-Pipelines können Workflowabhängigkeiten innerhalb des gesamten Verarbeitungsframeworks orchestrieren.
Spark-Pools in Azure Synapse verwenden vollständig unterstützte strukturierte Apache Spark-Streaming-APIs, um Daten im Spark-Streamingframework zu verarbeiten. Der Datenverarbeitungsschritt umfasst Datenqualitätsprüfungen und allgemeine Geschäftsregelüberprüfungen.
In Data Lake Storage werden die überprüften Daten im offenen Delta Lake-Format gespeichert. 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 zur Abfragebeschleunigung ergänzt Delta um weitere Leistungsverbesserungen. 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 überprüften Data Lake Storage-Zone, die transformiert und mit mehr Regeln im endgültigen verarbeiteten Zustand angereichert wurden, werden in einen dedizierten SQL-Pool zur Ausführung umfangreicher analytischer Abfragen geladen.
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 in der Data Lake Store-Zielzone und überprüfte Daten im Delta-Format für Folgendes verwenden:
- Weitere Ad-hoc-Analysen und explorative Analysen über serverlose Azure Synapse SQL-Pools
- Maschinelles Lernen durch Azure Machine Learning
Bei einigen latenzarmen Schnittstellen müssen Daten für Serverlatenzen im einstelligen Bereich denormalisiert werden. Dieses Verwendungsszenario ist hauptsächlich für API-Antworten gedacht. 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 eignet sich möglicherweise nicht für alle Abfragemuster. Wenn dies der Fall ist, können Sie die Lösung erweitern, indem Sie die Daten, auf die die APIs zugreifen müssen, mit Azure Cognitive Search indizieren. Azure Cosmos DB und Cognitive Search können die meisten Szenarien erfüllen, die Abfrageantworten mit geringer Wartezeit erfordern.
Komponenten
Diese Lösung verwendet die folgenden Azure-Komponenten:
Event Hubs ist ein verwalteter, verteilter Erfassungsdienst, der skaliert werden kann, um große Datenmengen zu erfassen. Mit dem Event Hubs-Mechanismus für Abonnenten/Herausgeber können verschiedene Anwendungen Nachrichten an Themen in Event Hubs senden, und Downstreamconsumer können eine Verbindung mit Nachrichten herstellen und diese verarbeiten. Mit dem Event Hubs Capture-Feature können Nachrichten bei ihrem Eintreffen in Data Lake Storage im AVRO-Format geschrieben werden. Dadurch werden Szenarien zur einfachen Microbatch-Verarbeitung und Langzeitaufbewahrung ermöglicht. Event Hubs bietet auch eine mit Kafka kompatible API und unterstützt die Schemaregistrierung.
Data Lake Storage bildet das Speichersubsystem, das alle Daten in unformatierten und validierten Formaten speichert. Data Lake Storage kann Transaktionen im großen Stil verarbeiten und unterstützt verschiedene Dateiformate und -größen. Hierarchische Namespaces helfen beim Organisieren von Daten in einer vertrauten Ordnerstruktur und unterstützen POSIX-Berechtigungen (Portable Operating System Interface for UniX). Der ABFS-Treiber (Azure Blob Filesystem, Azure-Blobdateisystemtreiber) bietet eine mit Hadoop kompatible API.
Azure Synapse Analytics ist ein unbegrenzter Analysedienst, der Datenintegration, Data Warehousing für Unternehmen und Big Data-Analysen vereint. Diese Lösung verwendet die folgenden Features des Azure Synapse Analytics-Ökosystems:
Azure Synapse Spark-Pools bieten eine On-Demand-Spark-Runtime, die Open-Source-Spark integrierte Leistungsverbesserungen hinzufügt. Kunden können flexible Autoskalierungseinstellungen konfigurieren, Aufträge remote über den Apache Livy-Endpunkt übermitteln und die Synapse Studio-Notebookschnittstelle für interaktive Umgebungen verwenden.
Serverlose Azure Synapse SQL-Pools bieten eine Schnittstelle zum Abfragen von Lakehouse-Daten mithilfe einer vertrauten T-SQL-Syntax. Es muss keine Infrastruktur eingerichtet werden, und bei der Azure Synapse-Arbeitsbereichsbereitstellung wird automatisch der Endpunkt erstellt. Serverlose Azure Synapse SQL-Pools ermöglichen die grundlegende Ermittlung und Untersuchung von Daten an Ort und Stelle und sind eine gute Option für Ad-hoc-Abfrageanalysen des Benutzers.
Dedizierte SQL-Pools von Azure Synapse speichern Daten in relationalen Tabellen mit spaltenbasiertem Speicher. Dedizierte SQL-Pools verwenden eine Architektur mit horizontaler Skalierung, 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 bietet eine visuelle Schnittstelle zum Erstellen von Berichten und Dashboards sowie zum Zugreifen darauf Power BI Desktop kann eine Verbindung mit verschiedenen Datenquellen herstellen, die Quellen in ein Datenmodell kombinieren und Berichte oder Dashboards erstellen. Mit Power BI können Sie Daten basierend auf geschäftlichen Anforderungen transformieren und visuelle Elemente und Berichte über den Power BI-Dienst für andere Benutzer freigeben.
Azure Cosmos DB ist eine verwaltete, multimodale NoSQL-Datenbank, die offene APIs wie MongoDB und Cassandra unterstützt. 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 für mehrere Regionen in allen Azure-Regionen. Sie können Azure Synapse Link für Azure Cosmos DB verwenden, um Erkenntnisse abzuleiten und Analysen für Daten in Echtzeit auszuführen.
Azure Cognitive Search ist ein Cloudsuchdienst, der die von Ihren Anwendungen und APIs benötigten Daten indiziert. Cognitive Search verfügt über optionale KI-Anreicherungsfunktionen, die bei der Textextraktion hilfreich sind und Text aus Nicht-Textdateien ableiten. Cognitive Search kann in Dienste wie Azure Data Lake Storage und Azure Cosmos DB integriert werden, um einfach auf Daten zuzugreifen und diese zu indexieren. Sie können die indizierten Daten mithilfe einer REST-API oder des .NET SDK abfragen. Um Daten aus zwei separaten Indizes abzurufen, können Sie sie in einem einzelnen Index kombinieren oder komplexe Datentypen verwenden.
Szenariodetails
Der End-to-End-Workflow zum Verarbeiten von Änderungen in Quasi-Echtzeit erfordert Folgendes:
- CDC-Technologie (Change Data Capture). 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
- Eine NoSQL-Datenbank zum Speichern der denormalisierten Darstellung der Daten, um latenzarme API-Antworten zu ermöglichen
- 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 zuvor genannten Technologien sollten relevante Sicherheitskonstrukte für Umgebungssicherheit, Authentifizierung, Autorisierung und Datenverschlüsselung verwenden.
Mögliche Anwendungsfälle
Diese Lösung eignet sich gut für:
- 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 Einzelhandel, Gewerbe und Gesundheitswesen. Durch die Ermöglichung dieser Szenarien werden Abläufe optimiert, was zu einer höheren Produktivität des Unternehmens und einer größeren Kundenzufriedenheit führt.
Überlegungen
Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.
Zuverlässigkeit
Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Überblick über die Säule „Zuverlässigkeit“.
Event Hubs bietet eine 90-tägige Datenaufbewahrung im Premium- und Dedicated-Tarif. Bei Failoverszenarien können Sie einen sekundären Namespace in der gekoppelten Region einrichten und während des Failovers aktivieren.
Azure Synapse Spark-Poolaufträge werden alle sieben Tage neu gestartet, da Knoten zur Wartung außer Betrieb genommen werden. Berücksichtigen Sie diese Aktivität, wenn Sie die mit dem System verbundenen Service Level Agreements (SLAs) durcharbeiten. Diese Einschränkung stellt für viele Szenarien kein Problem dar, in denen die Wiederherstellungszeitvorgabe (Recovery Time Objective, RTO) etwa 15 Minuten beträgt.
Kostenoptimierung
Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.
Sie können je nach Workloadmerkmalen aus verschiedenen Event Hubs-Ebenen auswählen. Event Hubs berechnet die Speichererfassung separat basierend auf der Datenmenge, die in Data Lake Storage gespeichert wird.
Erwägen Sie die Objektlebenszyklusverwaltung über Ebenen in Azure Data Lake Storage. Mit zunehmendem Alter der Daten können Sie diese von einer heißen Speicherebene, in der Sie für Analysen auf aktuelle Daten zugreifen müssen, in eine kalte Speicherebene verschieben, die viel gü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.
Azure Cosmos DB bietet verschiedene Bereitstellungsmodelle, z. B. serverlose Bereitstellung, manuell bereitgestellten Durchsatz und Autoskalierung. Erwägen Sie die Verwendung der serverlosen Bereitstellung für Ihre Entwicklungs- und Testworkloads. Sie können auch die Autoskalierung verwenden, bei der Sie maximale Anforderungseinheiten pro Sekunde (RU/s) für den Container festlegen können. Der Durchsatz des Containers wird automatisch zwischen 10 % der maximalen RU/s (unterer Schwellenwert) und den maximal konfigurierten RU/s skaliert.
Effiziente Leistung
Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Übersicht über die Säule „Leistungseffizienz“.
Sie können Event Hubs durch Partitionierung skalieren. Erwägen Sie die Partitionierung Ihrer Daten, um die Reihenfolge der Ereignisse über ein Commitprotokoll beizubehalten. Mithilfe der Partitionierung können Sie mehrere parallele Protokolle erstellen, indem Sie die verfügbare Durchsatzkapazität maximieren.
Sie können Azure Synapse Spark-Pools basierend auf der Workload mit kleinen, mittleren oder großen VM-SKUs einrichten. Sie können auch die Autoskalierung für Azure Synapse Spark-Pools konfigurieren, um Workloads mit Lastspitzen zu berücksichtigen. Wenn Sie weitere Computeressourcen benötigen, werden die Cluster automatisch hochskaliert, um den Bedarf zu decken, und nach Abschluss der Verarbeitung herunterskaliert.
Verwenden Sie bewährte Methoden zum Entwerfen von Tabellen im dedizierten SQL-Pool. Zugeordnete Leistungs- und Skalierbarkeitsgrenzwerte gelten basierend auf der Ebene, auf der der SQL-Pool ausgeführt wird.
Azure Cosmos DB verwendet Partitionen zum Skalieren von Containern basierend auf einem Partitionsschlüssel. Alle auf einem Partitionsschlüssel basierenden Daten bilden eine logische Partition. Stellen Sie sicher, dass Sie die richtige Partitionierungsstrategie basierend auf den Workloadanforderungen auswählen. Sie können auch Indizes für den schnelleren Datenabruf verwenden.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Pratima Valavala | Cloud Solution Architect
Andere Mitwirkende:
- Rajesh Mittal | Cloud Solution Architect
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
- Azure Event Hubs-Connector für Apache Spark
- Skalierbarkeit mit Event Hubs
- Indizieren von Daten aus Azure Cosmos DB
- Was ist Azure Synapse Link für Azure Cosmos DB?
- Bewährte Methoden für dedizierte SQL-Pools
- Best Practices für serverlose SQL-Pools
- Modellieren, Abfragen und Erkunden von Daten in Azure Synapse
- Erstellen von Datenanalyselösungen mithilfe von serverlosen SQL-Pools in Azure Synapse