Zieldatenvalidierung in Amazon S3 - 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.

Zieldatenvalidierung in Amazon S3

AWS DMS unterstützt die Validierung replizierter Daten in Amazon-S3-Zielen. Da AWS DMS replizierte Daten in Amazon S3 als Flatfiles speichert, verwenden wir CREATE TABLE AS SELECT (CTAS)-Abfragen in Amazon Athena zur Datenvalidierung.

Abfragen von Daten, die in Amazon S3 gespeichert sind, sind rechenintensiv. Daher führt AWS DMS die Validierung von Amazon-S3-Daten während der Erfassung von Datenänderungen (Change Data Capture, CDC) nur einmal täglich durch, um Mitternacht (00:00 Uhr) UTC. Jede tägliche Validierung, die AWS DMS ausführt, wird als Intervallvalidierung bezeichnet. Während einer Intervallvalidierung validiert AWS DMS alle Änderungsdatensätze, die in den letzten 24 Stunden auf den Ziel-Bucket von Amazon S3 migriert wurden. Weitere Informationen zu Einschränkungen bei der Intervallvalidierung finden Sie unter Einschränkungen bei Verwendung der S3-Zielvalidierung.

Die Amazon-S3-Zielvalidierung nutzt Amazon Athena. Daher fallen zusätzliche Kosten an. Weitere Informationen hierzu finden Sie unter Preise zu Amazon Athena.

Anmerkung

Die S3-Zielvalidierung erfordert AWS DMS-Version 3.5.0 oder höher.

Voraussetzungen für die S3-Zielvalidierung

Bevor Sie die S3-Zielvalidierung verwenden, überprüfen Sie die folgenden Einstellungen und Berechtigungen:

  • Setzen Sie den Wert DataFormat für die S3Settings Ihres Endpunkts auf parquet. Weitere Informationen finden Sie unter Parquet-Einstellungen für S3.

  • Vergewissern Sie sich, dass die dem Benutzerkonto zugewiesene Rolle, mit der die Migrationsaufgabe erstellt wurde, den richtigen Satz von Berechtigungen aufweist. Weitere Informationen finden Sie im Nachfolgenden unter Berechtigungen.

Überprüfen Sie für Aufgaben, die die laufende Replikation (CDC) verwenden, die folgenden Einstellungen:

Berechtigungen für die Verwendung der S3-Zielvalidierung

Wenn Sie Zugriff für die Verwendung der S3-Zielvalidierung einrichten möchten, vergewissern Sie sich, dass die dem Benutzerkonto zugewiesene Rolle, mit der die Migrationsaufgabe erstellt wurde, den folgenden Satz von Berechtigungen aufweist. Ersetzen Sie die Beispielwerte durch Ihre Werte.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:CreateWorkGroup" ], "Resource": "arn:aws:athena:<endpoint_region_code>:<account_id>:workgroup/dms_validation_workgroup_for_task_*" }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetTables", "glue:CreateTable", "glue:DeleteTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<endpoint_region_code>:<account_id>:catalog", "arn:aws:glue:<endpoint_region_code>:<account_id>:database/aws_dms_s3_validation_*", "arn:aws:glue:<endpoint_region_code>:<account_id>:table/aws_dms_s3_validation_*/*", "arn:aws:glue:<endpoint_region_code>:<account_id>:userDefinedFunction/aws_dms_s3_validation_*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<bucket_name>", "arn:aws:s3:::<bucket_name>/*" ] } ] }

Einschränkungen bei Verwendung der S3-Zielvalidierung

Sehen Sie sich die folgenden zusätzlichen Einschränkungen an, die bei Verwendung der S3-Zielvalidierung gelten. Informationen zu Einschränkungen, die für alle Validierungen gelten, finden Sie unter Einschränkungen.

  • Ihr Wert DatePartitionSequence erfordert eine Komponente für den Tag. Die S3-Zielvalidierung unterstützt das Format YYYYMM nicht.

  • Wenn die Intervallvalidierung während CDC ausgeführt wird, werden in der Tabelle awsdms_validation_failures_v1 möglicherweise falsche Validierungsfehler angezeigt. Diese Fehler treten auf, weil AWS DMS Änderungen, die während der Intervallvalidierung eingegangen sind, in den Partitionsordner des nächsten Tages migriert. Üblicherweise werden diese Änderungen in den Partitionsordner des aktuellen Tages geschrieben. Diese falschen Fehler stellen eine Einschränkung bei der Validierung der Replikation von einer dynamischen Quelldatenbank zu einem statischen Ziel wie beispielsweise Amazon S3 dar. Wenn Sie diese falschen Fehler untersuchen möchten, suchen Sie nach Datensätzen am Ende des Validierungsfensters (00:00 UTC), wenn diese Fehler in der Regel auftreten.

    Stellen Sie sicher, dass der Wert CDCLatencySource für die Aufgabe niedrig ist, um die Anzahl falscher Fehler zu minimieren. Weitere Informationen zur Überwachung der Latenz finden Sie unter Metriken für die Replikationsaufgabe.

  • Bei Aufgaben mit dem Status failed oder stopped werden die Änderungen des Vortages nicht validiert. Erstellen Sie separate reine Validierungsaufgaben mit den gleichen Tabellenzuordnungen sowie den gleichen Quell- und Zielendpunkten, um Validierungsfehler aufgrund unerwarteter Fehler zu minimieren. Weitere Informationen zu reinen Validierungsaufgaben finden Sie unter Verwendung von reinen Validierungsaufgaben mit der S3-Zielvalidierung.

  • Die Spalte Validierungsstatus in der Tabellenstatistik gibt den Status der letzten Intervallvalidierung wieder. Daher kann es vorkommen, dass eine Tabelle mit Nichtübereinstimmungen nach der Intervallvalidierung am nächsten Tag als validiert angezeigt wird. Überprüfen Sie s3_validation_failures folder im Amazon-S3-Ziel-Bucket auf Nichtübereinstimmungen, die vor mehr als einem Tag aufgetreten sind.

  • S3 Validation verwendet die Bucket-Tabellenfunktion von Amazon Athena . Dadurch kann die S3-Validierung eine bucketierte Kopie der Zieltabellendaten erstellen. Das bedeutet, dass die Kopie der Tabellendaten in Teilmengen unterteilt ist, die der internen Partitionierung der DMS-Validierung entsprechen. Athena-Bucket-Tabellen haben ein Limit von 100.000 Buckets. Alle Tabellen, die die S3-Validierung zu validieren versucht, die dieses Limit überschreiten, schlagen bei der Validierung fehl. Die Anzahl der Buckets, die die S3-Validierung zu erstellen versucht, entspricht der folgenden Anzahl:

    (#records in the table) / (validation partition size setting)

    Um diese Einschränkung zu umgehen, erhöhen Sie die Einstellung für die Größe der Validierungspartition, sodass die Anzahl der von S3 Validation erstellten Buckets weniger als 100.000 beträgt. Weitere Informationen zum Bucketing finden Sie unter Partitionieren und Bucketing in Athena im Amazon Athena-Benutzerhandbuch.

Verwendung von reinen Validierungsaufgaben mit der S3-Zielvalidierung

Bei einer reinen Validierungsaufgabe wird eine Validierung der zu migrierenden Daten ausgeführt, ohne dass die Migration ausgeführt wird.

Reine Validierungsaufgaben werden auch dann weiter ausgeführt, wenn die Migrationsaufgabe beendet wird. Dadurch wird sichergestellt, dass AWS DMS das Intervallvalidierungsfenster 00:00 UTC nicht verpasst.

Für reine Validierungsaufgaben mit Ziel-Endpunkten von Amazon S3 gelten die folgenden Einschränkungen:

  • Amazon-S3-Validierungsaufgaben für Volllast mit aktivierter Einstellung Nur Validierung werden unterstützt, funktionieren aber anders als Volllast- und reine Validierungsaufgaben für andere Endpunkte. Wenn S3 ein Ziel ist, führt eine Aufgabe dieses Typs die Validierung ausschließlich anhand der Volllast-Daten im S3-Ziel durch und nicht anhand von Daten, die im Rahmen einer CDC-Migration migriert wurden. Verwenden Sie dieses Feature nur, um Daten zu validieren, die von einer reinen Volllastaufgabe erstellt wurden. Wenn dieser Modus verwendet wird, um Daten in einem Ziel zu validieren, auf dem eine aktive CDC-Aufgabe ausgeführt wird, kommt es nicht zu einer effektiven Validierung.

  • Bei reinen Validierungsaufgaben werden nur Änderungen seit dem letzten Intervallvalidierungsfenster (00:00 UTC) überprüft. Bei reinen Validierungsaufgaben werden keine Volllastdaten oder CDC-Daten aus vorherigen Tagen validiert.