Konvertierung von ETL-Prozessen inAWS GluemitAWS SCT - AWS Schema Conversion Tool

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konvertierung von ETL-Prozessen inAWS GluemitAWS SCT

Im Folgenden finden Sie einen Überblick über den Prozess zum Konvertieren von ETL-Skripten inAWS GluemitAWS SCT. In diesem Beispiel konvertieren wir eine Oracle-Datenbank zusammen mit den ETL-Prozessen, die für die Quelldatenbanken und Data Warehouses verwendet werden, in Amazon Redshift.

Das folgende Architekturdiagramm zeigt ein Beispiel für ein Datenbankmigrationsprojekt, das die Konvertierung von ETL-Skripten inAWS Glue.


				Diagramm, das die Konvertierung von Datenbanken und ETL zeigt

Voraussetzungen

Bevor Sie beginnen, führen Sie die folgenden Schritte aus:

  • Migrieren Sie alle Quelldatenbanken, zu denen Sie migrieren möchtenAWS.

  • Migrieren Sie die Ziel-Data Warehouses zuAWS.

  • Erfassen Sie eine Liste des gesamten Codes Ihres ETL-Prozesses.

  • Erstellen Sie eine Liste aller erforderlichen Verbindungsinformationen für jede Datenbank.

AußerdemAWS Gluebenötigt Berechtigungen, um auf andere zuzugreifenAWSRessourcen in Ihrem Namen. Diese Berechtigungen stellen Sie mithilfe von AWS Identity and Access Management (IAM) zur Verfügung. Stellen Sie sicher, dass Sie eine IAM-Richtlinie für erstellt habenAWS Glue. Weitere Informationen finden Sie unterErstellen Sie eine IAM-Richtlinie fürAWSKleberservicein derAWS GlueLeitfaden für Entwickler.

Grundlegendes zum AWS Glue-Datenkatalog

Im Rahmen des Konvertierungsprozesses lädt AWS Glue Informationen zu den Quell- und Zieldatenbanken. Es organisiert diese Informationen in Kategorien in einer Struktur, die alsBaum. Diese Struktur umfasst Folgendes:

  • Verbindungen— Verbindungsparameter

  • Crawler— Eine Liste von Crawlern, ein Crawler für jedes Schema

  • Datenbanken— Behälter für Tische

  • Tische— Metadatendefinitionen, die die Daten in den Tabellen darstellen

  • Stellenangebote bei ETL— Geschäftslogik, die die ETL-Arbeit ausführt

  • Auslöser— Logik, die steuert, wann ein ETL-Job ausgeführt wirdAWS Glue(ob auf Anfrage, nach Zeitplan oder ausgelöst durch berufliche Ereignisse)

Der AWS Glue-Datenkatalog ist ein Index für die Speicherort-, Schema- und Laufzeitmetriken Ihrer Daten. Wenn Sie mit AWS Glue und AWS SCT arbeiten, enthält der AWS Glue-Datenkatalog Verweise auf Daten, die als Quelle und Ziel Ihrer ETL-Aufträge in AWS Glue verwendet werden. Um Ihr Data Warehouse zu erstellen, katalogisieren Sie diese Daten.

Sie verwenden die Informationen im Datenkatalog, um Ihre ETL-Aufträge zu erstellen und zu überwachen. Normalerweise führen Sie einen Crawler aus, um die Daten in Ihren Datenspeichern zu inventarisieren. Es gibt jedoch auch andere Möglichkeiten, Metadatentabellen in Ihren Datenkatalog einzufügen.

Wenn Sie eine Tabelle in Ihrem Datenkatalog definieren, fügen Sie sie einer Datenbank hinzu. Eine Datenbank wird verwendet, um Tabellen in AWS Glue zu organisieren.

Einschränkungen für die Konvertierung mitAWS SCTmitAWS Glue

Beim Konvertieren unter Verwendung von AWS SCT mit AWS Glue gelten die folgenden Einschränkungen:

Resource Standardlimit
Anzahl der Datenbanken pro Konto 10.000
Anzahl der Tabellen pro Datenbank 100 000
Anzahl der Partitionen pro Tabelle 1 000 000
Anzahl der Tabellenversionen für jede Tabelle 100 000
Anzahl der Tabellen für jedes Konto 1 000 000
Anzahl der Partitionen für jedes Konto 10 000 000
Anzahl der Tabellenversionen für jedes Konto 1 000 000
Anzahl der Verbindungen für jedes Konto 1.000
Anzahl der Crawler für jedes Konto 25
Anzahl der Aufträge pro Konto 25
Anzahl der Auslöser für jedes Konto 25
Anzahl der gleichzeitigen Aufträge pro Konto 30
Anzahl der gleichzeitigen Auftragsausführungen für jeden Auftrag 3
Anzahl der Aufträge für jeden Auslöser 10
Anzahl der Entwicklungsendpunkte für jedes Konto 5
Maximale Anzahl an Datenverarbeitungseinheiten (DPUs), die von einem Entwicklungsendpunkt gleichzeitig genutzt werden 5
Maximale DPUs, die von einer Rolle gleichzeitig verwendet werden 100
Länge des Datenbanknamens

Unbegrenzt

Aus Kompatibilitätsgründen mit anderen Metadatenspeichern, wie z. B. Apache Hive, wird der Name in Kleinbuchstaben gespeichert.

Wenn Sie von Amazon Athena aus auf die Datenbank zugreifen möchten, geben Sie einen Namen an, der nur aus alphanumerischen Zeichen und Unterstrichen besteht.

Länge des Verbindungsnamens Unbegrenzt
Länge des Crawler-Namens Unbegrenzt

Schritt 1: Erstellen eines neuen -Projekts

Gehen Sie wie folgt vor, um ein neues Projekt zu erstellen:

  1. Erstellen Sie ein neues Projekt in AWS SCT. Weitere Informationen finden Sie unter EinAWS SCT Projekt erstellen.

  2. Fügen Sie Ihre Quell- und Zieldatenbanken zum Projekt hinzu. Weitere Informationen finden Sie unter Hinzufügen von Datenbankservern zu einemAWS SCT Projekt.

    Vergewissern Sie sich, dass Sie gewählt habenBenutzenAWS Gluein den Verbindungseinstellungen der Zieldatenbank. Wählen Sie dazu dieAWS GlueTab. FürKopieren vonAWSProfil, wählen Sie das Profil aus, das Sie verwenden möchten. Das Profil sollte automatisch das ausfüllenAWSZugriffsschlüssel, geheimer Schlüssel und Amazon S3-Bucket-Ordner. Wenn dies nicht der Fall ist, geben Sie diese Informationen selbst ein. Nach Auswahl von OK analysiert AWS Glue die Objekte und lädt Metadaten in den AWS Glue-Datenkatalog.

    Je nach Sicherheitseinstellungen erhalten Sie möglicherweise eine Warnmeldung, die Sie darüber informiert, dass Ihr Konto nicht über ausreichende Berechtigungen für einige der Schemata auf dem Server verfügt. Wenn Sie Zugriff auf die verwendeten Schemata haben, können Sie diese Meldung ignorieren.

  3. Um die Vorbereitung des ETL-Imports abzuschließen, stellen Sie eine Verbindung zu Ihren Quell- und Zieldatenbanken her. Wählen Sie dazu Ihre Datenbank im Quell- oder Ziel-Metadatenbaum aus und wählen Sie dannStellen Sie eine Verbindung zum Server her.

AWS Glueerstellt eine Datenbank auf dem Quelldatenbankserver und eine auf dem Zieldatenbankserver, um bei der ETL-Konvertierung zu helfen. Die Datenbank auf dem Zielserver enthält den AWS Glue-Datenkatalog. Verwenden Sie die Suchfunktion im Quell- oder Zielbereich, um nach bestimmten Objekten zu suchen.

Um zu sehen, wie ein bestimmtes Objekt konvertiert wird, suchen Sie nach einem Objekt, das Sie konvertieren möchten, und wählen SieSchema konvertierenaus seinem Kontextmenü (Rechtsklick).AWS SCTwandelt dieses ausgewählte Objekt in ein Skript um.

Sie können das konvertierte Skript auf der Seite überprüfenSkripteOrdner im rechten Bereich. Derzeit ist das Skript ein virtuelles Objekt, das nur als Teil IhresAWS SCTprojekt.

Um eine zu erstellenAWS GlueJob mit Ihrem konvertierten Skript, laden Sie Ihr Skript auf Amazon S3 hoch. Um das Skript auf Amazon S3 hochzuladen, wählen Sie das Skript aus und wählen SieIn S3 speichernaus seinem Kontextmenü (Rechtsklick).

Schritt 2: Erstellen Sie eineAWS GlueAufgabe

Nachdem Sie das Skript in Amazon S3 gespeichert haben, können Sie es auswählen und dannkonfigurierenAWS GlueBerufum den Wizard zu öffnen, um das zu konfigurierenAWS GlueBeruf. Der Wizard erleichtert die Einrichtung:

  1. Auf der ersten Registerkarte des WizardsDatenfluss entwerfen, Sie können eine Ausführungsstrategie und die Liste der Skripte auswählen, die Sie in diesen einen Job aufnehmen möchten. Sie können für jedes Skript Parameter auswählen. Sie können die Skripts auch neu anordnen, damit sie in der richtigen Reihenfolge ausgeführt werden.

  2. Auf der zweiten Registerkarte können Sie Ihrem Job einen Namen geben und die Einstellungen direkt konfigurieren fürAWS Glue. Auf diesem Bildschirm können Sie die folgenden Einstellungen vornehmen:

    • AWS Identity and Access Management(IAM) -Rolle

    • Skript-Dateinamen und -Dateipfade

    • Verschlüsseln Sie das Skript mithilfe serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)

    • Temporäres Verzeichnis

    • Generierter Python-Bibliothekspfad

    • Python-Bibliothekspfad des Benutzers

    • Pfad für die abhängigen .jar-Dateien

    • Pfad für referenzierte Dateien

    • Gleichzeitige DPUs für jede Auftragsausführung

    • Maximale Gleichzeitigkeit

    • Auftrag-Zeitüberschreitung (in Minuten)

    • Schwellenwert für die Verzögerungsbenachrichtigung (in Minuten)

    • Anzahl der Wiederholungen

    • Security configuration (Sicherheitskonfiguration)

    • Server-side encryption

  3. Im dritten Schritt bzw. auf der dritten Registerkarte wählen Sie die konfigurierte Verbindung zum Zielendpunkt aus.

Nachdem Sie den Auftrag fertig konfiguriert haben, wird er unter den ETL-Aufträgen im AWS Glue-Datenkatalog angezeigt. Wenn Sie den Auftrag auswählen, werden die zugehörigen Einstellungen angezeigt, sodass Sie sie überprüfen oder bearbeiten können. Um einen neuen Job zu erstellen inAWS Glue, wähleErstellenAWS GlueBerufaus dem Kontextmenü (Rechtsklick) für den Job. Dadurch wird die Schemadefinition angewendet. Um die Anzeige zu aktualisieren, wählen Sie Refresh from database (Aus der Datenbank aktualisieren) aus dem Kontextmenü.

An diesem Punkt können Sie den Auftrag in der AWS Glue-Konsole anzeigen. Melden Sie sich dazu bei derAWS Management Consoleund öffne dieAWS GlueKonsole beihttps://console.aws.amazon.com/glue/.

Sie können den neuen Auftrag testen, um sicherzustellen, dass er korrekt funktioniert. Überprüfen Sie die Daten in Ihrer Quelltabelle und prüfen Sie dann, ob die Zieltabelle leer ist. Führen Sie den Auftrag aus und überprüfen Sie erneut. Sie können die Fehlerprotokolle in der AWS Glue-Konsole einsehen.