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.
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
ADD-COLUMN
oderCHANGE-DATA-TYPE
für dieselbe Spalte verwenden können.Bei 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 den 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 einzige 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
ID
und die entsprechende Zieltabelle hat eine bereits existierende Spalte mit dem Namenid
. Wenn eine Regel eineADD-COLUMN
Anweisung 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 Namenid
und wird nicht unterstützt.Beim Erstellen einer Transformationsregel empfehlen wir, den
data-type
Parameter nur dann zu verwenden, wenn die Auswahlregeln mehrere Spalten angeben, z. B. wenn Siecolumn-name
auf%
festlegen. Es wird nicht empfohlen, die Verwendungdata-type
für die Auswahl einer einzelnen Spalte zu verwenden.
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 Index-Tabellenbereich), 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:
|
Im Folgenden sehen Sie ein Beispiel für einen
Hier wird die Spalte |
expression |
Ein alphanumerischer Wert, der der Syntax folgtSQLite. |
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 Funktionen SQLite 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
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 Umbenennen einer Tabelle
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 kann BI_emp_no
anhand der Spalte festgestellt werden, welche Zeilen in der emp_no
Spalte aktualisierte Werte enthalten.