Bearbeiten

Share via


Kosteneinsparungen durch HTAP mit Azure SQL

Azure Databricks
Azure Event Hubs
Azure-Funktionen
Azure SQL-Datenbank
Azure Stream Analytics

In diesem Artikel wird eine Lösung für eine HTAP-Architektur (Hybrid Transaction/Analytical Processing) beschrieben. Für die Verarbeitung von Transaktionen verwenden die meisten Systeme Betriebsworkloads mit geringer Latenz und hohem Volumen. Für Analysen sind Workloads mit höherer Latenz und geringerem Volumen typischer. HTAP-Architekturen bieten eine Lösung für beide Workloadtypen. Durch die Verwendung von In-Memory-Datenbanken konsolidiert HTAP Technologien, um Abfragen großer Datenmengen zu optimieren.

Aufbau

Architecture diagram showing how data flows through an HTAP solution with Azure SQL Database at its center.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Event Hubs erfasst Telemetriedaten aus lokalen Einrichtungen.
  2. Blob Storage erfasst die Event Hubs-Daten und speichert sie für zukünftige Analysen.
  3. Stream Analytics verarbeitet die Daten. Im langsamsten Pfad der Lösung fragt Azure Cosmos DB Daten aus den letzten zwei Monaten ab. Azure Cosmos DB garantiert Antwortzeiten im einstelligen Millisekundenbereich.
  4. Wenn während der Datenverarbeitung oder -speicherung Fehler auftreten, protokolliert das System sie in Azure Table Storage.
  5. Azure Functions verwendet die Clientbibliothek der elastischen Datenbank der SQL-Datenbank, um die Daten zu archivieren. Dieser Prozess partitioniert die Daten, um Einfügevorgänge zu optimieren. Die Lösung bildet Shards, indem die Daten horizontal auf mehrere Azure SQL-Datenbanken verteilt werden. Jede Datenbank verwendet einen partitionierten, gruppierten, spaltenbasierten Index, um Tabellen zu komprimieren. Die Antwortzeiten für diesen kalten Pfad liegen in der Regel unter einer Sekunde.
  6. Ein Azure Databricks-Cluster verarbeitet die Blob Storage-Daten erneut. Insbesondere deserialisiert Azure Databricks Avro-Dateien und sendet die Daten zur optionalen Analyse an Event Hubs.

Komponenten

  • Event Hubs ist eine vollständig verwaltete Streamingplattform für Big Data.

  • Stream Analytics bietet serverlose Datenstromverarbeitung in Echtzeit, indem Abfragen in der Cloud und auf Edge-Geräten ausgeführt werden.

  • Azure Cosmos DB ist eine global verteilte Datenbank mit Unterstützung mehrerer Modelle. Mit Azure Cosmos DB können Sie Durchsatz und Speicher für Ihre Lösungen elastisch voneinander über eine beliebige Anzahl von geografischen Regionen skalieren.

  • Tabellenspeicher (Table Storage) ist Bestandteil von Azure Storage. Dieser Dienst speichert strukturierte NoSQL-Daten in der Cloud.

  • SQL-Datenbank ist ein relationaler Datenbankdienst, der Teil der Azure SQL-Familie ist. Als vollständig verwalteter Dienst übernimmt SQL-Datenbank die Verwaltungsfunktionen für Datenbanken. SQL-Datenbank bietet außerdem KI-gestützte, automatisierte Features, die Leistung und Dauerhaftigkeit optimieren. Serverloses Computing und Hyperscale-Speicheroptionen skalieren Ressourcen bei Bedarf automatisch.

  • Tools für elastische Datenbanken unterstützen Sie beim Erstellen und Verwalten von aufskalierten Datenbanken. Dieses Feature von SQL-Datenbank umfasst eine Clientbibliothek, die Sie zum Entwickeln von Shardanwendungen verwenden können.

  • Blob Storage ist ein Dienst, der Bestandteil von Storage ist. Blob Storage bietet einen optimierten Cloudobjektspeicher für große Mengen unstrukturierter Daten.

  • Azure Databricks ist eine Datenanalyseplattform. Von den vollständig verwalteten Spark-Clustern der Plattform werden große Datenströme aus mehreren Quellen verarbeitet. Azure Databricks bereinigt und transformiert strukturlose Datensätze. Die verarbeiteten Daten werden mit strukturierten Daten aus Betriebsdatenbanken oder Data Warehouses kombiniert. Azure Databricks trainiert außerdem skalierbare Machine-Learning- und Deep-Learning-Modelle und stellt sie bereit.

  • Power BI ist eine Sammlung von Analysediensten und -Apps. Sie können Power BI verwenden, um eine Verbindung mit nicht verknüpften Datenquellen herzustellen und diese anzuzeigen.

Szenariodetails

Azure SQL-Datenbank bildet den Kern dieser HTAP-Lösung. Der Ansatz unterteilt die Daten in horizontal verteilte Datenbanken oder Shards. Weitere Hauptkomponenten umfassen:

  • Azure Event Hubs für die Datenerfassung.
  • Azure Stream Analytics für die Datenverarbeitung.
  • Azure Functions für die Partitionierung.
  • Azure Blob Storage für die Ereignisspeicherung.

Zusammen stellen diese Dienste eine HTAP-Lösung bereit, die Folgendes ermöglicht:

  • Kosten werden verringert, indem schneller Zugriff auf Erkenntnisse zu archivierten Daten bereitgestellt wird. Latenzen auf dem kalten Pfad werden mit dieser Lösung von Stunden auf weniger als Sekunden verringert.
  • Die Archivierung wird durch automatisches Hinzufügen von Daten zum langfristigen Speicher vereinfacht.
  • Maximiert die Skalierbarkeit durch das Sharding von Daten und die Verwendung einer elastischen Datenbank.

Mögliche Anwendungsfälle

Diese Lösung gilt für Organisationen, die Zugriff auf große Mengen von Verlaufsdaten mit geringer Latenz benötigen. Beispiele:

  • Onlinehändler, die auf historische Kunden- und demografische Informationen zugreifen, um personalisierte Erfahrungen zu bieten.
  • Energieanbieter, die Gerätedaten mit Analysen kombinieren, um intelligente Stromnetze zu verwalten.
  • Unternehmen, die Betrugsprävention durchführen, indem sie Muster in historischen und Echtzeitdaten identifizieren. Dieses Szenario gilt für die Finanzbranche und Finanzdienstleister.
  • Hersteller, die sich auf die Verarbeitung von Ereignissen in Echtzeit- verlassen, um Probleme zu erkennen. Dieses Szenario gilt für die Fertigungsindustrie.

Ü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.

Bei dieser Lösung wird Folgendes angenommen:

  • Nachdem Sie die Daten archiviert haben, müssen Sie sie weder aktualisieren noch löschen.
  • Das Datenschema ändert sich im Laufe der Zeit nur minimal.

Berücksichtigen Sie beim Implementieren dieser Lösung folgende Aspekte:

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“.

  • So optimieren Sie die Leistung

    • Kombinieren sie Sharding mit Tabellenkomprimierung.
    • Partitionieren Sie Tabellen nach Datum. Jeder Shard enthält Daten aus einem anderen Zeitraum.
    • Richten Sie Indizes an der Datumspartitionierung aus.
  • Um auf mehr als 50.000 Nachrichten pro Sekunde hochzuskalieren, verwenden Sie die Clientbibliothek der elastischen Datenbank aus Functions für Folgendes:

    • Gruppieren von Nachrichten nach Partition.
    • Aufteilen von insert-Anweisungen in kleine Batches.

    Dieser Ansatz eignet sich für Systeme, die 10 Standard S3-Datenbanken vom Typ SQL-Datenbank verwenden. Um einen spaltenbasierten Index zu hosten, benötigen Sie mindestens den Standard-Tarif.

  • Für eine optimale Leistung bei Einfügevorgängen verwenden Sie Tabellenwertparameter mit gespeicherten Prozeduren.

  • Wenn Sie die CREATE COLUMNSTORE INDEX-Anweisung verwenden, verwenden Sie die Option COLUMNSTORE_ARCHIVE. Diese Option bietet die höchstmögliche Komprimierungsstufe. Eine hohe Komprimierungsstufe erhöht die Zeit, die Sie zum Speichern und Abrufen von Daten benötigen. Die resultierende E/A-Leistung sollte jedoch immer noch zufriedenstellend sein.

Skalierbarkeit

  • Verwenden Sie Shards, damit Sie Ihr System erweitern können, um anspruchsvolle Workloads zu erfüllen. Wenn Sie Sharddatenbanken verwenden, können Sie Shards hinzufügen oder entfernen, um auf- oder abzuskalieren. Mit dem Tool zum Aufteilen und Zusammenführen (Split-Merge) können Sie Partitionen aufteilen und zusammenführen.
  • Nutzen Sie die Skalierungsfunktionalität in Functions. Erstellen Sie Funktionen, die basierend auf der CPU- und Arbeitsspeicherauslastung skaliert werden. Konfigurieren Sie die Funktionen so, dass neue Instanzen gestartet werden, um unerwartete Workloads zu bewältigen.
  • Erhöhen Sie die Größe Ihres Azure Databricks-Clusters, um die erneute Verarbeitung von Avro-Dateien hochzuskalieren. Die Lösung verwendet Azure Databricks, um Avro-Dateien erneut zu verarbeiten, die von Blob Storage erfasst wurden. Spark-Cluster in Azure Databricks können den gesamten Pfad der Avro-Datei oder einen Teil davon verarbeiten. Durch das Erhöhen der Azure Databricks-Clustergröße können Sie alle Daten innerhalb eines erforderlichen Zeitrahmens erneut verarbeiten. Um ein erhöhtes Volumen von Azure Databricks zu verarbeiten, fügen Sie dem Namespace nach Bedarf Instanzen von Event Hubs hinzu.

Resilienz

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“.

Verwenden Sie den Azure-Preisrechner, um die Kosten für eine Umsetzung dieses Szenarios zu ermitteln. Dabei werden alle Azure-Dienste vorkonfiguriert. Passen Sie die Parameter so an, dass sie dem Datenverkehr, dessen Empfang Sie erwarten, entsprechen.

Die folgende Tabelle enthält Beispielkostenprofile für unterschiedliche Mengen von 1-KB-Nachrichten:

Size Nachrichtenvolume Profil
Klein Weniger als 500 Nachrichten pro Sekunde Kleines Profil
Medium 1\.500 Nachrichten pro Sekunde Mittleres Profil
Large Mehr als 5.000 Nachrichten pro Sekunde Großes Profil

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Nächste Schritte