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.
Transformationsregeln und Aktionen
Sie verwenden die Transformationsaktionen, um alle Transformationen anzugeben, die Sie auf das ausgewählte Schema, Tabelle oder Ansicht anwenden möchten. Transformationsregeln sind optional.
Einschränkungen
Sie können nicht mehr als eine Transformationsregelaktion auf dasselbe Objekt (Schema, Tabelle, Spalte, Tabellen-Tablespace oder Index-Tablespace) anwenden. Sie können mehrere Transformationsregelaktionen auf jeder Ebene anwenden, solange jede Transformationsaktion auf ein anderes Objekt angewendet wird. Diese Einschränkung gilt jedoch nicht, wenn Sie Transformationsregeln für die Datenmaskierung verwenden, bei denen Sie eine weitere Transformation wie oder für dieselbe Spalte verwenden können.
ADD-COLUMNCHANGE-DATA-TYPEBei Tabellennamen und Spaltennamen in Transformationsregeln muss die Groß- und Kleinschreibung beachtet werden. Beispielsweise müssen Sie Tabellennamen und Spaltennamen für eine Oracle- oder Db2-Datenbank in Großbuchstaben angeben.
Transformationen werden für Spaltennamen mit Right-to-Left Sprachen nicht unterstützt.
Transformationen können nicht für Spalten durchgeführt werden, deren Name Sonderzeichen (z. B. #, \, /, -) enthält.
Die einzige unterstützte Transformation für Spalten, die BLOB/CLOB Datentypen zugeordnet sind, besteht darin, die Spalte auf dem Ziel zu löschen.
AWS DMS unterstützt nicht die Replikation von zwei Quelltabellen in eine einzelne Zieltabelle. AWS DMS repliziert Datensätze von Tabelle zu Tabelle und von Spalte zu Spalte gemäß den Transformationsregeln der Replikationsaufgabe. Die Objektnamen müssen eindeutig sein, um Überschneidungen zu vermeiden.
Beispielsweise hat eine Quelltabelle eine Spalte mit dem Namen
IDund die entsprechende Zieltabelle hat eine bereits existierende Spalte mit dem Namenid. Wenn eine Regel eineADD-COLUMNAnweisung verwendet, um eine neue Spalte namens hinzuzufügenid, und eine SQLite Anweisung, um die Spalte mit benutzerdefinierten Werten zu füllen, erzeugt dies ein doppeltes, mehrdeutiges Objekt mit dem Namenidund wird nicht unterstützt.Beim Erstellen einer Transformationsregel empfehlen wir, den
data-typeParameter nur zu verwenden, wenn die Auswahlregeln mehrere Spalten angeben, z. B. wenn Siecolumn-nameauf%festlegen. Wir empfehlen nicht,data-typefür die Auswahl einer einzelnen Spalte zu verwenden.-
AWS DMS unterstützt keine Transformationsregeln, bei denen sich Quell- und Zielobjekte (Tabellen) in derselben Datenbank/demselben Schema befinden. Die Verwendung derselben Tabelle als Quelle und Ziel in einer Transformationsregel kann zu unerwarteten und potenziell schädlichen Ergebnissen führen, einschließlich, aber nicht beschränkt auf unbeabsichtigte Änderungen an den Tabellendaten, Änderungen von Tabellenstrukturen oder sogar das Löschen von Tabellen.
Werte
Für Tabellenzuweisungsregeln, die den Regeltyp "Transformation" verwenden, können Sie die folgenden Werte anwenden.
| Parameter | Mögliche Werte | Beschreibung |
|---|---|---|
rule-type |
transformation |
Ein Wert, mit dem die Regel auf jedes von der Auswahlregel festgelegte Objekt angewendet wird. Verwenden Sie transformation, falls nicht anders angegeben. |
rule-id |
Ein numerischer Wert. | Ein eindeutiger numerischer Wert zur Identifizierung der Regel. Wenn Sie mehrere Transformationsregeln für dasselbe Objekt angeben (Schema, Tabelle, Spalte, tabellenübergreifender Bereich oder Indextabellenbereich), wird die Transformationsregel mit der niedrigeren Regel-ID AWS DMS angewendet. |
rule-name |
Ein alphanumerischer Wert. | Ein eindeutiger Name zur Identifizierung der Regel. |
object-locator |
Ein Objekt mit den folgenden Parametern:
|
Der Name der einzelnen Schemata, Tabellen oder Ansichten, Tabellen-Tabellenräume, Index-Tabellenräume und Spalten, für die die Regel gilt. Sie können das Prozentzeichen „%“ als Platzhalter für alle oder einen Teil der Werte der einzelnen
Darüber hinaus ist der Parameter
|
rule-action |
|
Die Transformation, die Sie auf das Objekt anwenden möchten. Bei allen Transformationsregelaktionen wird zwischen Groß- und Kleinschreibung unterschieden. Der
Der Der Sie können eine Für eine bestehende Aufgabe werden Transformationsregelaktionen, die das Zieltabellenschema ändern, wie Die |
rule-target |
schema, table,
column, table-tablespace,
index-tablespace |
Der Objekttyp, den Sie transformieren. Die Werte Stellen Sie sicher, dass Sie einen Wert für den Parameter als Teil des Namens |
value |
Ein alphanumerischer Wert, der den Benennungsregeln für den Zieltyp folgt. | Der neue Wert für Aktionen, die eine Eingabe erfordern, z. B. rename. |
old-value |
Ein alphanumerischer Wert, der den Benennungsregeln für den Zieltyp folgt. | Der alte Wert für Aktionen, die Ersatz erfordern, z. B. replace-prefix. |
data-type |
Oder der Name des Ersetzungsdatentyps, wenn AWS DMS unterstützt Transformationen von Spaltendatentypen für die folgenden DMS-Datentypen: AnmerkungAWS DMS kann Transformationen von einem Typ zu einem anderen NUR in unterstützten Formaten anwenden. z. B. DATE sollte in
|
Im Folgenden sehen Sie ein Beispiel für einen
Hier wird die Spalte |
expression |
Ein alphanumerischer Wert, der der SQLite Syntax folgt. |
Bei Verwendung mit dem Bei Verwendung mit dem Beachten Sie, dass für diesen Parameter nur Ausdrücke unterstützt werden. Operatoren und Befehle werden nicht unterstützt. Weitere Informationen zum Verwenden von Ausdrücken für Transformationsregeln finden Sie unter Verwenden von Transformationsregelausdrücken zum Definieren von Spalteninhalten. Weitere Hinweise zu SQLite Ausdrücken finden Sie unterVerwenden von SQLite Funktionen zum Erstellen von Ausdrücken. |
primary-key-def |
Ein Objekt mit den folgenden Parametern:
|
Dieser Parameter kann den Namen, Typ und Inhalt eines eindeutigen Schlüssels in der transformierten Tabelle oder Ansicht definieren. Dies geschieht, wenn rule-action auf define-primary-key und rule-target auf table gesetzt ist. Standardmäßig ist der eindeutige Schlüssel als Primärschlüssel definiert. |
before-image-def |
Ein Objekt mit den folgenden Parametern:
|
Dieser Parameter definiert eine Benennungskonvention zum Identifizieren der Vorher-Abbild-Spalten und gibt einen Filter an, um zu identifizieren, für welche Quellspalten Vorher-Abbild-Spalten auf dem Ziel erstellt werden können. Sie können diesen Parameter angeben, wenn Setzen Sie nicht Wählen Sie bei
AnmerkungDer Weitere Informationen zur Unterstützung von Vorher-Abbildern für AWS DMS -Zielendpunkte finden Sie unter: |
Beispiele
Beispiel Umbenennen eines Schemas
Im folgenden Beispiel wird ein Schema von Test in Ihrer Quelle auf Test1 in Ihrem Ziel umbenannt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "Test" }, "value": "Test1" } ] }
Beispiel Tabellen umbenennen
Im folgenden Beispiel wird eine Tabelle von Actor in Ihrer Quelle auf Actor1 in Ihrem Ziel umbenannt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table", "object-locator": { "schema-name": "Test", "table-name": "Actor" }, "value": "Actor1" } ] }
Beispiel Umbenennen einer Spalte
Im folgenden Beispiel wird eine Spalte in Tabelle Actor von first_name in Ihrer Quelle auf fname in Ihrem Zielendpunkt umbenannt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "4", "rule-name": "4", "rule-action": "rename", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name" : "first_name" }, "value": "fname" } ] }
Beispiel Umbenennen eines Oracle-Tabellen-Tabellenraums
Im folgenden Beispiel wird der Tabellen-Tabellenraum mit dem Namen SetSpace für eine Tabelle mit dem Namen Actor in Ihrer Oracle-Quelle auf SceneTblSpace in Ihrem Oracle-Zielendpunkt umbenannt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name": "SetSpace" }, "value": "SceneTblSpace" } ] }
Beispiel Umbenennen eines Oracle-Index-Tabellenraums
Im folgenden Beispiel wird der Index-Tabellenraum mit dem Namen SetISpace für eine Tabelle mit dem Namen Actor in Ihrer Oracle-Quelle auf SceneIdxSpace in Ihrem Oracle-Zielendpunkt umbenannt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name": "SetISpace" }, "value": "SceneIdxSpace" } ] }
Beispiel Hinzufügen einer Spalte
Im folgenden Beispiel wird der Tabelle Actor im Schema test eine datetime- Spalte hinzugefügt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "actor" }, "value": "last_updated", "data-type": { "type": "datetime", "precision": 6 } } ] }
Beispiel Entfernen einer Spalte
Im folgenden Beispiel wird die Tabelle mit dem Namen Actor in Ihrer Quelle so transformiert, dass alle Spalten, die mit den Zeichen col beginnen, in Ihrem Ziel daraus entfernt werden.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
Beispiel In Kleinbuchstaben konvertieren
Im folgenden Beispiel wird ein Tabellenname von ACTOR in Ihrer Quelle auf actor in Ihrem Ziel umgewandelt.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "ACTOR" } }] }
Beispiel Umwandeln in Großschreibung
Im folgenden Beispiel werden alle Spalten in allen Tabellen und allen Schemata von Kleinschreibung an Ihrer Quelle in Großschreibung an Ihrem Ziel umgewandelt.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-uppercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ] }
Beispiel Hinzufügen eines Präfix
Im folgenden Beispiel werden alle Tabellen in Ihrer Quelle so transformiert, dass ihnen das Präfix DMS_ in Ihrem Ziel hinzugefügt wird.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "%" }, "value": "DMS_" }] }
Beispiel Ersetzen eines Präfix
Im folgenden Beispiel werden alle Spalten, die das Präfix Pre_ in Ihrer Quelle enthalten, so transformiert, dass das Präfix durch NewPre_ in Ihrem Ziel ersetzt wird.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "replace-prefix", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" }, "value": "NewPre_", "old-value": "Pre_" } ] }
Beispiel Entfernen eines Suffix
Im folgenden Beispiel werden alle Tabellen in Ihrer Quelle so transformiert, dass aus ihnen das Suffix _DMS in Ihrem Ziel entfernt wird.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-suffix", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "%" }, "value": "_DMS" }] }
Beispiel Definieren eines Primärschlüssels
Das folgende Beispiel definiert einen Primärschlüssel mit dem Namen ITEM-primary-key auf drei Spalten der ITEM-Tabelle, die zu Ihrem Zielendpunkt migriert wurde.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": "ITEM-primary-key", "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }] }
Beispiel Definieren eines eindeutigen Index
Das folgende Beispiel definiert einen eindeutigen Index mit dem Namen ITEM-unique-idx auf drei Spalten der ITEM-Tabelle, die zu Ihrem Zielendpunkt migriert wurde.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": "ITEM-unique-idx", "origin": "unique-index", "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }] }
Beispiel Ändern des Datentyps der Zielspalte
Im folgenden Beispiel wird der Datentyp einer Zielspalte namens SALE_AMOUNT von einem vorhandenen Datentyp in int8 geändert.
{ "rule-type": "transformation", "rule-id": "1", "rule-name": "RuleName 1", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "dbo", "table-name": "dms", "column-name": "SALE_AMOUNT" }, "data-type": { "type": "int8" } }
Beispiel Hinzufügen einer Vorher-Abbild-Spalte
Für eine Quellspalte mit dem Namen emp_no fügt die Transformationsregel im folgenden Beispiel eine neue Spalte mit dem Namen BI_emp_no auf dem Ziel hinzu.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "employees" }, "rule-action": "add-before-image-columns", "before-image-def": { "column-prefix": "BI_", "column-suffix": "", "column-filter": "pk-only" } } ] }
Hier füllt die folgende Anweisung eine BI_emp_no-Spalte in der entsprechenden Zeile mit 1.
UPDATE employees SET emp_no = 3 WHERE BI_emp_no = 1;
Beim Schreiben von CDC-Aktualisierungen für unterstützte AWS DMS Ziele lässt sich anhand der BI_emp_no Spalte erkennen, für welche Zeilen die Werte in der emp_no Spalte aktualisiert wurden.