

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Reglas y acciones de transformación
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations"></a>

Puede utilizar las acciones de transformación para especificar las transformaciones que desea aplicar al esquema, la tabla o la vista seleccionados. Las reglas de transformación son opcionales. 

## Limitaciones
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Limitations"></a>
+ No puede aplicar más de una acción de regla de transformación al mismo objeto (esquema, tabla, columna, tabla-espacio de tabla o índice-espacio de tabla). Puede aplicar varias acciones de reglas de transformación en cualquier nivel, siempre que cada acción de transformación se aplique a un objeto diferente. Sin embargo, esta restricción no se aplica cuando se utilizan reglas de transformación de enmascaramiento de datos en las que se puede realizar otra transformación como `ADD-COLUMN` o `CHANGE-DATA-TYPE` para la misma columna.
+ Los nombres de las tablas y los nombres de las columnas en las reglas de transformación distinguen entre mayúsculas y minúsculas. Por ejemplo, debe proporcionar los nombres de las tablas y los nombres de las columnas de una base de datos Oracle o Db2 en mayúsculas.
+ Los nombres de columnas con Right-to-Left idiomas no admiten transformaciones.
+ Las transformaciones no se pueden realizar en columnas que contengan caracteres especiales (por ejemplo, \#, \\, /, -) en el nombre.
+ La única transformación que se admite para las columnas asignadas a tipos de BLOB/CLOB datos es colocar la columna en el destino.
+ AWS DMS no admite la replicación de dos tablas de origen en una sola tabla de destino. AWS DMS replica los registros de una tabla a otra y de una columna a otra, de acuerdo con las reglas de transformación de la tarea de replicación. Los nombres de los objetos deben ser únicos para evitar que se superpongan.

  Por ejemplo, una tabla de origen tiene una columna denominada `ID` y la tabla de destino correspondiente tiene una columna preexistente denominada `id`. Si una regla utiliza una `ADD-COLUMN` sentencia para añadir una nueva columna denominada `id` y otra para rellenar la columna con valores personalizados, se crea un objeto duplicado y ambiguo denominado `id` y no se admite. SQLite 
+ Al crear una regla de transformación, se recomienda usar el parámetro `data-type` solo cuando las reglas de selección especifiquen varias columnas, por ejemplo, cuando establece `column-name` en `%`. No se recomienda usar `data-type` para seleccionar una sola columna.
+ AWS DMS no admite reglas de transformación en las que los objetos de origen y destino (tablas) se encuentran en la misma base de datos o esquema. Usar la misma tabla como origen y destino en una regla de transformación puede generar resultados inesperados y potencialmente perjudiciales, como, por ejemplo, alteraciones involuntarias de los datos de la tabla, modificaciones de las estructuras de tabla o incluso la eliminación de tablas.

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

Para las reglas de correspondencia de tablas utilice el tipo de regla de transformación; se pueden aplicar los valores siguientes. 


| Parámetro | Valores posibles | Description (Descripción) | 
| --- | --- | --- | 
| rule-type | transformation | Un valor que aplica la regla a cada objeto especificado mediante la regla de selección. Utilice transformation a menos que se indique lo contrario. | 
| rule-id | Un valor numérico. | Un único valor numérico para identificar la regla. Si especificas varias reglas de transformación para el mismo objeto (esquema, tabla, columna, espacio entre tablas o espacio de tablas de índices), AWS DMS aplica la regla de transformación con el identificador de regla inferior. | 
| rule-name | Un valor alfanumérico. | Un nombre exclusivo para identificar la regla. | 
| object-locator | Un objeto con los siguientes parámetros:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | El nombre de cada esquema, tabla o vista, espacio de tabla de la tabla y espacio de tabla del índice al que se aplica la regla. Puede utilizar el símbolo de porcentaje "%" como carácter comodín para la totalidad o parte del valor de cada parámetro `object-locator`, excepto `data-type`. Así, puede hacer coincidir estos elementos:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html)<br />Asimismo, el parámetro `index-tablespace-name` o `table-tablespace-name` solo está disponible para que coincida con un punto de enlace de origen de Oracle. Puede especificar `table-tablespace-name` o bien `index-tablespace-name` en una regla única, pero no ambos. De este modo, puede asignar *cualquiera* de los elementos siguientes:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 
| rule-action | `add-column`, `include-column`, `remove-column`<br />`rename`<br />`convert-lowercase`, `convert-uppercase`<br />`add-prefix`, `remove-prefix`, `replace-prefix`<br />`add-suffix`, `remove-suffix`, `replace-suffix`<br />`define-primary-key`<br />`change-data-type`<br />`add-before-image-columns`<br />`data-masking-digits-mask`<br />`data-masking-digits-randomize`<br />`data-masking-hash-mask` | La transformación que desea aplicar al objeto. Todas las acciones de las reglas de transformación distinguen entre mayúsculas y minúsculas.<br />El valor `add-column` del parámetro `rule-action` agrega una columna a una tabla. Sin embargo, no puede agregar una columna nueva con el mismo nombre que una columna existente de la misma tabla.<br />Cuando se utiliza con los parámetros `expression` y `data-type`, `add-column` especifica el valor de los nuevos datos de columna. <br />El valor de `change-data-type` `rule-action` solo está disponible para los destinos de regla `column`.<br />El valor `include-column` del parámetro `rule-action` cambia el modo de la tabla para *eliminar todas las columnas de forma predeterminada* e *incluir las columnas especificadas*. Se incluyen varias columnas en el destino al invocar la regla `include-column` varias veces.<br />No puede usar una regla `define-primary-key` si tiene un comodín (`%`) en el nombre de un esquema o tabla. <br />Para una tarea existente, las acciones de las reglas de transformación que alteran el esquema de la tabla de destino como `remove-column`, `rename` o `add-prefix` no surtirán efecto hasta que se reinicie la tarea. Si reanuda la tarea después de añadir la regla de transformación, es posible que se produzca un comportamiento inesperado en la columna alterada, que podría incluir la falta de datos de la columna. Es necesario reiniciar una tarea para garantizar que la regla de transformación funcione correctamente.<br />`data-masking-digits-mask`, `data-masking-digits-randomize` y `data-masking-hash-mask` sirven para enmascarar la información confidencial incluida en una o más columnas de la tabla cuando se carga en el destino. Estas transformaciones solo están disponibles para los destinos de las reglas de columnas. Para obtener más información, consulte [Uso del enmascaramiento de datos para ocultar información confidencial](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.md)  | 
| rule-target | schema, table, column, table-tablespace, index-tablespace | El tipo de objeto que está transformando.Los valores `table-tablespace` y `index-tablespace` solo están disponibles para un punto de enlace de destino de Oracle. <br />Asegúrese de especificar un valor para el parámetro que especifique como parte de `object-locator`: nombre de `table-tablespace-name` o `index-tablespace-name`. | 
| value | Un valor alfanumérico que sigue las reglas de nomenclatura para el tipo de destino. | El nuevo valor para las acciones que requieren entradas, como rename. | 
| old-value | Un valor alfanumérico que sigue las reglas de nomenclatura para el tipo de destino. | El valor antiguo para las acciones que requieran sustitución, como replace-prefix. | 
| data-type | `type`: el tipo de datos que se va a utilizar, si `rule-action` es `add-column` o el tipo de datos de reemplazo, si `rule-action` es `change-data-type`.<br />O bien, el nombre del tipo de datos de reemplazo cuando `rule-action` es `change-data-type`, el valor de `column-name` es `"%"`, y se incluye un parámetro `data-type` adicional para identificar el tipo de datos existente en el `object-locator`.<br />AWS DMS admite las transformaciones de tipos de datos de columnas para los siguientes tipos de datos de DMS: `"bytes", "date", "time", "datetime", "int1", "int2", "int4", "int8", "numeric", "real4", "real8", "string", "uint1", "uint2", "uint4", "uint8", "wstring", "blob", "nclob", "clob", "boolean", "set", "list" "map", "tuple"` AWS DMS puede aplicar transformaciones de un tipo a otro ÚNICAMENTE en los formatos compatibles. Por ejemplo: DATE debe representarse como `YYYY:MM:DD/YYYY-MM-DD.` y DATETIME como `YYYY:MM:DD HH:MM:SS/YYYY-MM-DD HH:MM:SS`. TIME debe representarse como `HH:MM:SS`. <br />`precision`: si la columna agregada o el tipo de datos de reemplazo tienen una precisión, un valor entero para especificar la precisión.<br />`scale`: si la columna agregada o el tipo de datos de reemplazo tienen una escala, un valor entero o un valor de fecha y hora para especificar la escala.<br />`length`: la longitud de los datos de la nueva columna (cuando se utilizan con `add-column`)  | A continuación, hay un ejemplo de un parámetro `data-type` para especificar el tipo de datos existente que se va a reemplazar. <pre>{<br />	"rules": [{<br />			"rule-type": "selection",<br />			"rule-id": "1",<br />			"rule-name": "1",<br />			"object-locator": {<br />				"schema-name": "%",<br />				"table-name": "%"<br />			},<br />			"rule-action": "include"<br />		},<br />		{<br />			"rule-type": "transformation",<br />			"rule-id": "2",<br />			"rule-name": "2",<br />			"rule-target": "column",<br />			"object-locator": {<br />				"schema-name": "test",<br />				"table-name": "table_t",<br />				"column-name": "col10"<br />			},<br />			"rule-action": "change-data-type",<br />			"data-type": {<br />				"type": "string",<br />				"length": "4092",<br />				"scale": ""<br />			}<br />		}<br />	]<br />}</pre><br />Aquí, la columna `col10` de la tabla `table_t` cambia al tipo de datos `string`. | 
| expression | Un valor alfanumérico que sigue la SQLite sintaxis.  | Cuando se utiliza con el valor `rule-action` establecido en `rename-schema`, el parámetro `expression` especifica un nuevo esquema. Cuando se utiliza con el conjunto `rule-action` en `rename-table`, `expression` especifica una nueva tabla. Cuando se utiliza con el valor `rule-action` establecido en `rename-column`, `expression` especifica un nuevo valor de nombre de columna.<br />Cuando se utiliza con el conjunto `rule-action` en `add-column`, `expression` especifica los datos que componen una nueva columna.<br />Tenga en cuenta que solo se admiten expresiones para este parámetro. Los operadores y comandos no son compatibles.<br />Para obtener más información sobre el uso de expresiones para reglas de transformación, consulte [Uso de expresiones de regla de transformación para definir el contenido de columnas](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions.md).<br />Para obtener más información sobre SQLite las expresiones, consulte[Uso de SQLite funciones para crear expresiones](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions.md#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite). | 
| primary-key-def | Un objeto con los siguientes parámetros:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | Este parámetro puede definir el nombre, el tipo y el contenido de una clave única en la tabla o vista transformada. Lo hace cuando rule-action se establece en define-primary-key y rule-target se establece en table. De forma predeterminada, la clave única se define como una clave primaria. | 
| before-image-def | Un objeto con los siguientes parámetros:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | Este parámetro define una convención de nomenclatura para identificar las columnas de imagen anterior y especifica un filtro para identificar qué columnas de origen pueden tener columnas de imagen anterior creadas para ellas en el destino. Puede especificar este parámetro cuando `rule-action` se establece en `add-before-image-columns` y `rule-target` en `column`.<br />No configure ambas cadenas `column-prefix` y `column-suffix` como cadenas vacías.<br />En `column-filter`, seleccione:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) El parámetro `before-image-def` no admite tipos de datos de objetos binarios (LOB) de gran tamaño, como CLOB y BLOB. Si el tipo de datos se establece en LOB, se crea una columna vacía en la tabla. <br />Para obtener más información sobre la compatibilidad con imágenes anteriores para los puntos de conexión de destino de AWS DMS , consulte:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 

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

**Example Cambiar el nombre a un esquema**  
En el siguiente ejemplo, se cambia el nombre de un esquema de `Test` en el origen a `Test1` en el destino.  

```
{

    "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 Cambiar el nombre a una tabla**  
En el siguiente ejemplo, se cambia el nombre de una tabla de `Actor` en el origen a `Actor1` en el destino.  

```
{
    "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 Cambiar el nombre de una columna**  
En el siguiente ejemplo, se cambia el nombre de una columna en una tabla `Actor` de `first_name` en el origen a `fname` en el destino.  

```
{
    "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 Cambiar el nombre a un espacio de tabla de tabla de Oracle**  
En el siguiente ejemplo se cambia el nombre del espacio de tabla de tabla denominado `SetSpace` para una tabla denominada `Actor` en su origen de Oracle a `SceneTblSpace` en su punto de enlace de destino de Oracle.  

```
{
    "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 Cambiar el nombre a un espacio de tabla de índice de Oracle**  
En el siguiente ejemplo se cambia el nombre del espacio de tabla de índice denominado `SetISpace` para una tabla denominada `Actor` en su origen de Oracle a `SceneIdxSpace` en su punto de enlace de destino de Oracle.  

```
{
    "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 Agregar una columna**  
En el ejemplo siguiente se agrega una columna `datetime` a la tabla `Actor` en el esquema `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 Quitar una columna**  
En el siguiente ejemplo, se transforma la tabla denominada `Actor` en el origen para que se quiten todas las columnas que empiecen por los caracteres `col` en el destino.  

```
{
 	"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 Cambiar a minúsculas**  
En el siguiente ejemplo, se convierte el nombre de una tabla de `ACTOR` en el origen a `actor` en el destino.  

```
{
	"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 Cambiar a mayúsculas**  
En el siguiente ejemplo, se cambian todas las columnas de todas las tablas y todos los esquemas de minúsculas en el origen a mayúsculas en el destino.  

```
{
    "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 Agregar un prefijo**  
En el siguiente ejemplo se transforman todas las tablas en el origen para añadirles el prefijo `DMS_` en el destino.  

```
{
 	"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 Sustituir un prefijo**  
En el siguiente ejemplo, se transforman todas las columnas que contienen el prefijo `Pre_` en el origen y se sustituye por `NewPre_` en el destino.  

```
{
    "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 Quitar un sufijo**  
En el siguiente ejemplo, se transforman todas las tablas en el origen para quitarles el sufijo `_DMS` en el destino.  

```
{
	"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 Definir una clave principal**  
En el siguiente ejemplo se define una clave principal denominada `ITEM-primary-key` en tres columnas de la tabla `ITEM` migrada a su punto de enlace de destino.  

```
{
	"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 Definir un índice único**  
En el siguiente ejemplo se define un índice único denominado `ITEM-unique-idx` en tres columnas de la tabla `ITEM` migrada a su punto de enlace de destino.  

```
{
	"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 Cambiar el tipo de datos de la columna de destino**  
En el ejemplo siguiente se cambia el tipo de datos de una columna de destino denominada `SALE_AMOUNT` de un tipo de datos existente a `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 Agregar una columna de imagen anterior**  
En una columna de origen denominada `emp_no`, la regla de transformación del siguiente ejemplo agrega una nueva columna llamada `BI_emp_no` en el destino.  

```
{
	"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"
			}
		}
	]
}
```
Aquí, la siguiente instrucción rellena una columna `BI_emp_no` de la fila correspondiente con 1.  

```
UPDATE employees SET emp_no = 3 WHERE BI_emp_no = 1;
```
Al escribir las actualizaciones de los CDC sobre los AWS DMS objetivos admitidos, la `BI_emp_no` columna permite saber qué filas tienen valores actualizados en la `emp_no` columna.