Amazon Redshift unterstützt die Verwendung von Python-UDFs nach dem 30. Juni 2026 nicht mehr. Wir werden damit beginnen, es schrittweise durchzusetzen. Weitere Informationen zum Ende der Lebensdauer von Python und zu den Migrationsoptionen finden Sie im Blogbeitrag
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.
Erstellen einer S3-Ereignisintegration, um Dateien automatisch aus Amazon-S3-Buckets zu kopieren
Anmerkung
Die Vorschauversion für auto-copy ist abgelaufen. Daher werden Vorschau-Cluster 30 Tage nach dem Ende der Vorschauversion automatisch entfernt. Wenn Sie auto-copy weiterhin verwenden möchten, sollten Sie Ihre bestehenden auto-copy-Jobs in einem anderen Amazon-Redshift-Cluster neu erstellen. Upgrades von Vorschau-Clustern auf die neueste Amazon-Redshift-Version werden nicht unterstützt.
Sie können einen auto-copy-Job verwenden, um Daten aus Dateien, die in Amazon S3 gespeichert sind, in Ihre Amazon-Redshift-Tabellen zu laden. Amazon Redshift erkennt, wenn neue Amazon-S3-Dateien zu dem in Ihrem COPY-Befehl angegebenen Pfad hinzugefügt werden. Ein COPY-Befehl wird dann automatisch ausgeführt, ohne dass Sie eine externe Datenerfassungspipeline erstellen müssen. Amazon Redshift verfolgt, welche Dateien geladen wurden. Amazon Redshift bestimmt die Anzahl der Dateien, die für jeden COPY-Befehl zusammengefasst werden. Sie können die resultierenden COPY-Befehle in Systemansichten sehen.
Der erste Schritt zur Erstellung eines automatischen COPY JOB besteht in der Erstellung einer S3-Ereignisintegration. Wenn eine neue Datei im Quell-Bucket in Amazon S3 erscheint, verwaltet Amazon Redshift anschließend das Laden der Dateien in Ihre Datenbank mittels des Befehls COPY.
Voraussetzungen für die Erstellung einer S3-Ereignisintegration
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, um Ihre S3-Ereignisintegration einzurichten.
Der Amazon-S3-Bucket muss über eine Bucket-Richtlinie verfügen, die mehrere Amazon-S3-Berechtigungen zulässt. Die folgende Beispielrichtlinie ermöglicht beispielsweise Berechtigungen für den Ressourcen-Bucket
amzn-s3-demo-bucket, inus-east-1dem gehostet wird. Sowohl der Amazon-S3-Bucket als auch die Integration befinden sich in der derselben AWS-Region.Der von Amazon Redshift bereitgestellte Zielcluster oder der Redshift-Serverless-Namespace muss über Berechtigungen für den Bucket verfügen. Überprüfen Sie, ob eine IAM-Rolle, die Ihrem Cluster oder Serverless Namespace zugeordnet ist, über eine IAM-Richtlinie verfügt, die die richtigen Berechtigungen zulässt. Die Richtlinie muss sowohl
s3:GetObjectfür eine Bucket-Ressource wieals auchamzn-s3-demo-buckets3:ListBucketfür eine Bucket-Ressource und ihren Inhalt zulassen, z. B..amzn-s3-demo-bucket/*Fügen Sie Ihre Richtlinie wie folgt zu einer IAM-Rolle hinzu, für die eine Vertrauensbeziehung besteht.
Wenn Ihr Ziel-Data-Warehouse ein bereitgestellter Cluster ist, können Sie Ihrem bereitgestellten Cluster über die Amazon-Redshift-Konsole auf der Registerkarte Cluster-Berechtigungen in den Cluster-Details eine IAM-Rolle zuordnen. Informationen dazu, wie Sie Ihrem bereitgestellten Cluster eine Rolle zuordnen, finden Sie unter Zuordnen von IAM-Rollen zu Clustern im Managementleitfaden zu Amazon Redshift.
Wenn Ihr Ziel-Data-Warehouse Redshift Serverless ist, können Sie Ihrem Serverless-Namespace über die Redshift-Serverless-Konsole auf der Registerkarte Sicherheit und Verschlüsselung in den Namespace-Details eine IAM-Rolle zuordnen. Informationen dazu, wie Sie Ihrem Serverless-Namespace eine Rolle zuordnen, finden Sie unter Gewähren von Berechtigungen für Amazon Redshift Serverless im Managementleitfaden zu Amazon Redshift.
Ihr Data Warehouse in Amazon Redshift muss auch über eine Ressourcenrichtlinie verfügen, die den Amazon-S3-Bucket zulässt. Wenn Sie die Amazon-Redshift-Konsole verwenden und die S3-Ereignisintegration erstellen, bietet Amazon Redshift die Option Reparieren, um diese Richtlinie zu Ihrem Data Warehouse in Amazon Redshift hinzuzufügen. Zum Aktualisieren einer Ressourcenrichtlinie können Sie den AWS CLI -Befehl put-resource-policy verwenden. Um beispielsweise eine Ressourcenrichtlinie an Ihren von Amazon Redshift bereitgestellten Cluster für eine S3-Ereignisintegration mit einem Amazon S3-Bucket anzuhängen, führen Sie einen AWS CLI Befehl ähnlich dem folgenden aus. Das folgende Beispiel zeigt eine Richtlinie für einen bereitgestellten Cluster-Namespace im
us-east-1AWS-Region Benutzerkonto for.123456789012Der Bucket ist benannt.amzn-s3-demo-bucketaws redshift put-resource-policy \ --policy file://rs-rp.json \ --resource-arn "arn:aws:redshift:us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433"Wobei
rs-rp.jsonFolgendes enthält:Um eine Ressourcenrichtlinie für eine S3-Ereignisintegration mit einem Amazon S3-Bucket an Ihren Redshift Serverless-Namespace anzuhängen, führen Sie einen AWS CLI Befehl ähnlich dem folgenden aus. Das folgende Beispiel zeigt eine Richtlinie für einen serverlosen Namespace im Benutzerkonto for.
us-east-1AWS-Region123456789012Der Bucket ist benannt.amzn-s3-demo-bucketaws redshift put-resource-policy \ --policy file://rs-rp.json \ --resource-arn "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/namespace-1"Wobei
rs-rp.jsonFolgendes enthält:
Erstellen einer Amazon-S3-Ereignisintegration
Um den Kopierjob einzurichten, definieren Sie zunächst eine S3-Ereignisintegration.
Amazon Redshift erstellt anschließend eine S3-Ereignisintegration mit zugehöriger Quelle und zugehörigem Ziel, Status sowie Informationen zum Status eines zugehörigen auto-copy-Jobs. Sie können Informationen zu einer S3-Ereignisintegration in der Amazon-Redshift-Konsole anzeigen, indem Sie S3-Ereignisintegrationen auswählen und dann die Integration auswählen, um ihre Details anzuzeigen. Die Integrationen werden getrennt nach In meinem Konto und Aus anderen Konten angezeigt. In der Liste In meinem Konto werden Integrationen angezeigt, bei denen sich Quelle und Ziel im selben Konto befinden. In der Liste Aus anderen Konten werden Integrationen angezeigt, bei denen die Quelle im Besitz eines anderen Kontos ist.
Wenn Sie eine S3-Eventintegration löschen, ändert sich der entsprechende COPY JOB-Status von 1 (aktiv) in 0 (inactive/pending). Der entsprechende COPY JOB wird jedoch nicht automatisch entfernt. Wenn Sie später versuchen, einen COPY JOB mit demselben Namen zu erstellen, liegt möglicherweise ein Konflikt vor.
Erstellen und Überwachen eines COPY JOB
Wählen Sie nach der Integration auf der Seite Details zur S3-Ereignisintegration für die von Ihnen erstellte Integration die Option auto-copy-Job erstellen aus. Anschließend gelangen Sie zu Amazon Redshift Query Editor V2, wo Sie den auto-copy-Job für die Integration erstellen können. Amazon Redshift ordnet den Bucket in der FROM-Klausel in der Anweisung COPY JOB CREATE dem Bucket zu, der in der S3-Ereignisintegration verwendet wird. Weitere Informationen zur Verwendung von Amazon Redshift Query Editor V2 finden Sie unter Abfragen einer Datenbank mit Amazon Redshift Query Editor V2 im Managementleitfaden zu Amazon Redshift. Sie können beispielsweise den folgenden COPY-Befehl in Query Editor V2 ausführen, um einen automatischen COPY JOB zu erstellen, der den Amazon-S3-Bucket s3://amzn-s3-demo-bucket/staging-folder einer Amazon-S3-Ereignisintegration zuordnet.
COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' JOB CREATE my_copy_job_name AUTO ON;
Sie definieren einen COPY JOB einmalig. Für zukünftige Ausführungen werden dieselben Parameter verwendet.
Um einen COPY JOB zu definieren und zu verwalten, benötigen Sie die entsprechende Berechtigung. Hinweise zum Erteilen und Widerrufen von Berechtigungen für einen COPY JOB finden Sie unter GRANT und REVOKE. Weitere Informationen zum Erteilen und Widerrufen von bereichsbezogenen Berechtigungen für einen COPY JOB finden Sie unter Gewähren von bereichsbezogenen Berechtigungen und Widerrufen von bereichsbezogenen Berechtigungen.
Sie verwalten die Ladevorgänge mithilfe der Optionen CREATE, LIST, SHOW, DROP, ALTER und RUN. Weitere Informationen finden Sie unter COPY JOB.
Sie können Systemansichten abfragen, um den Status und Fortschritt von COPY JOB anzuzeigen. Die Ansichten werden wie folgt bereitgestellt:
SYS_COPY_JOB – enthält eine Zeile für jeden derzeit definierten COPY JOB.
SYS_COPY_JOB_DETAIL – enthält Details zu ausstehenden, fehlerhaften und erfassten Dateien für jeden COPY JOB.
SYS_COPY_JOB_INFO – enthält protokollierte Meldungen zu einem COPY JOB.
SYS_LOAD_HISTORY – enthält Details zu COPY-Befehlen.
SYS_LOAD_ERROR_DETAIL – enthält Details zu Fehlern bei COPY-Befehlen.
SVV_COPY_JOB_INTEGRATIONS – enthält Details zu S3-Ereignisintegrationen.
STL_LOAD_ERRORS – enthält Fehler von COPY-Befehlen.
STL_LOAD_COMMITS – enthält Informationen, die zur Behebung von Fehlern beim Laden von COPY-Befehlsdaten verwendet werden.
Informationen zur Behebung von Fehlern für S3-Ereignisintegrationen finden Sie unter Behebung von Fehlern für die S3-Ereignisintegration und für COPY JOB.
Um die Liste der von einem COPY JOB geladenen Dateien abzurufen, führen Sie die folgende SQL-Anweisung aus, ersetzen Sie sie jedoch zuerst<job_id>:
SELECT job_id, job_name, data_source, copy_query, filename, status, curtime FROM sys_copy_job copyjob JOIN stl_load_commits loadcommit ON copyjob.job_id = loadcommit.copy_job_id WHERE job_id =<job_id>;
Überlegungen beim Erstellen einer S3-Ereignisintegration für auto-copy
Beachten Sie Folgendes, wenn Sie auto-copy verwenden.
Sie können maximal 200 COPY JOBS für jeden Cluster oder jede Arbeitsgruppe in einem AWS-Konto erstellen.
Sie können maximal 50 S3-Ereignisintegrationen für jedes Amazon-Redshift-Ziel erstellen.
Sie können keine S3-Ereignisintegration mit einem Quell-Bucket in Amazon S3 erstellen, der im Namen einen Punkt (.) enthält.
Sie können jeweils nur eine S3-Ereignisintegration zwischen derselben Quelle und demselben Ziel erstellen. Das bedeutet, dass es jeweils nur eine S3-Ereignisintegration zwischen einem Amazon-S3-Bucket und einem Data Warehouse in Amazon Redshift geben kann.
Es darf keine vorhandenen Ereignisbenachrichtigungen für den Ereignistyp
S3_OBJECT_CREATEDgeben, die im Quell-Bucket in Amazon S3 definiert sind. Nachdem eine S3-Ereignisintegration erstellt wurde, können Sie jedoch die Amazon S3-Bucket-Ereignisbenachrichtigung mit einer Benachrichtigung prefix/suffix mit einem engeren Umfang aktualisieren. Auf diese Weise können Sie auch andere ZieleS3_OBJECT_CREATEDfür andere prefix/suffix Ziele konfigurieren und so einen Konflikt mit der S3-Ereignisintegration vermeiden. Wenn Sie Probleme haben, weil das automatische Kopieren nicht wie erwartet ausgeführt wurde, bereiten Sie das AWS CloudTrail Protokoll ders3:PutBucketNotificationConfigurationAktion in Ihrem S3-Bucket für den betreffenden Zeitraum vor, in dem Sie Kontakt aufnehmen AWS Support.
Unterstützte Regionen
Folgende AWS-Regionen sind für auto-copy verfügbar.
| Region | Auto-copy |
|---|---|
| Afrika (Kapstadt) | Available (Verfügbar) |
| Asien-Pazifik (Hongkong) | Available (Verfügbar) |
| Asien-Pazifik (Taipeh) | Available (Verfügbar) |
| Asien-Pazifik (Tokio) | Available (Verfügbar) |
| Asien-Pazifik (Seoul) | Available (Verfügbar) |
| Asien-Pazifik (Osaka) | Available (Verfügbar) |
| Asien-Pazifik (Mumbai) | Available (Verfügbar) |
| Asien-Pazifik (Hyderabad) | Available (Verfügbar) |
| Asien-Pazifik (Singapur) | Available (Verfügbar) |
| Asien-Pazifik (Sydney) | Available (Verfügbar) |
| Asien-Pazifik (Jakarta) | Available (Verfügbar) |
| Asien-Pazifik (Melbourne) | Available (Verfügbar) |
| Asien-Pazifik (Malaysia) | Available (Verfügbar) |
| Asien-Pazifik (Neuseeland) | Nicht verfügbar |
| Asien-Pazifik (Thailand) | Available (Verfügbar) |
| Kanada (Zentral) | Available (Verfügbar) |
| Kanada West (Calgary) | Available (Verfügbar) |
| China (Peking) | Available (Verfügbar) |
| China (Ningxia) | Available (Verfügbar) |
| Europa (Frankfurt) | Available (Verfügbar) |
| Europa (Zürich) | Available (Verfügbar) |
| Europa (Stockholm) | Available (Verfügbar) |
| Europa (Milan) | Available (Verfügbar) |
| Europa (Spain) | Available (Verfügbar) |
| Europa (Irland) | Available (Verfügbar) |
| Europa (London) | Available (Verfügbar) |
| Europa (Paris) | Available (Verfügbar) |
| Israel (Tel Aviv) | Available (Verfügbar) |
| Naher Osten (VAE) | Available (Verfügbar) |
| Middle East (Bahrain) | Available (Verfügbar) |
| Mexiko (Zentral) | Available (Verfügbar) |
| Südamerika (São Paulo) | Available (Verfügbar) |
| USA Ost (Nord-Virginia) | Available (Verfügbar) |
| USA Ost (Ohio) | Available (Verfügbar) |
| USA West (Nordkalifornien) | Available (Verfügbar) |
| USA West (Oregon) | Available (Verfügbar) |
| AWS GovCloud (US-East) | Available (Verfügbar) |
| AWS GovCloud (US-West) | Available (Verfügbar) |
Überlegungen bei der Wiederherstellung eines Ziels für die S3-Event-Integration
Wenn Sie einen Amazon Redshift Serverless-Namespace von einem Snapshot oder Recovery-Punkt in demselben serverlosen Namespace wiederherstellen, werden die S3-Event-Integrationen und die zugehörigen COPY-JOBS automatisch verwaltet. Beachten Sie die folgenden Überlegungen:
-
Beim Wiederherstellen eines Snapshots in einem anderen Namespace werden S3-Eventintegrationen nicht beibehalten.
-
Nach der Wiederherstellung identifiziert Amazon Redshift automatisch Dateien, die nach der Erstellung des Snapshots in den Amazon S3-Quell-Bucket hochgeladen wurden. Alle in Amazon S3 vorhandenen Dateien, die noch nicht geladen wurden, werden automatisch aufgenommen. Während dieses Vorgangs funktioniert die Aufnahme neuer Dateien aus S3-Ereignisbenachrichtigungen weiterhin parallel.
Anmerkung
Nach der Wiederherstellung können nur Dateien, die im Amazon S3-Bucket vorhanden sind, aufgenommen werden. Dateien, die nach der Erstellung des Snapshots hochgeladen und anschließend vor Abschluss der Wiederherstellung gelöscht wurden, werden nicht aufgenommen.
-
Wenn nach der Erstellung des Snapshots eine S3-Ereignisintegration erstellt wurde, geht die Integration nach der Wiederherstellung in den
NEEDS_ATTENTIONZustand über. Um dieses Problem zu beheben, können Sie eine Wiederherstellung anhand eines neueren Snapshots durchführen, der die Integration enthält, oder die Integration löschen. -
Wenn eine S3-Event-Integration nach der Erstellung des Snapshots gelöscht wurde, wird die Integration nicht wiederhergestellt. Der entsprechende COPY JOB-Status ändert sich in
PENDING. Sie können eine neue Integration für denselben Amazon S3-Bucket erstellen und den COPY JOB erneut erstellen. Dateien, die zwischen dem Snapshot-Zeitpunkt und der Neuerstellung der COPY-JOBS zu S3 hinzugefügt wurden, können nicht wiederhergestellt oder erneut aufgenommen werden. Um diese Dateien zu identifizieren, überprüfen Sie die Snapshot-Zeit in der Konsole und die Zeit zum Löschen der Integration. Bei CloudTrail den Dateien, die zwischen diesen Zeiten im S3-Bucket eingetroffen sind, handelt es sich um die Dateien, die übersehen wurden. -
Wenn COPY JOBs nach der Erstellung des Snapshots geändert wurden, verwendet der wiederhergestellte Namespace die COPY JOBs aus dem Snapshot. Amazon Redshift gleicht alle Unterschiede ab und aktualisiert die Integration, um die wiederhergestellte COPY JOB-Konfiguration widerzuspiegeln.
-
Um die Aufrechterhaltung von S3-Eventintegrationen während einer Wiederherstellung zu deaktivieren, deaktivieren Sie das Kontrollkästchen Integrationen verwalten auf der Wiederherstellungsseite in der oder, falls Sie die verwenden, legen Sie den
--no-maintain-integrationParameter fest AWS-Managementkonsole, wenn Sie den API-Vorgang „Restore-From-Snapshot“ oder „https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromSnapshot.htmlRestore-From-Recovery-Point“ aufrufen. AWS CLIhttps://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromRecoveryPoint.html Wenn Sie sich abmelden, gehen Integrationen in den Zustand nach der Wiederherstellung über.FAILED -
Diese Funktion gilt nur für Amazon Redshift Serverless, wenn sie im gleichen serverlosen Namespace wiederhergestellt wird. Bei Snapshot-Wiederherstellungen auf bereitgestellten Clustern werden S3-Eventintegrationen nicht beibehalten.