Erfolgreiche Synapse-Implementierungsmethode: Auswerten des Spark-Poolentwurfs
Hinweis
Dieser Artikel gehört zu der Artikelserie Erfolg der Azure Synapse-Implementierung nach Design. Eine Übersicht über diese Serie finden Sie unter Azure Synapse-Implementierungserfolg nach Design.
Erfahren Sie, wie Sie Ihren Apache Spark-Poolentwurf auswerten, um Probleme zu erkennen und zu überprüfen, ob er Richtlinien und Anforderungen erfüllt. Indem Sie den Entwurf auswerten, bevor die Lösungsentwicklung beginnt, können Sie Blockaden und unerwartete Entwurfsänderungen vermeiden. Auf diese Weise schützen Sie die Zeitachse und das Budget des Projekts.
Apache Spark in Synapse stellt die parallele Datenverarbeitung von Apache Spark in Azure Synapse Analytics bereit. Diese Auswertung gibt Ihnen Hinweise darauf, wann Apache Spark in Azure Synapse die richtige Lösung für Ihre Workload darstellt – oder nicht. Sie beschreibt Punkte, die Sie bei der Auswertung Ihrer Lösungsentwurfelemente, die Spark-Pools einbeziehen, berücksichtigen sollten.
Fit/GAP-Analyse
Wenn Sie planen, Spark-Pools mit Azure Synapse zu implementieren, sollten Sie zunächst sicherstellen, dass sie für Ihre Workload am besten geeignet sind.
Beachten Sie die folgenden Punkte.
- Erfordert Ihre Workload Datentechnik/Datenaufbereitung?
- Apache Spark eignet sich am besten für Workloads, die Folgendes erfordern:
- Datenbereinigung
- Transformation von teilweise strukturierten Daten wie XML in relationale Daten
- Komplexe Freitexttransformation, z. B. Fuzzyübereinstimmung oder Verarbeitung natürlicher Sprache (NLP)
- Datenaufbereitung für maschinelles Lernen (ML)
- Apache Spark eignet sich am besten für Workloads, die Folgendes erfordern:
- Umfasst Ihr Workload für Datentechnik/Datenaufbereitung komplexe oder einfache Transformationen? Und sind Sie auf der Suche nach einem Ansatz mit wenig Code oder ohne Code?
- Für einfache Transformationen, wie das Entfernen von Spalten, das Ändern von Spaltendatentypen oder das Zusammenführen von Datasets, sollten Sie eine Azure Synapse-Pipeline mithilfe einer Datenflussaktivität erstellen.
- Datenflussaktivitäten bieten einen Ansatz mit wenig Code oder ohne Code zur Aufbereitung Ihrer Daten.
- Erfordert Ihre Workload Machine Learning für Big Data?
- Apache Spark eignet sich gut für große Datasets, die für ML verwendet werden. Wenn Sie kleine Datasets verwenden, sollten Sie Azure Machine Learning als Computedienst verwenden.
- Möchten Sie die Datenuntersuchung oder Ad-hoc-Abfrageanalyse für Big Data durchführen?
- Apache Spark in Azure Synapse bietet Python/Scala/SQL/.NET-basierte Datenuntersuchung. Wenn Sie jedoch eine vollständige Transact-SQL-Erfahrung (T-SQL) benötigen, sollten Sie einen serverlosen SQL-Pool verwenden.
- Verfügen Sie über eine aktuelle Spark/Hadoop-Workload und benötigen Sie eine einheitliche Big Data-Plattform?
- Azure Synapse bietet eine einheitliche analytische Plattform für die Arbeit mit Big Data. Es gibt Spark- und serverlose SQL-Pools für Ad-hoc-Abfragen und den dedizierten SQL-Pool für die Berichterstellung und die Bereitstellung von Daten.
- Der Wechsel von einer Spark/Hadoop-Workload aus einer lokalen (oder einer anderen Cloudumgebung) kann ein gewisses Refactoring erfordern, das Sie in Betracht ziehen sollten.
- Wenn Sie nach einem Lift & Shift-Ansatz für Ihre Apache Big Data-Umgebung von einem lokalen Standort in die Cloud suchen und eine strikte Vereinbarung zum Servicelevel (SLA) für die Datentechnik einhalten müssen, sollten Sie Azure HDInsight verwenden.
Überlegungen zur Architektur
Um sicherzustellen, dass Ihr Apache Spark-Pool Ihre Anforderungen an erstklassige Betriebsprozesse, Leistung, Zuverlässigkeit und Sicherheit erfüllt, müssen Sie in Ihrer Architektur einige Schlüsselbereiche überprüfen.
Optimaler Betrieb
Für erstklassige Betriebsprozesse bewerten Sie die folgenden Punkte.
- Umgebung: Gestalten Sie bei der Konfiguration Ihrer Umgebung Ihren Spark-Pool so, dass Sie Features wie Autoskalierung und dynamische Zuordnung nutzen können. Um die Kosten zu verringern, sollten Sie auch das Feature automatische Pause aktivieren.
- Paketverwaltung: Bestimmen Sie, ob die erforderlichen Apache Spark-Bibliotheken auf Arbeitsbereichs-, Pool- oder Sitzungsebene verwendet werden sollen. Weitere Informationen finden Sie unter Verwalten von Bibliotheken für Apache Spark in Azure Synapse Analytics.
- Überwachung: Apache Spark in Azure Synapse bietet integrierte Überwachung von Spark-Pools und Anwendungen bei der Erstellung jeder Spark-Sitzung. Erwägen Sie auch die Implementierung der Anwendungsüberwachung mit Azure Log Analytics oder Prometheus und Grafana, die Sie zur Visualisierung von Metriken und Protokollen verwenden können.
Effiziente Leistung
Bewerten Sie für die Leistungseffizienz die folgenden Punkte.
- Dateigröße und Dateityp: Die Dateigröße und die Anzahl der Dateien haben Auswirkungen auf die Leistung. Entwerfen Sie die Architektur, um sicherzustellen, dass die Dateitypen für die native Erfassung mit Apache Spark geeignet sind. Bevorzugen Sie außerdem die Verwendung einer geringen Anzahl großer Dateien gegenüber einer großen Anzahl kleiner Dateien.
- Partitionierung: Geben Sie an, ob für Ihre Workload eine Partitionierung auf Ordner- und/oder Dateiebene implementiert werden soll. Ordnerpartitionen begrenzen die Menge der zu suchenden und zu lesenden Daten. Dateipartitionen reduzieren die Menge der zu durchsuchenden Daten innerhalb der Datei – gelten aber nur für bestimmte Dateiformate, die in der anfänglichen Architektur berücksichtigt werden sollten.
Zuverlässigkeit
Bewerten Sie hinsichtlich der Zuverlässigkeit die folgenden Punkte.
- Verfügbarkeit: Spark-Pools haben eine Startzeit von drei bis vier Minuten. Es könnte länger dauern, wenn viele Bibliotheken zu installieren sind. Wenn Sie Batch- oder Streaming-Workloads entwerfen, ermitteln Sie die SLA für die Ausführung des Auftrags anhand Ihrer Bewertungsinformationen und bestimmen, welche Architektur Ihren Anforderungen am besten entspricht. Berücksichtigen Sie auch, dass jede Ausführung eines Auftrags einen neuen Spark-Poolcluster erstellt.
- Prüfpunktausführung: Apache Spark-Streaming verfügt über einen integrierten Mechanismus zur Prüfpunktausführung. Die Prüfpunktausführung ermöglicht es Ihrem Datenstrom, bei einem Ausfall eines Knotens in Ihrem Pool vom letzten verarbeiteten Eintrag auszugehen.
Sicherheit
Bewerten Sie die folgenden Punkte im Hinblick auf die Sicherheit.
- Datenzugriff: Der Datenzugriff muss für das ADLS-Konto (Azure Data Lake Storage) berücksichtigt werden, das mit dem Synapse-Arbeitsbereich verknüpft ist. Bestimmen Sie außerdem die Sicherheitsebenen, die für den Zugriff auf Daten erforderlich sind, die sich nicht in der Azure Synapse-Umgebung befinden. Beziehen Sie sich auf die Informationen, die Sie in der Bewertungsphase gesammelt haben.
- Netzwerke: Überprüfen Sie die Netzwerkinformationen und -anforderungen, die Sie während Ihrer Bewertung gesammelt haben. Wenn der Entwurf ein verwaltetes virtuelles Netzwerk mit Azure Synapse vorsieht, bedenken Sie, welche Auswirkungen diese Anforderung auf Apache Spark in Azure Synapse haben wird. Eine Folge davon ist, dass Sie Spark SQL beim Zugriff auf die Daten nicht verwenden können.
Nächste Schritte
Im nächsten Artikel der Serie Mit dem richtigen Azure Synapse-Entwurf zum Erfolg erfahren Sie, wie Sie Ihren modernen Data Warehouse-Projektplan vor Projektbeginn auswerten können.
Weitere Informationen zu bewährten Methoden finden Sie unter Leitfaden zu Apache Spark für Azure Synapse.