Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

AWS DMSDatenvalidierung

Fokusmodus
AWS DMSDatenvalidierung - 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.

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.

AWS DMS bietet Unterstützung bei der 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 Aufgabe mit CDC aktivierter Option verglichen, sobald sie auftreten.

AWS DMS Vergleicht bei der Datenüberprüfung jede Zeile in der Quelle mit der entsprechenden Zeile im Ziel, überprüft, ob die Zeilen dieselben Daten enthalten, und meldet etwaige Abweichungen. Um dies zu erreichen, AWS DMS werden entsprechende Abfragen zum Abrufen der Daten ausgeführt. Beachten Sie, dass diese Abfragen zusätzliche Ressourcen an der Quelle und am Ziel sowie zusätzliche Netzwerkressourcen verbrauchen.

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

Die Datenüberprüfung funktioniert mit den folgenden Quelldatenbanken, sofern sie als Quellendpunkte AWS DMS unterstützt werden:

  • Oracle

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

  • Meine SQL -kompatible Datenbank (MySQL, MariaDB, Aurora My SQL oder Aurora Serverless for My) SQL

  • SQLMicrosoft-Server

  • IBMDb2 LUW

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

  • Oracle

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

  • Meine SQL -kompatible Datenbank (MySQL, MariaDB, Aurora My SQL oder Aurora Serverless for My) SQL

  • SQLMicrosoft-Server

  • IBMDb2 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 unterBeispiel für Aufgabeneinstellungen.

Replikationsaufgaben-Statistiken

Wenn die Datenüberprüfung aktiviert ist, AWS DMS werden die folgenden Statistiken auf Tabellenebene bereitgestellt:

  • 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— Die Anzahl der Datensätze, die auf das Ziel migriert, aber noch nicht validiert wurden.

  • ValidationSuspended— Die Anzahl der Datensätze, die nicht verglichen AWS DMS werden können. Wenn beispielsweise ein Datensatz an der Quelle ständig aktualisiert wird, AWS DMS können Quelle und Ziel nicht verglichen werden.

  • ValidationFailed— Die Anzahl der Datensätze, die die Datenvalidierungsphase nicht bestanden haben.

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

Sie können die Informationen zur Datenüberprüfung in der Konsole AWS CLI, dem oder dem anzeigen AWS DMS API.

  • 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 den EnableValidation Parameter mithilfe von aufCLI, true wenn Sie eine Aufgabe erstellen oder ändern, um mit der Datenüberprüfung 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 describe-table-statistics Befehl, 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 } }
  • Erstellen Sie mithilfe der AWS DMS API CreateReplicationTaskAktion eine Aufgabe und setzen Sie den EnableValidation Parameter auf true, um die von der Aufgabe migrierten Daten zu überprüfen. Verwenden Sie die DescribeTableStatisticsAktion, um den Datenvalidierungsbericht im JSON Format zu erhalten.

Statistiken zu Replikationsaufgaben mit Amazon CloudWatch

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

  • ValidationSucceededRecordCount— Anzahl der AWS DMS validierten Zeilen pro Minute.

  • ValidationAttemptedRecordCount— Anzahl der Zeilen, für die eine Überprüfung versucht wurde, pro Minute.

  • ValidationFailedOverallCount— Anzahl der Zeilen, in denen die Überprüfung fehlgeschlagen ist.

  • ValidationSuspendedOverallCount— Anzahl der Zeilen, in denen die Validierung ausgesetzt wurde.

  • ValidationPendingOverallCount— Anzahl der Zeilen, in denen die Validierung noch aussteht.

  • ValidationBulkQuerySourceLatency— AWS DMS kann die Datenvalidierung in großen Mengen durchführen, insbesondere in bestimmten Szenarien während einer Volllast oder einer laufenden Replikation, wenn es viele Änderungen gibt. Diese Metrik gibt die Latenz an, die zum Lesen eines Massendatensatzes aus dem Quellendpunkt erforderlich ist.

  • ValidationBulkQueryTargetLatency— AWS DMS kann die Datenvalidierung in großen Mengen durchführen, insbesondere in bestimmten Szenarien während einer Volllast oder einer laufenden Replikation, wenn viele Änderungen vorgenommen werden. Diese Metrik gibt die Latenz an, die zum Lesen eines Massendatensatzes am Zielendpunkt erforderlich ist.

  • ValidationItemQuerySourceLatency— Während der laufenden Replikation kann die Datenvalidierung laufende Änderungen identifizieren und diese Änderungen validieren. 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 kann die Datenvalidierung laufende Änderungen identifizieren und die Änderungen Zeile für Zeile validieren. 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 aktivierten Statistiken zu sammeln, wählen Sie CloudWatch Protokolle 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.

  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 AWS DMS die Datenvalidierung anfordern.

AWS Management Console

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

    Wenn Sie als Benutzer AWS Identity and Access Management (IAM) angemeldet sind, stellen Sie sicher, dass Sie über die entsprechenden Zugriffsberechtigungen verfügen AWS DMS. Die erforderlichen Berechtigungen finden Sie unter. IAMFür die Verwendung sind die erforderlichen Berechtigungen erforderlich 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).

Verwenden des JSON Editors zum Ändern von Validierungsregeln

Gehen Sie wie folgt vor, um mithilfe des JSON Editors von der AWS DMS Konsole aus einer Aufgabe 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 den JSONEditor aus und fügen Sie Ihre Validierungsregel zu Ihren Tabellenzuordnungen 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 einem Migrationstyp „Nur Volllast“ wird eine reine Validierungsaufgabe viel schneller abgeschlossen als ihre CDC Entsprechung, wenn viele Fehler gemeldet werden. Änderungen am Quell- oder Zielendpunkt werden im Volllastmodus jedoch als Fehler gemeldet, was einen möglichen Nachteil darstellt.

Eine CDC reine Validierungsaufgabe verzögert die Validierung auf der Grundlage der durchschnittlichen Latenz und wiederholt Fehler mehrmals, bevor sie gemeldet werden. Wenn die meisten Datenvergleiche zu Fehlern führen, ist eine reine CDC Modusvalidierungsaufgabe sehr langsam, was ein potenzieller Nachteil ist.

Eine reine Validierungsaufgabe muss in derselben Richtung wie die Replikationsaufgabe eingerichtet werden, insbesondere für. CDC Dies liegt daran, dass eine Aufgabe vom Typ Nur CDC Validierung erkennt, welche Zeilen sich geändert haben und anhand des Änderungsprotokolls in der Quelle erneut validiert werden müssen. Wenn das Ziel als Quelle angegeben ist, weiß es nur über Änderungen Bescheid, die von an das Ziel gesendet wurden, DMS und es kann nicht garantiert werden, dass Replikationsfehler erkannt werden.

Reine Volllastvalidierung

Ab AWS DMS Version 3.4.6 und höher vergleicht eine Aufgabe, die ausschließlich auf Volllastvalidierung beschränkt ist, schnell alle Zeilen aus der Quell- und Zieltabelle in einem einzigen Durchgang, meldet sofort alle Fehler und wird dann heruntergefahren. 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.

CDCnur Validierung

Eine CDC reine Validierungsaufgabe validiert alle vorhandenen Zeilen zwischen den Quell- und Zieltabellen bei einem Neuanfang. Darüber hinaus wird eine reine CDC Validierungsaufgabe kontinuierlich ausgeführt, validiert laufende Replikationsänderungen erneut, begrenzt die Anzahl der bei jedem Durchlauf gemeldeten Fehler und versucht erneut, nicht übereinstimmende Zeilen 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 Full CDC Load+-Migrationsaufgabe mit aktivierter Überprüfung. Und eine CDC Aufgabe mit aktivierter Validierung verzögert die erneute Validierung für jede geänderte Zeile auf der Grundlage der durchschnittlichen Quell- und Ziellatenz.

Eine reine CDC Validierungsaufgabe migriert jedoch keine Daten und hat keine Latenz. 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.

  • Wenn bei einer Migrationsaufgabe mit einer CDC Komponente mit Validierungsfehlern zu rechnen ist — wenn beispielsweise Oracle varchar2 zu Postgre migriert wird, versucht die CDC Überprüfung immer wieder SQLjsonb, diese fehlgeschlagenen Zeilen zu überprüfen, 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 Task-Einstellungen in einer JSON Datei finden Sie unter). Beispiel für Aufgabeneinstellungen

Fehlerbehebung

AWS DMS Erstellt während der Überprüfung eine neue Tabelle am Zielendpunkt:awsdms_control.awsdms_validation_failures_v1. Wenn ein Datensatz den Status ValidationSuspendedoder den ValidationFailedStatus erreicht, werden Diagnoseinformationen in diesen AWS DMS geschriebenawsdms_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

JSONformatierte Zeichenfolge aller Quell-/Zielspaltenwerte, die nicht mit dem angegebenen Schlüssel übereinstimmen.

Im Folgenden finden Sie eine Beispielabfrage für „Mein SQL Ziel“, die Ihnen alle Fehler bei einer Aufgabe anzeigt, indem Sie die Tabelle abfragen. awsdms_control.awsdms_validation_failures_v1 Beachten Sie, dass der Schemaname und die Abfragesyntax je nach Ziel-Engine-Version variieren. Der Aufgabenname sollte die externe Ressourcen-ID der Aufgabe sein. Die externe Ressourcen-ID der Aufgabe ist der letzte Wert in der AufgabeARN. Für eine Aufgabe mit dem ARN Wert arn:aws:dms:us-west- 2:5599:task: wäre die externe Ressourcen-ID der Aufgabe beispielsweise. VFPFKH4FJR3FTYKK2RYSI 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, einschließlich spaltenbasierter SpeicherungMPP, 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

  • Arten 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.

Verbesserte Datenvalidierung für AWS Database Migration Service

Die erweiterte Datenvalidierung ist jetzt in Version 3.5.4 der Replikationsengine sowohl für Volllast als auch für Volllast mit Migrationsaufgaben verfügbar. CDC Derzeit unterstützt diese Erweiterung Migrationspfade von Oracle zu PostgreSQL, SQL Server zu PostgreSQL, Oracle zu Oracle und SQL Server zu Server. SQL

Voraussetzungen

  • Oracle: Erteilen Sie dem Benutzerkonto, das SYS.DBMS_CRYPTO auf den Oracle-Endpunkt zugreift, die entsprechenden EXECUTE Berechtigungen:

    GRANT EXECUTE ON SYS.DBMS_CRYPTO TO dms_endpoint_user;
  • Installieren Sie die pgcrypto Erweiterung in der Postgre-Datenbank: SQL

    Anmerkung

    Für Amazon RDS for P ostgreSQLinstances ist die pgcrypto Erweiterung bereits aktiviert.

    Für selbstverwaltete SQL Postgre-Instances müssen Sie die contrib Modulbibliotheken installieren und die Erweiterung erstellen:

    • Installieren Sie die contrib Modulbibliotheken. Zum Beispiel auf einer EC2 Amazon-Instance mit Amazon Linux und Postgre SQL 15:

      sudo dnf install postgresql15-contrib
    • Erstellen Sie die pgcrypto Erweiterung:

      CREATE EXTENSION IF NOT EXISTS pgcrypto;
  • Konfigurieren Sie RDS für Amazon for SQL Postgre-Instances den SSL Modus für den AWS DMS Endpunkt:

    • Standardmäßig RDS erzwingt Amazon eine SSL Verbindung. Wenn Sie einen AWS DMS Endpunkt für eine Amazon RDS for SQL Postgre-Instance erstellen, verwenden Sie die Option "SSLmode“ = „required“.

    • Wenn Sie die Option "SSLmode“ = „none“ verwenden möchten, setzen Sie den rds.force_ssl Parameter in der RDS Parametergruppe auf 0.

  • Erstellen Sie für Postgre SQL 12 und 13 das BIT_XOR Aggregat:

    CREATE OR REPLACE AGGREGATE BIT_XOR(IN v bit) (SFUNC = bitxor, STYPE = bit);

Einschränkungen

Diese erweiterte Datenvalidierungsfunktion hat die folgenden Einschränkungen:

  • Anforderungen an Datenbankendpunkte: Diese Verbesserung ist nur für Datenbank-Endpunkte aktiviert, die die folgenden Kriterien erfüllen:

    • Wird AWS Secrets Manager zum Speichern von Anmeldeinformationen verwendet.

    • Für Microsoft SQL Server wird auch die Kerberos-Authentifizierung unterstützt.

  • Unterstützung für Datenbankversionen:

    • Postgre SQL 12 und höher

    • Oracle 12.1 und höher

    • Für Microsoft SQL Server-Versionen vor 2019 wird die Validierung von NCHAR NVARCHAR Datentypen nicht unterstützt.

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 Sortierung der Primärschlüsselspalte in der SQL Postgre-Zielinstanz nicht auf „C“ gesetzt ist, unterscheidet sich die Sortierreihenfolge des Primärschlüssels von der Sortierreihenfolge in Oracle. Wenn die Sortierreihenfolge zwischen Postgre SQL und Oracle unterschiedlich ist, können die Datensätze bei der Datenvalidierung nicht validiert werden.

  • 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.

  • Für einen Oracle-Quell- oder Zielendpunkt AWS DMS verwendet DBMS _ CRYPTO zur ValidierungLOBs. Wenn Ihr Oracle-Endpunkt verwendetLOBs, müssen Sie dem Benutzerkonto, das für den Zugriff auf den Oracle-Endpunkt verwendet wird, die Ausführungsberechtigung für dbms_crypto gewähren. Sie können dazu die folgende Anweisung ausführen:

    grant execute on sys.dbms_crypto to dms_endpoint_user;
  • Wenn die Zieldatenbank außerhalb oder AWS DMS während der Validierung geändert wird, werden Abweichungen möglicherweise nicht korrekt gemeldet. Dieses Ergebnis kann eintreten, wenn eine Ihrer Anwendungen Daten in die Zieltabelle schreibt, während dieselbe Tabelle überprüft AWS DMS wird.

  • Wenn eine oder mehrere Zeilen während der Validierung kontinuierlich geändert werden, AWS DMS können diese Zeilen nicht validiert werden.

  • Wenn mehr als 10.000 fehlgeschlagene oder gesperrte Datensätze AWS DMS erkannt werden, wird die Überprüfung beendet. 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 Datenüberprüfung, wenn Aufgabeneinstellungen für die Zeichenersetzung verwendet werden.

  • AWS DMS unterstützt die Validierung des LONG Oracle-Typs nicht.

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

  • Bei der Datenüberprüfung werden die Spalten in Tabellen ignoriert, für die Datenmaskierungstransformationen bei der Tabellenzuordnung existieren.

  • Bei der Datenüberprüfung wird eine gesamte Tabelle übersprungen, wenn für die zugehörige PK/UK-Spalte eine Transformationsregel für die Datenmaskierung existiert. Der Validierungsstatus wird für solche Tabellen als Kein Primärschlüssel angezeigt.

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

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.