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.
Themen
- Replikationsaufgaben-Statistiken
- Statistiken zu Replikationsaufgaben mit Amazon CloudWatch
- Erneutes Validieren von Tabellen während einer Aufgabe
- Verwenden des JSON Editors zum Ändern von Validierungsregeln
- Reine Validierungsaufgaben
- Fehlerbehebung
- Redshift-Validierungsleistung
- Verbesserte Datenvalidierung für AWS Database Migration Service
- 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 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.
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 AWS DMS die Datenvalidierung anfordern.
AWS Management Console
-
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
-
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).
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:
-
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 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 |
---|---|---|
|
|
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 |
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
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.
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 entsprechendenEXECUTE
Berechtigungen:GRANT EXECUTE ON SYS.DBMS_CRYPTO TO dms_endpoint_user;
-
Installieren Sie die
pgcrypto
Erweiterung in der Postgre-Datenbank: SQLAnmerkung
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
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 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.