

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Operazioni e regole di trasformazione
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations"></a>

Puoi utilizzare le operazioni di trasformazione per specificare le trasformazioni che desideri applicare alla tabella selezionata, allo schema selezionato o alla vista selezionata. Le regole di trasformazione sono opzionali. 

## Limitazioni
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Limitations"></a>
+ Non è possibile applicare più di un'azione della regola di trasformazione sullo stesso oggetto (schema, tabella, colonna, table-tablespace o index-tablespace). È possibile applicare diverse azioni delle regole di trasformazione a qualsiasi livello, purché ogni azione di trasformazione venga applicata a un oggetto diverso. Tuttavia, questa restrizione non è applicabile quando si utilizzano regole di trasformazione con mascheramento dei dati in cui è possibile avere un'altra trasformazione simile o per la stessa colonna. `ADD-COLUMN` `CHANGE-DATA-TYPE`
+ I nomi di tabella e di colonna nelle regole di trasformazione rispettano la distinzione tra maiuscole e minuscole. Ad esempio, è necessario specificare in maiuscolo i nomi delle tabelle e delle colonne per un database Oracle o Db2.
+ Le trasformazioni non sono supportate per i nomi di colonna con lingue. Right-to-Left
+ Le trasformazioni non possono essere eseguite su colonne che includono nel nome caratteri speciali (ad esempio \$1, \$1, /, -).
+ L'unica trasformazione supportata per le colonne mappate ai tipi di BLOB/CLOB dati consiste nel rilasciare la colonna sulla destinazione.
+ AWS DMS non supporta la replica di due tabelle di origine in un'unica tabella di destinazione. AWS DMS replica i record da una tabella all'altra e da una colonna all'altra, in base alle regole di trasformazione dell'attività di replica. I nomi degli oggetti devono essere univoci per evitare sovrapposizioni.

  Ad esempio, una tabella di origine ha una colonna denominata `ID` e la tabella di destinazione corrispondente ha una colonna preesistente denominata `id`. Se una regola utilizza un'`ADD-COLUMN`istruzione per aggiungere una nuova colonna `id` denominata e un' SQLite istruzione per popolare la colonna con valori personalizzati, ciò crea un oggetto duplicato e ambiguo denominato `id` e non è supportato. 
+ Quando si crea una regola di trasformazione, si consiglia di utilizzare il `data-type` parametro solo quando le regole di selezione specificano più colonne, ad esempio quando si imposta su. `column-name` `%` Non è consigliabile utilizzarlo `data-type` per selezionare una singola colonna.
+ AWS DMS non supporta le regole di trasformazione in cui gli oggetti di origine e di destinazione (tabelle) si trovano sullo stesso database/schema. L'utilizzo della stessa tabella come origine e destinazione in una regola di trasformazione può portare a risultati imprevisti e potenzialmente dannosi, tra cui, a titolo esemplificativo ma non esaustivo, alterazioni involontarie dei dati della tabella, modifiche delle strutture delle tabelle o persino l'eliminazione delle tabelle.

## Valori
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Values"></a>

Per le regole di mappatura delle tabelle che utilizzano il tipo di regola di trasformazione, sono applicabili i seguenti valori. 

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

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

**Example Assegnazione di un nuovo nome a uno schema**  
Nell'esempio seguente viene rinominato uno schema da `Test` nell'origine a `Test1` nella destinazione.  

```
{

    "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 Rinominare una tabella**  
Nell'esempio seguente viene rinominata una tabella da `Actor` nell'origine a `Actor1` nella destinazione.  

```
{
    "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 Ridenominazione di una colonna**  
Nell'esempio seguente viene rinominata una colonna nella tabella `Actor` da `first_name` nell'origine a `fname` nella destinazione.  

```
{
    "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 Rinominare uno spazio tabella di tabella Oracle**  
L'esempio seguente rinomina lo spazio tabella di tabella denominato `SetSpace` per una tabella denominata `Actor` nell'origine Oracle in `SceneTblSpace` nell'endpoint Oracle di destinazione.  

```
{
    "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 Rinominare uno spazio tabella di indice Oracle**  
L'esempio seguente rinomina lo spazio tabella di indice denominato `SetISpace` per una tabella denominata `Actor` nell'origine Oracle in `SceneIdxSpace` nell'endpoint Oracle di destinazione.  

```
{
    "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 Aggiungere una colonna**  
Nell'esempio seguente viene aggiunta una colonna `datetime` alla tabella `Actor` nello schema `test`.  

```
{
    "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 Rimozione di una colonna**  
Nell'esempio seguente viene trasformata la tabella denominata `Actor` nell'origine per rimuovere da essa tutte le colonne che iniziano con i caratteri `col` nella destinazione.  

```
{
 	"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 Conversione in minuscolo**  
Nell'esempio seguente viene convertito un nome di tabella da `ACTOR` nell'origine a `actor` nella destinazione.  

```
{
	"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 Conversione in caratteri maiuscoli**  
Nell'esempio seguente vengono convertite tutte le colonne in tutte le tabelle e tutti gli schemi da caratteri minuscoli nell'origine a caratteri maiuscoli nella destinazione.  

```
{
    "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 Aggiunta di un prefisso**  
Nell'esempio seguente tutte le tabelle nell'origine vengono trasformate con l'aggiunta del prefisso `DMS_` nella destinazione.  

```
{
 	"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 Sostituzione di un prefisso**  
Nell'esempio seguente tutte le colonne contenenti il prefisso `Pre_` nell'origine vengono trasformate mediante la sostituzione del prefisso con `NewPre_` nella destinazione.  

```
{
    "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 Rimozione di un suffisso**  
Nell'esempio seguente tutte le tabelle nell'origine vengono trasformate con la rimozione del suffisso `_DMS` nella destinazione.  

```
{
	"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 Definire una chiave primaria**  
L'esempio seguente definisce una chiave primaria denominata `ITEM-primary-key` su tre colonne della tabella `ITEM` migrata nell'endpoint di destinazione.  

```
{
	"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 Definire un indice univoco**  
L'esempio seguente definisce un indice univoco denominato `ITEM-unique-idx` su tre colonne della tabella `ITEM` migrata verso l'endpoint di destinazione.  

```
{
	"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 Modifica del tipo di dati della colonna di destinazione**  
Nell'esempio seguente viene modificato il tipo di dati di una colonna di destinazione denominata `SALE_AMOUNT` da un tipo di dati esistente su `int8`.  

```
{
    "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 Aggiungere una colonna dell'immagine precedente**  
Per una colonna di origine denominata `emp_no`, la regola di trasformazione nell'esempio seguente aggiunge una nuova colonna denominata `BI_emp_no` nella destinazione.  

```
{
	"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"
			}
		}
	]
}
```
Qui, l'istruzione seguente popola una colonna `BI_emp_no` nella riga corrispondente con 1.  

```
UPDATE employees SET emp_no = 3 WHERE BI_emp_no = 1;
```
Quando si scrivono aggiornamenti CDC su AWS DMS destinazioni supportate, la `BI_emp_no` colonna consente di stabilire quali righe hanno valori aggiornati nella colonna. `emp_no`