Fehlerbehebung bei Null-ETL-Integrationen von Amazon RDS
Sie können den Status einer Null-ETL-Integration überprüfen, indem Sie die Systemtabelle SVV_INTEGRATION im Analytikziel abfragen. Wenn die Spalte state den Wert ErrorState aufweist, bedeutet das, dass ein Fehler vorliegt. Weitere Informationen finden Sie unter Überwachen von Integrationen mithilfe von Systemtabellen für Amazon Redshift.
Verwenden Sie die folgenden Informationen, um häufig auftretende Probleme bei Null-ETL-Integrationen von Amazon RDS zu beheben.
Wichtig
Resynchronisations- und Aktualisierungsvorgänge sind für Null-ETL-Integrationen mit einem Amazon SageMaker AI Lakehouse nicht verfügbar. Wenn Probleme mit einer Integration auftreten, müssen Sie die Integration löschen und eine neue Integration erstellen. Sie können eine bestehende Integration nicht aktualisieren oder erneut synchronisieren.
Themen
Ich kann keine Null-ETL-Integration erstellen
Wenn Sie keine Null-ETL-Integration erstellen können, stellen Sie Folgendes für Ihre Quelldatenbank sicher:
-
In Ihrer Quelldatenbank muss eine unterstützte DB-Engine-Version ausgeführt werden. Eine Liste der unterstützten Versionen finden Sie unter Unterstützte Regionen und DB-Engines für Amazon-RDS-Null-ETL-Integrationen.
-
Sie haben die DB-Parameter korrekt konfiguriert. Wenn die erforderlichen Parameter falsch festgelegt oder nicht mit der Datenbank verknüpft sind, schlägt die Erstellung fehl. Siehe Schritt 1: Erstellen einer benutzerdefinierten DB--Parametergruppe.
Stellen Sie außerdem Folgendes für Ihr Ziel-Data-Warehouse sicher:
-
Die Unterscheidung zwischen Groß- und Kleinschreibung ist aktiviert. Siehe Aktivieren der Unterscheidung zwischen Groß- und Kleinschreibung für Ihr Data Warehouse.
-
Sie haben den richtigen autorisierten Prinzipal und die richtige Integrationsquelle hinzugefügt. Weitere Informationen finden Sie unter Konfigurieren der Autorisierung für Ihr Amazon Redshift Data Warehouse.
-
Das Data Warehouse ist verschlüsselt (wenn es sich um einen bereitgestellten Cluster handelt). Weitere Informationen finden Sie unter Verschlüsselung von Amazon-Redshift-Datenbanken.
Meine Integration steckt im Status Syncing fest
Ihre Integration zeigt möglicherweise konsistent den Status Syncing an, wenn Sie den Wert eines erforderlichen DB-Parameters ändern.
Um dieses Problem zu beheben, überprüfen Sie die Werte der Parameter in der Parametergruppe, die mit der Quelldatenbank verknüpft ist, und stellen Sie sicher, dass sie den erforderlichen Werten entsprechen. Weitere Informationen finden Sie unter Schritt 1: Erstellen einer benutzerdefinierten DB--Parametergruppe.
Wenn Sie Parameter ändern, stellen Sie sicher, dass Sie die Datenbank neu starten, damit die Änderungen übernommen werden.
Meine Tabellen werden nicht in Amazon Redshift repliziert
Wenn Sie eine oder mehrere Tabellen in Amazon Redshift nicht sehen, können Sie den folgenden Befehl ausführen, um sie erneut zu synchronisieren:
ALTER DATABASEdbnameINTEGRATION REFRESH TABLEStable1,table2;
Weitere Informationen finden Sie unter ALTER DATABASE in der SQL-Referenz zu Amazon Redshift.
Ihre Daten werden möglicherweise nicht repliziert, da eine oder mehrere Quelltabellen nicht über einen Primärschlüssel verfügen. Das Überwachungs-Dashboard in Amazon Redshift zeigt den Status dieser Tabellen als Failed an und der Status der gesamten Null-ETL-Integration ändert sich in Needs attention. Um dieses Problem zu lösen, können Sie einen vorhandenen Schlüssel in Ihrer Tabelle identifizieren, der zu einem Primärschlüssel werden kann, oder Sie können einen synthetischen Primärschlüssel hinzufügen. Ausführliche Lösungen finden in Handle tables without primary keys while creating Amazon Aurora MySQL or Amazon RDS für MySQL zero-ETL integrations with Amazon Redshift
Eine oder mehrere meiner Amazon-Redshift-Tabellen erfordern eine erneute Synchronisation
Wenn Sie bestimmte Befehle auf Ihrer Quelldatenbank ausführen, müssen Ihre Tabellen möglicherweise erneut synchronisiert werden. In diesen Fällen zeigt die Systemansicht SVV_INTEGRATION_TABLE_STATE für table_state den Wert ResyncRequired an. Dies bedeutet, dass die Integration die Daten für diese spezifische Tabelle vollständig neu von MySQL in Amazon Redshift laden muss.
Wenn die Tabelle mit der erneuten Synchronisation beginnt, wechselt sie in den Status Syncing. Sie müssen keine manuellen Maßnahmen ergreifen, um eine Tabelle erneut zu synchronisieren. Während die Tabellendaten erneut synchronisiert werden, können Sie in Amazon Redshift nicht darauf zugreifen.
Im Folgenden finden Sie einige Beispieloperationen, mit denen eine Tabelle in den Status ResyncRequired versetzt werden kann, sowie mögliche Alternativen, die Sie in Betracht ziehen sollten.
| Operation | Beispiel | Alternative |
|---|---|---|
| Hinzufügen einer Spalte an einer bestimmten Position |
|
Amazon Redshift unterstützt nicht das Hinzufügen von Spalten an bestimmten Positionen mithilfe der Schlüsselwörter first oder after. Wenn die Reihenfolge der Spalten in der Zieltabelle nicht wichtig ist, fügen Sie die Spalte mit einem einfacheren Befehl am Ende der Tabelle hinzu:
|
Hinzufügen einer Zeitstempelspalte mit dem Standardwert CURRENT_TIMESTAMP |
|
Der Wert CURRENT_TIMESTAMP für vorhandene Tabellenzeilen wird von RDS für MySQL berechnet und kann in Amazon Redshift ohne vollständige erneute Synchronisation der Tabellendaten nicht simuliert werden. Wenn möglich, ändern Sie den Standardwert in eine Literalkonstante wie |
| Ausführen mehrerer Spaltenoperationen innerhalb eines einzigen Befehls |
|
Überlegen Sie, ob Sie den Befehl in zwei separate Operationen, ADD und RENAME, aufteilen sollten, die keine erneute Synchronisation erfordern. |
Fehlgeschlagene Integration bei Null-ETL-Integrationen von Amazon SageMaker AI Lakehouse
Wenn Sie Probleme mit einer bestehenden Null-ETL-Integration mit einem Amazon SageMaker AI Lakehouse haben, besteht die einzige Lösung darin, die Integration zu löschen und neu zu erstellen. Im Gegensatz zu anderen AWS-Services unterstützen Null-ETL-Integrationen keine Aktualisierungs- oder Resynchronisationsvorgänge.
So lösen Sie Integrationsprobleme:
-
Löschen Sie die problematische Null-ETL-Integration mithilfe der Konsole, CLI oder API.
-
Stellen Sie sicher, dass die Konfiguration der Quelldatenbank und des Ziel-Data-Warehouse korrekt ist.
-
Erstellen Sie eine neue Null-ETL-Integration mit derselben oder einer aktualisierten Konfiguration.
Dieser Prozess führt zu einer vollständigen Neuinitialisierung der Daten-Pipeline, was je nach Größe Ihrer Quelldatenbank einige Zeit in Anspruch nehmen kann.