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-Datenvalidierung
Themen
- Replikationsaufgaben-Statistiken
- Statistiken zu Replikationsaufgaben mit Amazon CloudWatch
- Erneutes Validieren von Tabellen während einer Aufgabe
- Ändern von Validierungsregeln mithilfe des JSON-Editors
- Reine Validierungsaufgaben
- Fehlerbehebung
- Redshift-Validierungsleistung
- Einschränkungen
- Zieldatenvalidierung in Amazon S3
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 CDC-fähige Aufgabe verglichen, sobald sie auftreten.
AWS DMS Vergleicht während der Datenvalidierung jede Zeile in der Quelle mit der entsprechenden Zeile im Ziel, überprüft, ob die Zeilen dieselben Daten enthalten, und meldet etwaige Diskrepanzen. Zu diesem Zweck 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 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 Datenüberprüfung funktioniert mit den folgenden Quelldatenbanken, sofern sie als Quellendpunkte AWS DMS unterstützt werden:
-
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, sofern sie als Zielendpunkte AWS DMS unterstützt werden:
-
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, 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 unter Beispiel für Aufgabeneinstellungen.
Sie können die Informationen zur Datenvalidierung mithilfe der Konsole AWS CLI, der 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
auftrue
, 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 } }
Erstellen Sie mithilfe der AWS DMS API mithilfe der CreateReplicationTaskAktion eine Aufgabe und setzen Sie den
EnableValidation
Parameter auf true, um die von der Aufgabe migrierten Daten zu validieren. 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.
Wählen Sie die Aufgabe auf der Seite Datenbankmigrationsaufgaben aus.
Wählen Sie die Registerkarte CloudWatch Metriken.
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 die Durchführung einer AWS DMS Datenvalidierung anfordern.
AWS Management Console
-
Melden Sie sich bei der an AWS Management Console 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, stellen Sie sicher, dass Sie über die entsprechenden Zugriffsberechtigungen verfügen AWS DMS. Die erforderlichen Berechtigungen finden Sie unterIAMFür die Verwendung sind die erforderlichen Berechtigungen erforderlich AWS DMS.
-
Wählen Sie im Navigationsbereich Tasks (Aufgaben) aus.
-
Wählen Sie die laufende Aufgabe mit der Tabelle aus, die sie erneut validieren möchten.
Wählen Sie die Registerkarte Table Statistics (Tabellenstatistiken).
-
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.
-
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:
-
Wählen Sie Datenbankmigrationsaufgaben aus.
-
Wählen Sie Ihre Aufgabe in der Liste der Migrationsaufgaben aus.
-
Wenn Ihre Aufgabe gerade ausgeführt wird, wählen Sie im Drop-down-Menü Aktionen die Option Stoppen aus.
-
Nachdem die Aufgabe beendet wurde, wählen Sie im Drop-down-Menü Aktionen die Option Ändern aus, um die Aufgabe zu ändern.
-
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 vergleicht eine Aufgabe, die nur für die Volllastvalidierung gilt, 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.
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 PostgreSQLjsonb
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
AWS DMS Erstellt während der Validierung 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 |
---|---|---|
|
|
AWS DMS Aufgaben-ID. |
TABLE_OWNER |
VARCHAR(128) NOT NULL |
Der Name des Schemabesitzers. |
|
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 |
DETAILS |
VARCHAR(8000) NOT NULL |
Zeichenfolge im JSON-Format mit allen Quell-/Zielspaltenwerten, die nicht mit dem angegebenen Schlüssel übereinstimmen. |
Im Folgenden finden Sie eine Beispielabfrage für ein MySQL-Ziel, die Ihnen alle Fehler für eine Aufgabe zeigt, indem Sie die awsdms_control.awsdms_validation_failures_v1
Tabelle abfragen. 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 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
undThreadCount
, 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
oderBYTE
sein.-
Bei Primärschlüsselspalten vom Typ
VARCHAR
oderCHAR
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.
-
AWS DMS Verwendet für einen Oracle-Quell- oder Zielendpunkt 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 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 Oracle LONG-Typs nicht.
AWS DMS unterstützt die Validierung des Oracle Spatial-Typs 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.