Datenvalidierung mit AWS DMS - AWS Database Migration Service

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.

Datenvalidierung mit AWS DMS

AWS DMS unterstützt die Datenvalidierung, um sicherzustellen, dass Ihre Daten korrekt von der Quelle zum Ziel migriert wurden. Wenn diese Option aktiviert ist, beginnt die Validierung unmittelbar nach einer Volllastaufgabe für eine Tabelle. Bei der Validierung werden die inkrementellen Änderungen für eine CDC-fähige Aufgabe verglichen, sobald sie auftreten.

Während der Datenvalidierung vergleicht AWS DMS jede Zeile in der Quelle mit der entsprechenden Zeile im Ziel und stellt sicher, dass die Zeilen die gleichen Daten enthalten. Alle Abweichungen werden gemeldet. Zu diesem Zweck führt AWS DMS entsprechende Abfragen durch, um die Daten abzurufen. Beachten Sie, dass diese Abfragen zusätzliche Ressourcen an der Quelle und am Ziel sowie zusätzliche Netzwerkressourcen verbrauchen.

Bei einer reinen CDC-Aufgabe mit aktivierter Validierung werden alle bereits vorhandenen Daten in einer Tabelle überprüft, bevor mit der Validierung neuer Daten begonnen wird.

Die Datenvalidierung funktioniert mit den folgenden Quelldatenbanken, wenn AWS DMS sie als Quellendpunkte unterstützt:

  • Oracle

  • PostgreSQL-kompatible Datenbank (PostgreSQL, Aurora PostgreSQL oder Aurora Serverless für PostgreSQL)

  • MySQL-kompatible Datenbank (MySQL, MariaDB, Aurora MySQL oder Aurora Serverless für MySQL)

  • Microsoft SQL Server

  • IBM Db2 (LUW)

Die Datenvalidierung funktioniert mit den folgenden Zieldatenbanken, wenn AWS DMS sie als Zielendpunkte unterstützt:

  • Oracle

  • PostgreSQL-kompatible Datenbank (PostgreSQL, Aurora PostgreSQL oder Aurora Serverless für PostgreSQL)

  • MySQL-kompatible Datenbank (MySQL, MariaDB, Aurora MySQL oder Aurora Serverless für MySQL)

  • Microsoft SQL Server

  • IBM Db2 (LUW)

  • Amazon Redshift

  • Amazon S3. Informationen zur Validierung von Amazon-S3-Zieldaten finden Sie unter Zieldatenvalidierung in Amazon S3.

Weitere Informationen zu den unterstützten Endpunkten finden Sie unter Arbeiten mit AWS-DMS-Endpunkten.

Die Datenvalidierung erfordert zusätzliche Zeit, die über die Dauer hinausgeht, die für die Migration selbst erforderlich ist. Die zusätzlich benötigte Zeit hängt davon ab, wie viele Daten migriert wurden.

Weitere Informationen zu diesen Einstellungen finden Sie unter Aufgabeneinstellungen zur Datenvalidierung.

Ein Beispiel für ValidationSettings-Aufgabeneinstellungen in einer JSON-Datei finden Sie unter Beispiel für Aufgabeneinstellungen.

Replikationsaufgaben-Statistiken

Wenn die Datenvalidierung aktiviert ist, stellt AWS DMS die folgenden Statistiken auf Tabellenebene bereit:

  • ValidationState – Der Validierungsstatus der Tabelle. Folgende Parameterwerte sind möglich:

    • Not enabled – Für die Tabelle in der Migrationsaufgabe ist keine Validierung aktiviert.

    • Pending records – Einige Datensätze in der Tabelle müssen noch validiert werden.

    • Nicht übereinstimmende Datensätze – Bei einigen Datensätzen in der Tabelle gibt es eine Abweichung zwischen Quelle und Ziel. Ein Konflikt kann aus unterschiedlichen Gründen auftreten. Weitere Informationen finden Sie in der Tabelle awsdms_control.awsdms_validation_failures_v1 auf dem Ziel-Endpunkt.

    • Suspended records (Ausgesetzte Datensätze) – Einige Datensätze in der Tabelle können nicht validiert werden.

    • No primary key (Kein Primärschlüssel) – Die Tabelle kann aufgrund eines fehlenden Primärschlüssels nicht validiert werden.

    • Table error (Tabellenfehler) – Die Tabelle wurde aufgrund ihres Fehlerstatus nicht validiert, zudem wurden einige Daten nicht migriert.

    • Validiert – Alle Zeilen der Tabelle wurden validiert. Wenn die Tabelle aktualisiert wurde, ändert sich der Status möglicherweise in "Validated".

    • Error (Fehler) – Die Tabelle kann aufgrund eines unerwarteten Fehlers nicht validiert werden.

    • Ausstehende Validierung – Die Validierung der Tabelle steht noch aus.

    • Tabelle wird vorbereitet – Die in der Migrationsaufgabe aktivierte Tabelle wird für die Validierung vorbereitet.

    • Ausstehende erneute Validierung – Die Validierung aller Zeilen in der Tabelle steht noch aus, nachdem die Tabelle aktualisiert wurde.

  • ValidationPending (Validierung ausstehende) – Die Anzahl der Datensätze, die in die Zieldatenbank migriert aber noch nicht validiert wurden.

  • ValidationSuspended – Die Anzahl der Datensätze, die AWS DMS nicht vergleichen kann. Wenn beispielsweise ein Datensatz an der Quelle ständig aktualisiert wird, kann AWS DMS Quelle und Ziel nicht vergleichen.

  • ValidationFailed – Die Anzahl der Datensätze, die die Datenvalidierung nicht bestanden haben.

Ein Beispiel für ValidationSettings-Aufgabeneinstellungen in einer JSON-Datei finden Sie unter Beispiel für Aufgabeneinstellungen.

Sie können die Informationen zur Datenvalidierung mit der Konsole, der AWS CLI oder der AWS DMS-API anzeigen.

  • Sie können in der Konsole eine Aufgabe zur Validierung auswählen, wenn Sie die Aufgabe erstellen oder ändern. Zum Anzeigen des Validierungsberichts in der Konsole wählen Sie die Aufgabe auf der Seite Tasks aus und klicken dann im Detailbereich auf Table statistics.

  • Setzen Sie bei Verwendung der CLI den Parameter EnableValidation auf true, wenn Sie eine Aufgabe erstellen oder ändern, um mit der Datenvalidierung zu beginnen. Im folgenden Beispiel wird eine Aufgabe erstellt und die Datenvalidierung aktiviert.

    create-replication-task --replication-task-settings '{"ValidationSettings":{"EnableValidation":true}}' --replication-instance-arn arn:aws:dms:us-east-1:5731014: rep:36KWVMB7Q --source-endpoint-arn arn:aws:dms:us-east-1:5731014: endpoint:CSZAEFQURFYMM --target-endpoint-arn arn:aws:dms:us-east-1:5731014: endpoint:CGPP7MF6WT4JQ --migration-type full-load-and-cdc --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": {"schema-name": "data_types", "table-name": "%"}, "rule-action": "include"}]}'

    Verwenden Sie den Befehl describe-table-statistics, um den Datenvalidierungsbericht im JSON-Format zu erhalten. Mit dem folgenden Befehl wird der Datenvalidierungsbericht angezeigt.

    aws dms describe-table-statistics --replication-task-arn arn:aws:dms:us-east-1:5731014: rep:36KWVMB7Q

    Der Bericht sieht in etwa wie folgt aus.

    { "ReplicationTaskArn": "arn:aws:dms:us-west-2:5731014:task:VFPFTYKK2RYSI", "TableStatistics": [ { "ValidationPendingRecords": 2, "Inserts": 25, "ValidationState": "Pending records", "ValidationSuspendedRecords": 0, "LastUpdateTime": 1510181065.349, "FullLoadErrorRows": 0, "FullLoadCondtnlChkFailedRows": 0, "Ddls": 0, "TableName": "t_binary", "ValidationFailedRecords": 0, "Updates": 0, "FullLoadRows": 10, "TableState": "Table completed", "SchemaName": "d_types_s_sqlserver", "Deletes": 0 } }
  • Wenn Sie die AWS DMS-API verwenden, erstellen Sie mithilfe der Aktion CreateReplicationTask eine Aufgabe und setzen Sie den Parameter EnableValidation auf true, um die über die Aufgabe migrierten Daten zu validieren. Nutzen Sie die DescribeTableStatistics-Aktion, um den Datenvalidierungsbericht im JSON-Format zu erhalten.

Statistiken zu Replikationsaufgaben mit Amazon CloudWatch

Wenn Amazon CloudWatch aktiviert ist, stellt AWS DMS die folgenden Statistiken für Replikationsaufgaben bereit:

  • ValidationSucceededRecordCount – Anzahl der Zeilen, die von AWS DMS pro Minute validiert wurden.

  • ValidationAttemptedRecordCount – Anzahl von Zeilen, für die pro Minute eine Validierung versucht wurde.

  • ValidationFailedOverallCount – Anzahl von Zeilen, bei denen die Validierung fehlschlug.

  • ValidationSuspendedOverallCount – Anzahl von Zeilen, bei denen die Validierung ausgesetzt wurde.

  • ValidationPendingOverallCount – Anzahl von Zeilen, bei denen eine Validierung noch ansteht.

  • ValidationBulkQuerySourceLatency – AWS DMS kann die Datenvalidierung gebündelt durchführen. Dies ist insbesondere bei bestimmten Szenarien während Volllastaufgaben oder der laufenden Replikation relevant, wenn viele Änderungen vorliegen. Diese Metrik gibt die Latenz an, die zum Lesen eines Massendatensatzes aus dem Quellendpunkt erforderlich ist.

  • ValidationBulkQueryTargetLatency – AWS DMS kann die Datenvalidierung gebündelt durchführen. Dies ist insbesondere bei bestimmten Szenarien während Volllastaufgaben oder der laufenden Replikation relevant, wenn viele Änderungen vorliegen. Diese Metrik gibt die Latenz an, die zum Lesen eines Massendatensatzes am Zielendpunkt erforderlich ist.

  • ValidationItemQuerySourceLatency – Während der laufenden Replikation können mit der Datenvalidierung fortlaufende Änderungen identifiziert und validiert werden. Diese Metrik gibt die Latenz an, die zum Lesen solcher Änderungen aus der Quelle erforderlich ist. Die Validierung kann mehr Abfragen als basierend auf der Anzahl von Änderungen erforderlich ausführen, wenn während der Validierung Fehler aufgetreten sind.

  • ValidationItemQueryTargetLatency – Während der laufenden Replikation können mit der Datenvalidierung laufende Änderungen identifiziert und zeilenweise validiert werden. Diese Metrik gibt die Latenz zum Lesen solcher Änderungen am Ziel an. Die Validierung kann mehr Abfragen als basierend auf der Anzahl von Änderungen erforderlich ausführen, wenn während der Validierung Fehler aufgetreten sind.

Um Informationen zur Datenvalidierung aus CloudWatch-fähigen Statistiken zu erfassen, wählen Sie CloudWatch Logs aktivieren aus, wenn Sie eine Aufgabe mithilfe der Konsole erstellen oder ändern. Gehen Sie dann folgendermaßen vor, um die Informationen zur Datenvalidierung anzuzeigen und sicherzustellen, dass Ihre Daten korrekt von der Quelle zum Ziel migriert wurden.

  1. Wählen Sie die Aufgabe auf der Seite Datenbankmigrationsaufgaben aus.

  2. Wählen Sie die Registerkarte CloudWatch-Metriken aus.

  3. Wählen Sie im Drop-down-Menü Validierung aus.

Erneutes Validieren von Tabellen während einer Aufgabe

Während eine Aufgabe ausgeführt wird, können Sie von AWS DMS eine Datenvalidierung anfordern.

AWS Management Console

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS DMS-Konsole unter https://console.aws.amazon.com/dms/v2/.

    Wenn Sie als AWS Identity and Access Management (IAM)-Benutzer angemeldet sind, müssen Sie über die entsprechenden Berechtigungen für den Zugriff auf AWS DMS verfügen. Informationen zu den erforderlichen Berechtigungen finden Sie unter Erforderliche IAM-Berechtigungen zur Verwendung von AWS DMS.

  2. Wählen Sie im Navigationsbereich Tasks (Aufgaben) aus.

  3. Wählen Sie die laufende Aufgabe mit der Tabelle aus, die sie erneut validieren möchten.

  4. Wählen Sie die Registerkarte Table Statistics (Tabellenstatistiken).

  5. Wählen Sie die Tabelle aus, die Sie erneut validieren möchten (Sie können bis zu 10 Tabellen gleichzeitig auswählen). Für Aufgaben, die derzeit nicht mehr ausgeführt werden, kann die Tabelle bzw. können die Tabellen nicht erneut validiert werden.

  6. Wählen Sie Revalidate (Erneut validieren).

Ändern von Validierungsregeln mithilfe des JSON-Editors

Gehen Sie wie folgt vor, um einer Aufgabe mithilfe des JSON-Editors von der AWS DMS-Konsole aus eine Validierungsregel hinzuzufügen:

  1. Wählen Sie Datenbankmigrationsaufgaben aus.

  2. Wählen Sie Ihre Aufgabe in der Liste der Migrationsaufgaben aus.

  3. Wenn Ihre Aufgabe gerade ausgeführt wird, wählen Sie im Drop-down-Menü Aktionen die Option Stoppen aus.

  4. Nachdem die Aufgabe beendet wurde, wählen Sie im Drop-down-Menü Aktionen die Option Ändern aus, um die Aufgabe zu ändern.

  5. Wählen Sie im Abschnitt Tabellenzuordnungen die Option JSON-Editor aus und fügen Sie den Tabellenzuordnungen Ihre Validierungsregel hinzu.

Sie können beispielsweise die folgende Validierungsregel hinzufügen, um eine Ersetzungsfunktion für die Quelle auszuführen. Wenn die Validierungsregel in diesem Fall auf ein Null-Byte trifft, wird dieses als Leerzeichen validiert.

{ "rule-type": "validation", "rule-id": "1", "rule-name": "1", "rule-target": "column", "object-locator": { "schema-name": "Test-Schema", "table-name": "Test-Table", "column-name": "Test-Column" }, "rule-action": "override-validation-function", "source-function": "REPLACE(${column-name}, chr(0), chr(32))", "target-function": "${column-name}" }

Reine Validierungsaufgaben

Sie können reine Validierungsaufgaben erstellen, um Daten in der Vorschau anzuzeigen und zu validieren, ohne eine Migration oder Datenreplikation auszuführen. Setzen Sie die Einstellungen EnableValidation und ValidationOnly auf true, um eine reine Validierungsaufgabe zu erstellen. Bei Aktivierung von ValidationOnly gelten zusätzliche Anforderungen. Weitere Informationen finden Sie unter Aufgabeneinstellungen zur Datenvalidierung.

Bei einer reinen Volllast-Migration wird eine reine Validierungsaufgabe viel schneller abgeschlossen als ihr CDC-Äquivalent, wenn viele Fehler gemeldet werden. Änderungen am Quell- oder Zielendpunkt werden im Volllastmodus jedoch als Fehler gemeldet, was einen möglichen Nachteil darstellt.

Bei einer reinen CDC-Validierungsaufgabe werden die Validierung auf der Grundlage der durchschnittlichen Latenz verzögert und Fehlschläge mehrmals wiederholt, bevor sie gemeldet werden. Wenn die meisten Datenvergleiche zu Fehlern führen, ist eine reine Validierungsaufgabe für den CDC-Modus sehr langsam, was einen möglichen Nachteil darstellt.

Eine reine Validierungsaufgabe muss in der gleichen Richtung wie die Replikationsaufgabe eingerichtet werden, insbesondere für CDC. Dies liegt daran, dass bei einer reinen CDC-Validierungsaufgabe anhand des Änderungsprotokolls der Quelle ermittelt wird, welche Zeilen geändert wurden und neu validiert werden müssen. Wenn das Ziel als Quelle angegeben ist, sind nur Änderungen bekannt, die von DMS an das Ziel gesendet wurden, und es kann nicht garantiert werden, dass Replikationsfehler erkannt werden.

Reine Volllastvalidierung

Ab AWS DMS Version 3.4.6 und höher werden bei einer Aufgabe zur reinen Volllastvalidierung schnell alle Zeilen aus den Quell- und Zieltabellen in einem einzigen Durchgang verglichen, alle Fehler sofort gemeldet und die Aufgabe dann beendet. In diesem Modus wird die Validierung nie aufgrund von Fehlern unterbrochen; sie ist auf Geschwindigkeit optimiert. Änderungen am Quell- oder Zielendpunkt werden jedoch als Fehler gemeldet.

Anmerkung

Ab AWS DMS Version 3.4.6 und höher gilt dieses Validierungsverhalten auch für Volllast-Migrationsaufgaben mit aktivierter Validierung.

Reine CDC-Validierung

Bei einer reinen CDC-Validierungsaufgabe werden alle vorhandenen Zeilen zwischen den Quell- und Zieltabellen bei einem Neustart validiert. Darüber hinaus wird eine reine CDC-Validierungsaufgabe kontinuierlich ausgeführt, laufende Replikationsänderungen werden erneut validiert, die Anzahl der bei jedem Durchlauf gemeldeten Fehler werden begrenzt und es wird versucht, nicht übereinstimmende Zeilen erneut auszuführen, bevor sie fehlschlagen. Diese Aufgaben sind so optimiert, dass Fehlalarme vermieden werden.

Die Validierung einer Tabelle (oder der gesamten Aufgabe) wird unterbrochen, wenn die Schwellenwerte FailureMaxCount oder TableFailureMaxCount überschritten werden. Dies gilt auch für eine CDC- oder Volllast-und-CDC-Migrationsaufgabe mit aktivierter Validierung. Bei einer CDC-Aufgabe mit aktivierter Validierung wird die erneute Validierung für jede geänderte Zeile auf der Grundlage der durchschnittlichen Quell- und Ziellatenz verzögert.

Bei einer reinen CDC-Validierungsaufgabe werden jedoch keine Daten migriert und es ist keine Latenz vorhanden. Standardmäßig ist ValidationQueryCdcDelaySeconds auf 180 festgelegt. Sie können ihn erhöhen, um Umgebungen mit hoher Latenz zu berücksichtigen und Fehlalarme zu vermeiden.

Anwendungsfälle für die reine Validierung

Zu den Anwendungsfällen für die Aufteilung des Datenvalidierungsteils einer Migrations- oder Replikationsaufgabe in eine separate reine Validierungsaufgabe gehören unter anderem die folgenden:

  • Genaue Kontrolle über den Zeitpunkt der Validierung – Validierungsabfragen belasten sowohl die Quell- als auch die Zielendpunkte zusätzlich. Daher kann es von Vorteil sein, zuerst Daten in einer Aufgabe zu migrieren oder zu replizieren und dann die Ergebnisse in einer anderen Aufgabe zu validieren.

  • Geringere Belastung der Replikations-Instance – Es kann von Vorteil sein, die Datenvalidierung aufzuteilen, sodass sie auf einer eigenen Instance ausgeführt wird.

  • Schnelle Ermittlung, wie viele Zeilen zu einem bestimmten Zeitpunkt nicht übereinstimmen – Sie können beispielsweise kurz vor oder während eines Produktions-Cut-overs zu einem Zielendpunkt in einem Wartungsfenster eine reine Volllast-Validierungsaufgabe erstellen, um eine Antwort auf Ihre Frage zu erhalten.

  • Erwartetes Auftreten von Validierungsfehlern für eine Migrationsaufgabe mit einer CDC-Komponente – Wenn beispielsweise Oracle varchar2 zu PostgreSQL jsonb migriert wird, wiederholt die CDC-Validierung diese fehlgeschlagenen Zeilen und begrenzt die Anzahl der Fehler, die jedes Mal gemeldet werden. Sie können jedoch eine reine Volllast-Validierungsaufgabe erstellen und eine schnellere Antwort erhalten.

  • Sie haben ein Skript/Hilfsprogramm zur Datenreparatur entwickelt, das die Tabelle mit den Validierungsfehlern liest – (siehe auch Fehlerbehebung). Eine reine Volllast-Validierungsaufgabe meldet schnell Fehler, damit das Skript zur Datenreparatur darauf reagieren kann.

Ein Beispiel für ValidationSettings-Aufgabeneinstellungen in einer JSON-Datei finden Sie unter Beispiel für Aufgabeneinstellungen.

Fehlerbehebung

Während der Validierung erstellt AWS DMS eine neue Tabelle am Zielendpunkt: awsdms_control.awsdms_validation_failures_v1. Wenn ein Datensatz in den Status ValidationSuspended oder ValidationFailed wechselt, schreibt AWS DMS Diagnosedaten in awsdms_control.awsdms_validation_failures_v1. Sie können diese Tabelle zur Behebung von Validierungsfehlern abfragen.

Informationen zum Ändern des Standardschemas, in dem die Tabelle auf dem Ziel erstellt wird, finden Sie unter Control table task settings.

Im Folgenden finden Sie eine Beschreibung der Tabelle awsdms_control.awsdms_validation_failures_v1:

Spaltenname Datentyp Beschreibung

TASK_NAME

VARCHAR(128) NOT NULL

AWS DMS-Aufgaben-ID.

TABLE_OWNER VARCHAR(128) NOT NULL

Der Name des Schemabesitzers.

TABLE_NAME

VARCHAR(128) NOT NULL

Tabellenname.

FAILURE_TIME DATETIME(3) NOT NULL

Zeitpunkt, zu dem der Fehler aufgetreten ist.

KEY_TYPE VARCHAR(128) NOT NULL

Reserviert für zukünftige Verwendung (Wert ist immer „Zeile“)

KEY TEXT NOT NULL

Dies ist der Primärschlüssel für den Zeilendatensatztyp.

FAILURE_TYPE VARCHAR(128) NOT NULL

Schweregrad des Validierungsfehlers. Kann RECORD_DIFF, MISSING_SOURCE oder MISSING_TARGET sein.

DETAILS VARCHAR(8000) NOT NULL

Zeichenfolge im JSON-Format mit allen Quell-/Zielspaltenwerten, die nicht mit dem angegebenen Schlüssel übereinstimmen.

Die folgende Abfrage zeigt Ihnen alle Fehler einer Aufgabe an, indem die Tabelle awsdms_control.awsdms_validation_failures_v1 abgefragt wird. Der Aufgabenname sollte die externe Ressourcen-ID der Aufgabe sein. Die externe Ressourcen-ID der Aufgabe ist der letzte Wert des Aufgaben-ARNs. Bei einer Aufgabe mit einem ARN-Wert von arn:aws:dms:us-west-2:5599:task: VFPFKH4FJR3FTYKK2RYSI wäre die externe Ressourcen-ID beispielsweise VFPFKH4FJR3FTYKK2RYSI.

select * from awsdms_validation_failures_v1 where TASK_NAME = 'VFPFKH4FJR3FTYKK2RYSI' TASK_NAME VFPFKH4FJR3FTYKK2RYSI TABLE_OWNER DB2PERF TABLE_NAME PERFTEST FAILURE_TIME 2020-06-11 21:58:44 KEY_TYPE Row KEY {"key": ["3451491"]} FAILURE_TYPE RECORD_DIFF DETAILS [[{'MYREAL': '+1.10106036e-01'}, {'MYREAL': '+1.10106044e-01'}],]

Sie können sich das Feld DETAILS ansehen, um zu ermitteln, welche Spalten nicht übereinstimmen. Da Sie den Primärschlüssel des fehlgeschlagenen Datensatzes haben, können Sie die Quell- und Zielendpunkte abfragen, um zu erfahren, welcher Teil des Datensatzes nicht übereinstimmt.

Redshift-Validierungsleistung

Amazon Redshift unterscheidet sich in mehrfacher Hinsicht von relationalen Datenbanken, darunter bei spaltenbasierter Speicherung, MPP, Datenkomprimierung und anderen Faktoren. Diese Unterschiede geben Redshift ein anderes Leistungsprofil als relationalen Datenbanken.

Während der Volllast-Replikationsphase verwendet die Validierung Bereichsabfragen, wobei die Datengröße durch die Einstellung PartitionSize bestimmt wird. Diese bereichsbasierten Abfragen wählen alle Datensätze aus der Quelltabelle aus.

Bei einer fortlaufenden Replikation wechseln Abfragen zwischen bereichsbasierten und individuellen Datensatzabrufen. Der Abfragetyp wird dynamisch anhand mehrerer Faktoren bestimmt, wie z. B. den folgenden:

  • Volumen der Abfrage

  • Typen von DML-Abfragen in der Quelltabelle

  • Latenz der Aufgabe

  • Gesamtzahl der Datensätze

  • Validierungseinstellungen wie PartitionSize

Möglicherweise wird Ihr Amazon-Redshift-Cluster aufgrund von Validierungsabfragen zusätzlich belastet. Da die oben genannten Faktoren je nach Anwendungsfall variieren, müssen Sie die Leistung Ihrer Validierungsabfrage überprüfen und Ihren Cluster und Ihre Tabelle entsprechend anpassen. Einige Optionen zur Minderung von Leistungsproblemen sind die folgenden:

  • Reduzieren Sie die Einstellungen PartitionSize und ThreadCount, um den Workload bei der Volllastvalidierung zu reduzieren. Beachten Sie, dass dies die Datenvalidierung verlangsamt.

  • Redshift erzwingt zwar keine Primärschlüssel, AWS DMS stützt sich jedoch auf Primärschlüssel, um Datensätze auf dem Ziel für die Datenvalidierung eindeutig zu identifizieren. Wenn möglich, legen Sie den Primärschlüssel so fest, dass er dem Sortierschlüssel entspricht, so dass Abfragen zur Validierung bei vollständiger Auslastung schneller ausgeführt werden.

Einschränkungen

  • Die Validierung erfordert, dass die Tabelle über einen Primärschlüssel oder eindeutigen Index verfügt.

    • Primärschlüsselspalten dürfen nicht vom Typ CLOB, BLOB oder BYTE sein.

    • Bei Primärschlüsselspalten vom Typ VARCHAR oder CHAR muss die Länge kleiner sein als 1024. Sie müssen die Länge im Datentyp angeben. Sie können keine unbegrenzten Datentypen als Primärschlüssel für die Datenüberprüfung verwenden.

    • Ein mit der Klausel NOVALIDATE erstellter Oracle-Schlüssel wird nicht als Primärschlüssel oder eindeutiger Index betrachtet.

    • Bei einer Oracle-Tabelle ohne Primärschlüssel und nur mit einem eindeutigen Schlüssel müssen die Spalten mit der eindeutigen Einschränkung ebenfalls über eine NOT NULL-Einschränkung verfügen.

  • Die Validierung von NULL-PK/UK-Werten wird nicht unterstützt.

  • Wenn die Kollation der Primärschlüsselspalte in der Ziel-PostgreSQL-Instance nicht auf "C" gesetzt ist, weicht die Sortierreihenfolge des Primärschlüssels von der Sortierreihenfolge in Oracle ab. Wenn sich die Sortierreihenfolgen in PostgreSQL und Oracle unterscheiden, kann die Datenvalidierung die Datensätze nicht validieren.

  • Die Validierung generiert zusätzliche Abfragen für die Quell- und Zieldatenbanken. Sie müssen dafür sorgen, dass beide Datenbanken über ausreichend Ressourcen für diese zusätzliche Auslastung verfügen. Dies gilt insbesondere für Redshift-Ziele. Weitere Informationen finden Sie unter Redshift-Validierungsleistung.

  • Die Datenvalidierung wird nicht unterstützt, wenn mehrere Datenbanken zu einer zusammengeführt werden.

  • Bei einem Quell- oder Ziel-Oracle-Endpunkt nutzt AWS DMS DBMS_CRYPTO zur Validierung von LOBs. Wenn Ihr Oracle-Endpunkt LOBs verwendet, müssen Sie dem Benutzerkonto, das für den Zugriff auf den Oracle-Endpunkt verwendet wird, die Ausführungserlaubnis auf dbms_crypto erteilen. Sie können dazu die folgende Anweisung ausführen:

    grant execute on sys.dbms_crypto to dms_endpoint_user;
  • Wenn die Zieldatenbank während der Validierung außerhalb von AWS DMS geändert wird, werden Abweichungen möglicherweise nicht korrekt wiedergegeben. Dies kann der Fall sein, wenn eine Ihrer Anwendungen Daten in die Zieltabelle schreibt, während AWS DMS diese Tabelle validiert.

  • Wenn eine oder mehrere Zeilen während der Validierung kontinuierlich geändert werden, kann AWS DMS diese Zeilen nicht validieren.

  • Wenn AWS DMS feststellt, dass mehr als 10 000 Datensätze fehlschlugen oder ausgesetzt wurden, wird die Validierung gestoppt. Bevor Sie fortfahren, müssen Sie sämtliche zugrundeliegenden Datenprobleme lösen.

  • AWS DMS unterstützt keine Datenvalidierung von Ansichten.

  • AWS DMS unterstützt keine Datenvalidierung, wenn Aufgabeneinstellungen für die Zeichenersetzung verwendet werden.

  • AWS DMS unterstützt die Validierung des OracleTyps LONG nicht.

  • AWS DMS unterstützt die Validierung des Typs Oracle Spatial während einer heterogenen Migration nicht.

Informationen zu Einschränkungen bei Verwendung der S3-Zielvalidierung finden Sie unter Einschränkungen bei Verwendung der S3-Zielvalidierung.