AWS Glue ist ein vollständig verwaltetes Tool zum Extrahieren, Transformieren und Laden ( ETL ), das den zeitaufwändigen Datenvorbereitungsprozess für die anschließende Datenanalyse automatisiert. AWS Glue erkennt und katalogisiert Daten automatisch mit AWS Glue Data Catalog, empfiehlt und generiert Python- oder Scala-Code für die Quelldatentransformation, bietet flexibel geplante Exploration und transformiert und lädt Jobs basierend auf Zeit oder Ereignissen in einer vollständig verwalteten, skalierbaren Apache Spark-Umgebung zum Laden von Daten in ein Datenziel. Der AWS Glue-Dienst bietet auch Anpassung, Orchestrierung und Überwachung komplexer Datenströme.
AWS Glue-Architektur
AWS-Managementkonsole
- Definiert AWS Glue-Objekte wie Crawler, Jobs, Tabellen und Verbindungen
- Richtet ein Layout für die Arbeit von Crawlern ein
- Entwirft Ereignisse und Zeitpläne für Job-Trigger
- Sucht und filtert AWS Glue-Objekte
- Bearbeitet Skripte für Transformationsszenarien
AWS Glue-Datenkatalog
AWS Glue Data Catalog bietet eine zentralisierte, einheitliche Metadatenspeicherung zum Verfolgen, Abfragen und Transformieren von Daten mithilfe gespeicherter Metadaten.
Erstellen eines Cloud Data Lake mit Dremio und AWS Glue
Tutorial lesen
Um mehr darüber zu erfahren, wie wir und zugelassene Dritte Cookies auf unseren Websites verwenden, lesen Sie bitte unseren AWS-Cookie-Hinweis.
Crawler und Klassifikatoren scannen Daten aus verschiedenen Quellen, klassifizieren Daten, erkennen Schemainformationen und speichern Metadaten automatisch im AWS Glue Data Catalog.
AWS ETL-Operationen
Der ETL-Programmkern bietet Python- oder Scala-Codegenerierung für die Datenbereinigung , -anreicherung, Duplikatsentfernung und andere komplexe Datentransformationsaufgaben.
Job-Scheduling-System
Ein flexibles Planungssystem startet Aufträge basierend auf verschiedenen Ereignissen oder nach Zeitplan.
Kernfunktionen und -Komponenten von AWS Glue
AWS Glue-Datenkatalog
AWS Glue Data Catalog ist ein Metadaten-Repository , das Verweise auf Ihre Quell- und Zieldaten speichert. Der Data Catalog ist mit Apache Hive Metastore kompatibel und ein vorgefertigter Ersatz für Hive Metastore-Anwendungen für Big Data, die im Amazon EMR-Dienst verwendet werden.
AWS Glue Data Catalog verwendet Metadatentabellen zum Speichern Ihrer Daten. Sie hängen die Tabelle an die Datenbank an, wenn Sie sie im Datenkatalog festlegen. Eine Tabelle kann in einer Datenbank gespeichert werden und jede Tabelle stellt nur einen einzelnen Datenspeicher dar.
In diesen Tabellen können Daten aus verschiedenen Datenspeichern wie Amazon S3 und Amazon RDS definiert werden. Wenn Sie eine Tabelle manuell erstellen oder einen Crawler ausführen, wird die Datenbank erstellt. In der AWS Glue-Verwaltungskonsole können Sie Tabellen aus ausgewählten Datenbanken anzeigen, Datenbankbeschreibungen oder deren Namen bearbeiten und Datenbanken löschen. Sie können Datenbanken und Tabellen im Datenkatalog auch über die AWS Glue-API und die AWS-Befehlszeilenschnittstelle (CLI) verwalten.
Um Data Catalog- Objekte wie Datenbanken, Tabellen, Partitionen, Crawler, Klassifizierer und Verbindungen zu definieren , können Sie AWS CloudFormation-Vorlagen verwenden, die mit AWS Glue kompatibel sind. Der Data Catalog kann auch Ressourcenlinks zu lokalen oder freigegebenen Datenbanken und Tabellenressourcenlinks speichern. Sie können diese Ressourcenlinks in Fällen verwenden, in denen Sie Datenbanknamen verwenden.
Der Datenkatalog enthält auch Informationen zu Verbindungen zu bestimmten Datenspeichern, eine Funktion namens AWS Glue Connections. Connections speichert URI-Zeichenfolgen, Autorisierungsdaten, Informationen zur virtuellen privaten Cloud usw.
Automatische Schemaerkennung
Wenn Sie Crawler ausführen, werden die Klassifikatoren ausgelöst. Sie können integrierte Klassifikatoren verwenden oder benutzerdefinierte Klassifikatoren einrichten, um das entsprechende Schema zum Kategorisieren Ihrer Datenquellen anzugeben. Benutzerdefinierte Klassifikatoren werden zuerst in der von Ihnen angegebenen Reihenfolge ausgeführt. Wenn ein benutzerdefinierter Klassifikator das Format Ihrer Daten erkennt, generiert er automatisch ein Schema. Andernfalls werden integrierte Klassifikatoren aufgerufen, um das Schema, das Format und die mit den Rohdaten verknüpften Eigenschaften zu definieren . Anschließend gruppieren Crawler die Daten in Tabellen oder Partitionen und schreiben Metadaten in den Datenkatalog. In der Konfiguration können Sie angeben, wie der Crawler Tabellen oder Partitionen hinzufügt, löscht oder aktualisiert. Wenn der Crawler Amazon S3 scannt und mehrere Ordner in einem Bucket erkennt und die Schemata auf Ordnerebene ähnlich sind, erstellt er zwei oder mehr Partitionen in einer Tabelle anstelle von separaten Tabellen.
Um das Tabellenschema zu aktualisieren, können Sie den Crawler mit einer aktualisierten Konfiguration erneut ausführen oder ETL-Jobskripte mit Parametern ausführen, die Tabellenschemaaktualisierungen bereitstellen.
AWS Glue bietet Klassifizierer für verschiedene Formate, darunter CSV, JSON, XML, Weblogs (Apache-Protokolle, Microsoft-Protokolle, Linux-Kernel-Protokolle usw.) und viele Datenbanksysteme (MySQL, PostgreSQL, Oracle Database usw.). Komprimierte Dateien können nur in Formaten wie ZIP, BZIP, GZIP und LZ4 klassifiziert werden.
Codegenerierung und -anpassung
Wenn Sie einen Job in einer Konsole erstellen, geben Sie eine Datenquelle mit einer oder mehreren erforderlichen Verbindungen und Datenzielen an, die in Tabellen dargestellt werden, die im Datenkatalog definiert sind. Sie verweisen auch auf die Jobverarbeitungsumgebung, indem Sie Argumente angeben und Szenarien beschreiben, in denen Jobs aufgerufen werden. Basierend auf Ihren Eingaben generiert AWS Glue automatisch PySpark- oder Scala-Skripte, um ETL-Aufgaben auszuführen. Sie können auch Ihre eigenen Skripte mit AWS Glue ETL-Bibliotheken schreiben, vorhandene Skripte in der integrierten AWS-Konsole bearbeiten und an Ihre Geschäftsanforderungen anpassen sowie Skripte aus externen Quellen importieren, z. B. von GitHub. AWS Glue bietet flexible Tools zum Testen, Bearbeiten und Ausführen dieser Skripte. Sie können Python oder Scala zum Schreiben von Skripten verwenden. Darüber hinaus können Sie auch Ihre eigenen Bibliotheken und Jar-Dateien in die AWS Glue ETL-Aufgabe importieren.
AWS Glue bietet eine spezielle Umgebung – bekannt als Entwicklungsendpunkt – zum Entwickeln und Testen, Extrahieren, Transformieren und Laden (ETL) von Skripten. Um einen Entwicklungsendpunkt zu erstellen, müssen Sie Netzwerkparameter angeben, um sicher auf Datenspeicher zugreifen zu können. Später können Sie mithilfe des sogenannten Notebooks interaktiv neue Funktionen erstellen, debuggen, testen und hinzufügen, um Skripte zu generieren, die Ihren Anforderungen zum Ausführen von ETL-Aufgaben entsprechen. Sie können Entwicklungsendpunkte in der AWS Glue-Konsole erstellen, bearbeiten und löschen oder die AWS Glue-API verwenden. Datenvorbereitung (Bereinigen und Deduplizieren)
AWS Glue bietet Datentransformationsaufgaben basierend auf Lösungen für maschinelles Lernen (ML). Derzeit ist nur die FindMatches-Transformation verfügbar. Die ML-Transformation löst Probleme mit Datensatzbindung und Deduplizierung. Sie können beispielsweise Kundendatensätze über verschiedene Datenbanken hinweg verknüpfen, selbst in Fällen, in denen Datensätze unterschiedliche Einträge haben und nicht genau übereinstimmen (falsch geschriebene Namen, nicht übereinstimmende Adressen, falsche Daten usw.). Die ML-Transformation findet auch doppelte Datensätze, bei denen die Datensätze keinen gemeinsamen eindeutigen Schlüssel haben. Sie können Ihre Datenquelle mit einem FindMatches-Transformationsjob bereinigen, der Duplikate finden kann. Sie können Ihren Beispieldatensatz als übereinstimmend und nicht übereinstimmend kennzeichnen, um die ML-Transformation zu „lehren“. Sie können die gekennzeichnete Datei auch herunterladen, kennzeichnen und hochladen, um eine bessere Transformation zu erstellen. Mit diesem Tool können Sie auch importieren, exportieren, Beschriftungen generieren und die Qualität der ML-Transformation einschätzen. ML-Transformationen können gespeichert und später im ETL-Skript ausgeführt werden.
API für Entwickler
Die AWS Glue API bietet Entwicklern zusätzliche Tools, um effektiv mit dem AWS Glue-Dienst zu arbeiten. Sie können mit AWS Glue über verschiedene Programmiersprachen oder CLI interagieren. Die AWS Glue API bietet Funktionen zum Erstellen, Löschen und Auflisten von Datenbanken, zum Ausführen von Operationen mit Tabellen, zum Festlegen von Zeitplänen für Crawler und Klassifizierer, zum Verwalten von Jobs und Triggern, zum Steuern von Workflows, zum Testen benutzerdefinierter Entwicklungsendpunkte und zum Ausführen von ML-Transformationsaufgaben. Die AWS Glue API verfügt außerdem über einen Ausnahmeabschnitt, mit dem Sie das Problem lokalisieren und beheben können.
Job-Scheduler
Um ETL-Jobs manuell oder automatisch zu starten, können Sie Data Catalog-Objekte erstellen, die als Trigger bezeichnet werden. Sie können eine Kette von jobabhängigen Triggern basierend auf dem Zeitplan, einer Kombination von Ereignissen oder auf Anfrage festlegen. Zeitbasierte Zeitpläne verwenden eine Unix-ähnliche Cron-Syntax. Sie können einen Wochentag, eine Uhrzeit und einen Tag im Monat angeben, um einen ETL-Job oder eine Reihe von Jobs auszulösen. Sie können Einschränkungen für Job-Trigger definieren. Sie müssen auch die Funktionen und Grenzen von Cron berücksichtigen. Auf Ereignissen basierende Job-Trigger werden aktiviert, wenn sie eine Liste von Bedingungen erfüllen. Sie können den Status für vorherige Jobs wie Erfolg, Zeitüberschreitung und Fehler als Bedingung zum Auslösen eines ETL-Jobs angeben. Sie können Trigger oder eine Reihe von Triggern für ETL- Jobs hinzufügen und diese Trigger mithilfe der AWS Glue-Konsole, der AWS Glue-API oder der AWS CLI aktivieren und deaktivieren.
Fähigkeit, mit Datenströmen zu arbeiten
AWS Glue unterstützt ETL-Operationen mit Datenströmen von Amazon Kinesis Data Streams und Amazon Managed Streaming für Apache Kafka (Amazon MSK) und lädt die Ergebnisse in Amazon S3-Datenseen oder JDBC-Datenspeicher. Fügen Sie einfach Datenströme zum Datenkatalog hinzu und wählen Sie ihn dann als Datenquelle aus, wenn Sie ETL-Jobs einrichten.
Unterstützte Datenquellen
AWS Glue bietet integrierte Unterstützung für Daten, die in Amazon Aurora, Amazon RDS für MySQL, Amazon RDS für Oracle, Amazon RDS für PostgreSQL, Amazon RDS für SQL Server, Amazon Redshift, DynamoDB und Amazon S3 gespeichert sind. Es unterstützt auch MySQL-, Oracle-, Microsoft SQL Server-Datenbanken und PostgreSQL auf Amazon Virtual Private Cloud (Amazon VPC). AWS Glues unterstützt auch Datenströme von Amazon MSK, Amazon Kinesis Data Streams und Apache Kafka. Sie können Skripte mit Python oder Scala erstellen und benutzerdefinierte Bibliotheken und Jar-Dateien in AWS Glues ETL-Jobs importieren, um Zugriff auf Datenquellen zu erhalten, die keine integrierte AWS Glues-Unterstützung haben.
Vorteile von AWS Glue
- Serverlos und skalierbar – AWS Glues ist ein vollständig verwalteter Dienst, der je nach Arbeitslast hoch- oder herunterskaliert wird, wodurch die Notwendigkeit der Infrastrukturverwaltung entfällt und die Kosten gesenkt werden.
- Einfach zu verwenden – AWS Glues bietet eine benutzerfreundliche Oberfläche zum Definieren und Ausführen von ETL-Jobs und ist damit für Entwickler und Dateningenieure aller Fähigkeitsstufen zugänglich.
- Zentralisierter Metadatenkatalog – Der AWS Glues-Datenkatalog bietet einen zentralen Ort für die Verwaltung von Metadaten zu Datenbeständen und erleichtert so das Auffinden und Abfragen von Daten aus verschiedenen Quellen.
- Integration mit anderen AWS-Services – AWS Glues lässt sich nahtlos mit anderen AWS-Services wie Amazon S3, Amazon Redshift und Amazon EMR integrieren und ermöglicht Ihnen die Erstellung komplexer Daten-Workflows, die sich über mehrere Services erstrecken.
- Unterstützt eine Vielzahl von Datenformaten – AWS Glues kann eine breite Palette von Datenformaten verarbeiten, darunter strukturierte, halbstrukturierte und unstrukturierte Daten, und ist damit eine vielseitige Lösung für ETL.
Nachteile von AWS Glue
- Begrenzte Kontrolle über Ressourcen – Da AWS Glues ein vollständig verwalteter Dienst ist, haben Benutzer nur begrenzte Kontrolle über die zugrunde liegende Infrastruktur, was die Leistungsoptimierung für bestimmte Anwendungsfälle erschweren kann.
- Begrenzte Anpassungsmöglichkeiten – AWS Glues bietet zwar eine Reihe integrierter Transformationen und Konnektoren, doch Benutzer müssen möglicherweise benutzerdefinierten Code schreiben, um bestimmte Datenformate oder Anwendungsfälle zu verarbeiten.
- Begrenzte Debugging-Funktionen – Das Debuggen von ETL-Jobs in AWS Glues kann eine Herausforderung sein, da nur eingeschränkte Einblicke in den zugrunde liegenden Code und die Infrastruktur möglich sind.
- Kosten – Während AWS Glues im Vergleich zu herkömmlichen ETL-Lösungen im Allgemeinen kostengünstig ist, können sich die Kosten summieren, wenn Sie über große Datenmengen oder komplexe Daten-Workflows verfügen.
Anwendungsfälle von AWS Glue
Datenintegration – AWS Glues kann verwendet werden, um Daten aus mehreren Quellen wie Datenbanken, Data Lakes und Data Warehouses zu integrieren . Es kann auch verwendet werden, um strukturierte und unstrukturierte Daten zu kombinieren.
Datentransformation – AWS Glues kann Daten in ein für die Analyse optimiertes Format umwandeln, beispielsweise Daten von einem Schema in ein anderes konvertieren oder Daten in einer Übersichtstabelle aggregieren.
Datenbereinigung – AWS Glues kann zum Bereinigen und Validieren von Daten verwendet werden, indem Duplikate entfernt, Fehler korrigiert und die Konsistenz und Genauigkeit der Daten sichergestellt werden.
Datenanreicherung – AWS Glues kann Datensätzen zusätzliche Informationen hinzufügen, indem Daten aus verschiedenen Quellen kombiniert werden oder Machine-Learning-Modelle zur Gewinnung von Erkenntnissen verwendet werden.
Datenkatalogisierung – Mit AWS Glues kann ein zentraler Katalog mit Metadaten für Datenbestände erstellt werden, wodurch die Erkennung, Analyse und Verwaltung von Daten erleichtert wird.
Abschluss
AWS Glue ist ein serverloser, kostengünstiger Service, der benutzerfreundliche Tools zum Katalogisieren, Bereinigen, Anreichern, Validieren und Verschieben Ihrer Daten zur Speicherung in Data Warehouses und Data Lakes bietet. AWS Glues kann effektiv mit halbstrukturierten und gestreamten Daten arbeiten. Es ist mit anderen Amazon-Services kompatibel, kann Daten aus verschiedenen Quellen kombinieren, bietet zentralisierten Speicher und bereitet Ihre Daten für die nächste Phase der Datenanalyse und -berichterstattung vor. Dremio bietet eine nahtlose Integration mit dem AWS Glues-Service und gewährleistet eine leistungsstarke und hocheffiziente Abfrage-Engine für schnelle und einfache Datenanalysen zu den niedrigsten Kosten pro Abfrage. Besuchen Sie unsere Tutorials und Ressourcen, um mehr darüber zu erfahren, wie Dremio Ihnen helfen kann, Erkenntnisse aus Ihren in AWS gespeicherten Daten zu gewinnen.