

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
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations"></a>

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
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Limitations"></a>
+ 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-COLUMN` `CHANGE-DATA-TYPE`
+ 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. \$1, \$1, /, -) 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 `ID` und die entsprechende Zieltabelle hat eine bereits existierende Spalte mit dem Namen `id`. Wenn eine Regel eine `ADD-COLUMN` Anweisung verwendet, um eine neue Spalte namens hinzuzufügen`id`, und eine SQLite Anweisung, um die Spalte mit benutzerdefinierten Werten zu füllen, erzeugt dies ein doppeltes, mehrdeutiges Objekt mit dem Namen `id` und wird nicht unterstützt. 
+ Beim Erstellen einer Transformationsregel empfehlen wir, den `data-type` Parameter nur zu verwenden, wenn die Auswahlregeln mehrere Spalten angeben, z. B. wenn Sie `column-name` auf `%` festlegen. Wir empfehlen nicht, `data-type` fü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
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Values"></a>

Für Tabellenzuweisungsregeln, die den Regeltyp "Transformation" verwenden, können Sie die folgenden Werte anwenden. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html)

## Beispiele
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Examples"></a>

**Example 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"
        }
    ]
}
```

**Example 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"
        }
    ]
}
```

**Example 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"
        }
    ]
}
```

**Example 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"
        }
    ]
}
```

**Example 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"
        }
    ]
}
```

**Example 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
            }
        }
    ]
}
```

**Example 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%"
		}
	}]
 }
```

**Example 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"
		}
	}]
}
```

**Example 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": "%"
            }
        }
    ]
}
```

**Example 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_"
	}]
 
}
```

**Example 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_"
        }
    ]
}
```

**Example 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"
	}]
}
```

**Example 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"
			]
              }
	}]
}
```

**Example 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"
			]
              }
	}]
}
```

**Example Ä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"
    }
}
```

**Example 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.