Freigeben über


Big Data-Architekturen

Eine Big Data-Architektur verwaltet die Erfassung, Verarbeitung und Analyse von Daten, die zu groß oder komplex für herkömmliche Datenbanksysteme sind. Der Schwelle für das Betreten des Bereichs der Big Data variiert je nach Organisation, abhängig von deren Tools und Benutzerfähigkeiten. Einige Organisationen verwalten Hunderte von Gigabyte an Daten, und andere Organisationen verwalten Hunderte von Terabytes. Da sich tools für die Arbeit mit großen Datasets entwickeln, verschiebt sich die Definition von Big Data von der Ausschließlichkeit der Datengröße bis hin zur Betonung des Werts, der aus erweiterten Analysen abgeleitet wird. Obwohl diese Arten von Szenarien in der Regel große Datenmengen aufweisen.

Die Datenlandschaft hat sich im Laufe der Jahre verändert. Dadurch haben sich auch die Möglichkeiten und Erwartungen im Zusammenhang mit der Datennutzung geändert. Die Speicherkosten sind drastisch zurückgegangen, während die Methoden für die Datensammlung weiter ausgebaut werden. Einige Daten kommen in schnellem Tempo ein und erfordern eine kontinuierliche Erfassung und Beobachtung. Andere Daten kommen langsamer ein, aber in großen Blöcken und oft in Form von Jahrzehntelangen historischer Daten. Möglicherweise treten ein erweitertes Analyseproblem oder ein Problem auf, das durch maschinelles Lernen gelöst werden muss. Big Data-Architekturen sind bestrebt, diese Herausforderungen zu lösen.

Big Data-Lösungen umfassen in der Regel eine oder mehrere der folgenden Arten von Workloads:

  • Stapelverarbeitung von ruhenden Big Data-Quellen
  • Echtzeitverarbeitung von Big Data in Bewegung
  • Interaktives Durchsuchen von Big Data
  • Predictive Analytics und maschinelles Lernen

Berücksichtigen Sie Big Data-Architekturen, wenn Sie die folgenden Aufgaben ausführen müssen:

  • Speichern und Verarbeiten von Daten in Volumes, die für eine herkömmliche Datenbank zu groß sind
  • Transformieren unstrukturierter Daten für Analyse und Berichterstellung
  • Erfassen, Verarbeiten und Analysieren von ungebundenen Datenströmen in Echtzeit oder mit geringer Latenz

Komponenten einer Big Data-Architektur

Das folgende Diagramm zeigt die logischen Komponenten einer Big Data-Architektur. Einzelne Lösungen enthalten möglicherweise nicht jedes Element in diesem Diagramm.

Diagramm, das die gesamte Datenpipeline zeigt.

Die meisten Big Data-Architekturen umfassen einige oder alle der folgenden Komponenten:

  • Datenquellen: Alle Big Data-Lösungen beginnen mit einer oder mehreren Datenquellen. Beispiele sind:

    • Anwendungsdatenspeicher, z. B. relationale Datenbanken.
    • Statische Dateien, die Anwendungen erzeugen, z. B. Webserverprotokolldateien.
    • Echtzeitdatenquellen, z. B. Internet of Things (IoT)-Geräte.
  • Datenspeicher: Daten für Batchverarbeitungsvorgänge werden in der Regel in einem verteilten Dateispeicher gespeichert, der große Datenmengen in verschiedenen Formaten enthalten kann. Diese Art von Speicher wird oft als Data Lakebezeichnet. Zu den Optionen für die Implementierung dieses Speichers gehören Azure Data Lake Store, BLOB-Container in Azure Storage oder OneLake in Microsoft Fabric.

  • Stapelverarbeitung: Die Datasets sind groß, sodass eine Big Data-Lösung häufig Datendateien verarbeitet, indem lange laufende Batchaufträge verwendet werden, um Daten zu filtern, zu aggregieren und andernfalls Daten für die Analyse vorzubereiten. In der Regel umfassen diese Aufträge das Lesen von Quelldateien, die Verarbeitung und das Schreiben der Ausgabe in neue Dateien. Sie können die folgenden Optionen verwenden:

    • Führen Sie U-SQL-Aufträge in Azure Data Lake Analytics aus.

    • Verwenden Sie Hive, Pig oder eigene MapReduce-Jobs in einem Azure HDInsight Hadoop-Cluster.

    • Verwenden Sie Java-, Scala- oder Python-Programme in einem HDInsight Spark-Cluster.

    • Verwenden Sie Python, Scala oder SQL-Sprache in Azure Databricks-Notizbüchern.

    • Verwenden Sie Python, Scala oder SQL-Sprache in Fabric-Notizbüchern.

  • Echtzeitnachrichtenaufnahme: Wenn die Lösung Echtzeitquellen enthält, muss die Architektur Echtzeitnachrichten für die Datenstromverarbeitung erfassen und speichern. Sie können z. B. über einen einfachen Datenspeicher verfügen, der eingehende Nachrichten zur Verarbeitung sammelt. Viele Lösungen benötigen jedoch einen Nachrichtenaufnahmespeicher, um als Puffer für Nachrichten zu dienen und die Skalierungsverarbeitung, zuverlässige Zustellung und andere Nachrichtenwarteschlangensemantik zu unterstützen. Dieser Teil einer Streamingarchitektur wird häufig als Streampufferung bezeichnet. Zu den Optionen gehören Azure Event Hubs, Azure IoT Hub und Kafka.

  • Streamverarbeitung: Nachdem die Lösung Echtzeitnachrichten erfasst hat, muss sie verarbeitet werden, indem sie die Daten für die Analyse filtern, aggregieren und vorbereiten. Die verarbeiteten Datenströme werden dann in eine Ausgabesenke geschrieben.

    • Azure Stream Analytics ist ein verwalteter Datenstromverarbeitungsdienst, der kontinuierlich ausgeführte SQL-Abfragen verwendet, die auf ungebundenen Datenströmen ausgeführt werden.

    • Sie können Open-Source-Apache-Streamingtechnologien wie Spark Streaming in einem HDInsight-Cluster oder Azure Databricks verwenden.

    • Azure Functions ist ein serverloser Computedienst, der ereignisgesteuerten Code ausführen kann, der ideal für einfache Datenstromverarbeitungsaufgaben geeignet ist.

    • Fabric unterstützt die Echtzeitdatenverarbeitung mithilfe von Ereignisdatenströmen und Spark-Verarbeitung.

  • Maschinelles Lernen: Um vorbereitete Daten aus der Batch- oder Datenstromverarbeitung zu analysieren, können Sie Machine Learning-Algorithmen verwenden, um Modelle zu erstellen, die Ergebnisse vorhersagen oder Daten klassifizieren. Diese Modelle können auf großen Datasets trainiert werden. Sie können die resultierenden Modelle verwenden, um neue Daten zu analysieren und Vorhersagen zu erstellen.

    Verwenden Sie Azure Machine Learning , um diese Aufgaben auszuführen. Machine Learning bietet Tools zum Erstellen, Trainieren und Bereitstellen von Modellen. Alternativ können Sie vordefinierte APIs aus Azure AI-Diensten für allgemeine Machine Learning-Aufgaben wie Vision, Sprache, Sprache und Entscheidungsaufgaben verwenden.

  • Analytischer Datenspeicher: Viele Big Data-Lösungen bereiten Daten für die Analyse vor und dienen dann den verarbeiteten Daten in einem strukturierten Format, das Analysetools abfragen können. Der analytische Datenspeicher, der diese Abfragen bedient, kann ein relationales Data Warehouse im Kimball-Stil sein. Die meisten herkömmlichen Business Intelligence (BI)-Lösungen verwenden diese Art von Data Warehouse. Alternativ können Sie die Daten über eine NoSQL-Technologie mit geringer Latenz, z. B. HBase, oder eine interaktive Hive-Datenbank darstellen, die eine Metadatenabstraktion über Datendateien im verteilten Datenspeicher bereitstellt.

    • Azure Synapse Analytics ist ein verwalteter Dienst für umfangreiches, cloudbasiertes Data Warehouse.

    • HDInsight unterstützt Interactive Hive, HBase und Spark SQL. Diese Tools können Daten für die Analyse bereitstellen.

    • Fabric bietet verschiedene Datenspeicher, einschließlich SQL-Datenbanken, Data Warehouses, Lakehouses und Eventhouses. Diese Tools können Daten für die Analyse bereitstellen.

    • Azure bietet weitere analytische Datenspeicher, z. B. Azure Databricks, Azure Data Explorer, Azure SQL-Datenbank und Azure Cosmos DB.

  • Analyse und Berichterstellung: Die meisten Big Data-Lösungen bemühen sich um Einblicke in die Daten durch Analyse und Berichterstellung. Um Benutzern die Analyse der Daten zu ermöglichen, kann die Architektur eine Datenmodellierungsebene umfassen, z. B. einen mehrdimensionalen Onlineanalyse-Cube oder ein tabellarisches Datenmodell in Azure Analysis Services. Es kann auch Self-Service BI unterstützen, indem die Modellierungs- und Visualisierungstechnologien in Power BI oder Excel verwendet werden.

    Datenwissenschaftler oder Datenanalysten können auch durch interaktive Datensuche analysieren und berichten. In diesen Szenarien unterstützen viele Azure-Dienste analytische Notizbücher, z. B. Jupyter, damit diese Benutzer ihre vorhandenen Fähigkeiten mit Python oder Microsoft R verwenden können. Für die umfangreiche Datensuche können Sie Microsoft R Server entweder eigenständig oder mit Spark verwenden. Sie können auch Fabric verwenden, um Datenmodelle zu bearbeiten, die Flexibilität und Effizienz für die Datenmodellierung und -analyse bieten.

  • Orchestrierung: Die meisten Big Data-Lösungen bestehen aus wiederholten Datenverarbeitungsvorgängen, die in Workflows gekapselt sind. Die Operationen führen die folgenden Aufgaben aus:

    • Transformieren von Quelldaten
    • Verschieben von Daten zwischen mehreren Quellen und Senken
    • Laden der verarbeiteten Daten in einen analytischen Datenspeicher
    • Direktes Pushen der Ergebnisse an einen Bericht oder ein Dashboard

    Um diese Workflows zu automatisieren, verwenden Sie eine Orchestrierungstechnologie wie Azure Data Factory, Fabric oder Apache Oozie und Apache Sqoop.

Lambda-Architektur

Wenn Sie mit großen Datasets arbeiten, kann es eine lange Zeit dauern, bis der Typ der von Clients benötigten Abfragen ausgeführt wird. Diese Abfragen können nicht in Echtzeit ausgeführt werden. Und sie erfordern häufig Algorithmen wie MapReduce , die parallel über das gesamte Dataset hinweg ausgeführt werden. Die Abfrageergebnisse werden getrennt von den Rohdaten gespeichert und für die weitere Abfrage verwendet.

Ein Nachteil dieses Ansatzes besteht darin, dass es Latenzen einführt. Wenn die Verarbeitung einige Stunden dauert, gibt eine Abfrage möglicherweise Ergebnisse zurück, die mehrere Stunden alt sind. Im Idealfall sollten Sie einige Ergebnisse in Echtzeit, möglicherweise mit einem Verlust der Genauigkeit, erhalten und diese Ergebnisse mit den Ergebnissen aus batchanalyse kombinieren.

Die Lambda-Architektur behebt dieses Problem, indem zwei Pfade für den Datenfluss erstellt werden. Alle Daten, die in das System gelangen, durchlaufen die folgenden beiden Pfade:

  • Eine Batchschicht (Kaltpfad) speichert alle eingehenden Daten in ihrer roher Form und führt die Batchverarbeitung der Daten durch. Das Ergebnis dieser Verarbeitung wird als Batchansicht gespeichert.

  • Eine Geschwindigkeitsebene (Pfad für heiße Daten) analysiert Daten in Echtzeit. Diese Ebene ist für niedrige Latenz konzipiert, auf Kosten der Genauigkeit.

Die Daten der Batchebene werden einer Bereitstellungsebene zugeführt, die die Batchansicht indiziert, um effiziente Abfragen zu ermöglichen. Die Geschwindigkeitsebene aktualisiert die Bereitstellungsebene nach und nach mit den neuesten Daten.

Diagramm, das die Lambda-Architektur zeigt.

Daten, die in den heißen Pfad fließen, müssen aufgrund von Latenzanforderungen, die von der Geschwindigkeitsschicht auferlegt werden, schnell verarbeitet werden. Die schnelle Verarbeitung stellt sicher, dass Daten sofort verwendet werden können, aber ungenauigkeiten auftreten können. Betrachten Sie beispielsweise ein IoT-Szenario, in dem zahlreiche Temperatursensoren Telemetriedaten senden. Die Geschwindigkeitsschicht kann ein Gleitzeitfenster der eingehenden Daten verarbeiten.

Daten, die in den kalten Pfad fließen, unterliegen nicht den gleichen Anforderungen an niedrige Latenz. Der kalte Pfad bietet eine hohe Genauigkeitsberechnung über große Datasets hinweg, kann aber lange dauern.

Die Pfade für heiße und kalte Daten werden schließlich in der Analyseclientanwendung zusammengeführt. Wenn der Client zeitnah und potenziell weniger genaue Daten in Echtzeit anzeigen muss, erhält er sein Ergebnis aus dem heißen Pfad. Andernfalls wählt der Client Ergebnisse aus dem kalten Pfad aus, um weniger zeitgenaue, aber genauere Daten anzuzeigen. Mit anderen Worten: Der Pfad für heiße Daten liefert Daten für ein relativ kleines Zeitfenster, nach dem die Ergebnisse mit möglichst genauen Daten aus dem Pfad für kalte Daten aktualisiert werden können.

Die rohen Daten, die auf der Batchebene gespeichert sind, sind unveränderlich. Eingehende Daten werden an die vorhandenen Daten angefügt, und die vorherigen Daten werden nicht überschrieben. Änderungen am Wert eines bestimmten Datums werden als neuer Zeitstempelereignisdatensatz gespeichert. Zeitstempelereignisdatensätze ermöglichen eine erneute Komputierung zu einem beliebigen Zeitpunkt über den Verlauf der gesammelten Daten. Die Möglichkeit, die Batchansicht aus den ursprünglichen Rohdaten neu zu komppilieren, ist wichtig, da sie die Erstellung neuer Ansichten ermöglicht, während sich das System weiterentwickelt.

Kappa-Architektur

Ein Nachteil der Lambda-Architektur ist die Komplexität. Verarbeitungslogik erscheint an zwei verschiedenen Stellen, den kalten und heißen Pfaden, über verschiedene Frameworks. Dieser Prozess führt zu doppelter Berechnungslogik und komplexer Verwaltung der Architektur für beide Pfade.

Die Kappa-Architektur ist eine Alternative zur Lambda-Architektur. Es hat die gleichen grundlegenden Ziele wie die Lambda-Architektur, aber alle Daten fließen über einen einzelnen Pfad über ein Datenstromverarbeitungssystem.

Diagramm, das die Kappa-Architektur zeigt.

Ähnlich wie bei der Batchebene der Lambda-Architektur sind die Ereignisdaten unveränderlich, und alle Daten werden anstelle nur einer Teilmenge erfasst. Die Daten werden als Datenstrom von Ereignissen in ein verteiltes, fehlertolerantes einheitliches Protokoll aufgenommen. Diese Ereignisse sind sortiert, und der aktuelle Zustand eines Ereignisses wird nur durch Anfügen eines neuen Ereignisses geändert. Ähnlich wie die Geschwindigkeitsebene der Lambda-Architektur wird die gesamte Ereignisverarbeitung für den Eingabedatenstrom ausgeführt und als Echtzeitansicht beibehalten.

Wenn Sie das gesamte Dataset neu berechnen müssen (was die Batch-Ebene in der Lambda-Architektur macht), können Sie den Datenstrom erneut abspielen. Dieser Prozess verwendet in der Regel Parallelität, um die Berechnung zeitnah abzuschließen.

Lakehouse-Architektur

Ein Data Lake ist ein zentrales Datenrepository, das strukturierte Daten (Datenbanktabellen), halbstrukturierte Daten (XML-Dateien) und unstrukturierte Daten (Bilder und Audiodateien) speichert. Diese Daten befinden sich im rohen, ursprünglichen Format und erfordern kein vordefiniertes Schema. Ein Data Lake kann große Datenmengen verarbeiten, sodass er für die Verarbeitung und Analyse von Big Data geeignet ist. Data Lakes verwenden kostengünstige Speicherlösungen, die eine kostengünstige Möglichkeit zum Speichern großer Datenmengen bieten.

Ein Data Warehouse ist ein zentrales Repository, das strukturierte und halbstrukturierte Daten für Berichterstellungs-, Analyse- und BI-Zwecke speichert. Data Warehouses können Ihnen dabei helfen, fundierte Entscheidungen zu treffen, indem Sie eine konsistente und umfassende Ansicht Ihrer Daten bereitstellen.

Die Lakehouse-Architektur kombiniert die besten Elemente von Data Lakes und Data Warehouses. Das Muster zielt darauf ab, eine einheitliche Plattform bereitzustellen, die strukturierte und unstrukturierte Daten unterstützt, was eine effiziente Datenverwaltung und -analyse ermöglicht. Diese Systeme verwenden in der Regel kostengünstigen Cloudspeicher in offenen Formaten, z. B. Parquet oder Optimized Row Columnar, um rohe und verarbeitete Daten zu speichern.

Ein Diagramm, das einen Datenfluss von der Quelle zur Transformations- und Speicherphase und dann zur Nutzungs- und Visualisierungsphase zeigt.

Zu den gängigen Anwendungsfällen für eine Seehausarchitektur gehören:

  • Einheitliche Analysen: Ideal für Organisationen, die eine einzige Plattform für historische und Echtzeit-Datenanalysen benötigen

  • Maschinelles Lernen: Unterstützt erweiterte Analyse- und Machine Learning-Workloads durch Integration von Datenverwaltungsfunktionen

  • Datenverwaltung: Stellt die Einhaltung von Standards und die Datenqualität bei großen Datensätzen sicher

Iot

Das IoT stellt jedes Gerät dar, das eine Verbindung mit dem Internet herstellt und Daten sendet oder empfängt. IoT-Geräte umfassen PCs, Mobiltelefone, Smart Watches, intelligente Thermometer, intelligente Kühlschränke, verbundene Autos und Herzüberwachungsimplantate.

Die Anzahl der verbundenen Geräte wächst jeden Tag, und die Menge der Daten, die sie generieren. Diese Daten werden häufig in Umgebungen gesammelt, die erhebliche Einschränkungen und manchmal hohe Latenz aufweisen. In anderen Fällen senden Tausende oder Millionen von Geräten Daten aus Umgebungen mit geringer Latenz, die eine schnelle Aufnahme und Verarbeitung erfordern. Sie müssen die Behandlung dieser Einschränkungen und eindeutigen Anforderungen ordnungsgemäß planen.

Ereignisgesteuerte Architekturen sind von zentraler Bedeutung für IoT-Lösungen. Das folgende Diagramm zeigt eine logische Architektur für IoT. Das Diagramm hebt die Ereignisstreamingkomponenten der Architektur hervor.

Diagramm, das die IoT-Architektur zeigt.

Das Cloudgateway erfasst Geräteereignisse an der Cloudgrenze mithilfe eines zuverlässigen Messagingsystems mit niedriger Latenz.

Geräte senden Ereignisse möglicherweise direkt an das Cloudgateway oder über ein Feldgateway. Ein Bereichsgateway ist ein spezialisiertes Gerät oder Softwareprogramm, das sich üblicherweise am gleichen Ort befindet wie die Geräte. Es empfängt Ereignisse und leitet sie an das Cloudgateway weiter. Das Bereichsgateway kann auch Vorverarbeitungsfunktionen für die Geräteereignisse ausführen, z. B. Filterungs-, Aggregations- oder Protokolltransformationsfunktionen.

Nach der Erfassung durchlaufen Ereignisse einen oder mehrere Datenstromprozessoren , die die Daten an Ziele weiterleiten können, z. B. Speicher, oder Analysen und andere Verarbeitungen durchführen können.

Zu den gängigen Verarbeitungstypen gehören:

  • Schreiben von Ereignisdaten in einen Cold Storage zur Archivierung oder Batchanalyse.

  • Analyse des langsamsten Pfads. Analysieren Sie den Ereignisdatenstrom in nahezu Echtzeit, um Anomalien zu erkennen, Muster über rollzeitfenster zu erkennen oder Warnungen auszulösen, wenn eine bestimmte Bedingung im Datenstrom auftritt.

  • Verarbeitung bestimmter Arten nicht telemetriebezogener Nachrichten von Geräten (etwa Benachrichtigungen und Warnungen).

  • Maschinelles Lernen.

Im vorherigen Diagramm sind die grauen Felder Komponenten eines IoT-Systems, die nicht direkt mit dem Ereignisstreaming zusammenhängen. Sie sind im Diagramm zur Vollständigkeit enthalten.

  • Die Geräteregistrierung ist eine Datenbank der bereitgestellten Geräte, einschließlich der Geräte-IDs und in der Regel Gerätemetadaten, z. B. Standort.

  • Die Bereitstellungs-API ist eine gemeinsame externe Schnittstelle für die Bereitstellung und Registrierung neuer Geräte.

  • Bei einigen IoT-Lösungen können Befehls- und Kontrollnachrichten an Geräte gesendet werden.

Nächste Schritte