View a markdown version of this page

Reglas de transformación en la conversión de esquemas de DMS - AWS Database Migration Service

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 de transformación en la conversión de esquemas de DMS

Las reglas de transformación le permiten personalizar la forma en que DMS Schema Conversion convierte los objetos de su base de datos, anulando las asignaciones de nombres y tipos de datos predeterminadas. Puede aplicar estas reglas a bases de datos, esquemas, tablas, vistas, columnas, valores devueltos por funciones, parámetros de rutina y variables locales.

Por ejemplo, suponga que tiene un conjunto de tablas en el esquema de origen denominado test_TABLE_NAME. Puede configurar una regla que cambie el prefijo test_ por el prefijo demo_ del esquema de destino.

Puede crear reglas de transformación que realicen las siguientes tareas:

  • Agregar, eliminar o reemplazar un prefijo

  • Agregar, eliminar o reemplazar un sufijo

  • Cambie el tipo de datos de una columna, el valor devuelto por la función, el parámetro de rutina o la variable local

  • Convierte el nombre del objeto a minúsculas o mayúsculas

  • Cambie el nombre de un objeto

Creación de reglas de transformación

La conversión de esquemas del DMS almacena las reglas de transformación como parte del proyecto de migración. Para definir las reglas de transformación, páselas como una cadena JSON que contenga un objeto con una rules matriz cuando cree o modifique un proyecto de migración. Cada elemento de la matriz representa un objeto de regla independiente. Un proyecto de migración admite hasta 512 reglas de transformación (128 KB como máximo).

La estructura de la matriz con las reglas de transformación es la siguiente:

{ "rules": [ { Rule object 1 }, { Rule object 2 }, ... { Rule object N } ] }

Puede agregar varias reglas de transformación al proyecto. La conversión de esquemas del DMS aplica las reglas de transformación durante la conversión en el mismo orden en que las agregó.

Si varias reglas se dirigen al mismo objeto, el comportamiento depende del tipo de acción. Todas las reglas con diferentes tipos de acción entran en vigor. Por ejemplo, se aplican tanto una add-suffix regla como una regla. add-prefix Las reglas con el mismo tipo de acción se anulan entre sí y solo entra en vigor la última.

Para crear reglas de transformación, utilice uno de los métodos siguientes.

AWS Management Console
Para crear reglas de transformación mediante la consola
  1. En la página Crear proyecto de migración, elija Agregar regla de transformación. Para obtener más información, consulte Creación de proyectos de migración.

  2. En Rule target, elija el tipo de objetos de base de datos a los que se aplica esta regla. El asistente de consola admite schema y column apunta. table Para utilizar otros destinos, como database oview, utilice el editor JSON de la consola o la AWS CLI.

  3. Para Esquema de origen, elija Escribir un esquema. A continuación, especifique los esquemas, tablas y columnas de origen a los que se aplica esta regla. Puede usar un nombre exacto para seleccionar un objeto o usar un patrón con el signo de porcentaje (%) como comodín para que coincida con cualquier número de caracteres.

  4. Para Acción, elija la tarea que desee realizar.

  5. En función de la acción de la regla, introduzca valores adicionales:

    • add-prefixo add-suffix — Introduzca el texto que desee añadir.

    • remove-prefixo remove-suffix — Introduzca el texto que desee eliminar.

    • replace-prefixo replace-suffix — Introduzca el texto existente y el texto de reemplazo.

    • rename— Introduzca el nuevo nombre del objeto.

    • convert-uppercaseo convert-lowercase — No se requieren valores adicionales.

    • change-data-type— Introduzca el nombre del tipo de datos de destino y, si lo desea, la precisión, la escala o la longitud.

  6. Elija Agregar regla de transformación para agregar otra regla de transformación.

    Cuando haya terminado de agregar reglas, elija Crear proyecto de migración.

AWS CLI

Para añadir reglas de transformación mediante la AWS CLI, utilice el --transformation-rules parámetro con uno de los siguientes comandos:

El siguiente ejemplo agrega reglas de transformación a un proyecto de migración existente:

aws dms modify-migration-project \ --migration-project-identifier migration_project_arn \ --transformation-rules 'json_rules'

Para ejecutar este comando en una región de AWS específica, añada el --region parámetro, por ejemplo--region us-west-2.

Para editar, duplicar o eliminar las reglas de transformación existentes, consulteEdición de reglas de transformación.

Recuperación de reglas de transformación

Puede recuperar las reglas de transformación de un proyecto de migración de conversión de esquemas de DMS existente mediante la consola AWS de administración o la AWS CLI.

AWS Management Console

Para ver las reglas de transformación mediante la consola AWS de administración, seleccione Modificar en un proyecto de migración existente y revise la lista de reglas existentes en la sección Reglas de transformación.

AWS CLI

Para recuperar las reglas de transformación de un proyecto de migración de conversión de esquemas de DMS existente, utilice el comando describe-migration-projects. La respuesta utiliza el formato JSON e incluye las reglas de transformación asociadas al proyecto.

El siguiente ejemplo de AWS CLI recupera las reglas de transformación de un proyecto de migración:

aws dms describe-migration-projects \ --filters Name=migration-project-identifier,Values=migration_project_arn

Edición de reglas de transformación

Para editar, añadir o eliminar reglas de transformación en su proyecto de migración, utilice uno de los siguientes métodos.

AWS Management Console
Edición de reglas de transformación
  1. Elija Proyectos de migración y, a continuación, elija el proyecto de migración.

  2. Elija Modificar para editar la configuración del proyecto de migración.

  3. Para Reglas de transformación, elija una de las siguientes acciones:

    • Seleccione Añadir regla de transformación para añadir una nueva regla de transformación.

    • Elija Duplicar para duplicar una regla de transformación existente y añadirla al final de la lista.

    • Elija Eliminar para eliminar la regla de transformación existente.

    • Elija la regla de transformación existente para editarla.

  4. Cuando haya terminado de editar las reglas, elija Guardar cambios.

AWS CLI

Para actualizar las reglas de transformación mediante la AWS CLI, utilice el comando modify-migration-project con el parámetro. --transformation-rules Pase el conjunto completo de reglas actualizado como una cadena JSON.

aws dms modify-migration-project \ --migration-project-identifier migration_project_arn \ --transformation-rules 'json_rules'

Formato de regla de transformación

Una regla de transformación utiliza campos de objetos JSON para definir cómo convertir un objeto de origen en su equivalente de destino. Cada tipo de regla usa un conjunto específico de campos. Incluya solo los campos que se apliquen a su tarea.

El siguiente objeto JSON describe una regla de transformación de conversión de esquemas de DMS:

{ "rule-type": "transformation", "rule-id": rule_id, "rule-name": "rule_name", "rule-action": "rule_action", "rule-target": "rule_target", "object-locator": { [ "database-name": "database_name", ] [ "schema-name": "schema_name", ] [ "table-name": "table_name", ] [ "column-name": "column_name", ] [ "parent": "parent_name", ] [ "function-name": "function_name", ] [ "procedure-name": "procedure_name", ] [ "parameter-name": "parameter_name", ] [ "local-variable-name": "local_variable_name", ] [ "type": "source_data_type", ] [ "precision": source_precision, ] [ "scale": source_scale, ] [ "length": source_length ] }, [ "value": "rule_value", ] [ "old-value": "rule_old_value", ] [ "data-type": { "type": "data_type_name", [ "precision": data_type_precision, ] [ "scale": data_type_scale, ] [ "length": data_type_length ] } ] }

En la siguiente tabla se describe cada parámetro.

Parámetro Valores posibles Description (Descripción)
rule-type transformation

Un valor que aplica la regla a cada objeto especificado por el localizador de objetos.

Para todas las reglas de transformación, establézcalo entransformation.

Parámetro necesario.

rule-id Un valor numérico (entero).

Un único valor numérico para identificar la regla.

Parámetro necesario.

rule-name Un valor alfanumérico.

Un nombre exclusivo para identificar la regla.

Parámetro necesario.

rule-action add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type

La transformación que desea aplicar al objeto. Todas las acciones de las reglas de transformación distinguen entre mayúsculas y minúsculas.

Operaciones con prefijos:

  • add-prefix— Añadir un texto específico al principio de un nombre.

  • remove-prefix— Eliminar un texto específico del principio de un nombre.

  • replace-prefix— Sustituir un prefijo existente por uno nuevo.

Operaciones con sufijos:

  • add-suffix— Añadir un texto específico al final de un nombre.

  • remove-suffix— Eliminar un texto específico del final de un nombre.

  • replace-suffix— Sustituir un sufijo existente por uno nuevo.

conversión de mayúsculas y minúsculas

  • convert-uppercase— Convertir todos los caracteres de un nombre a mayúsculas.

  • convert-lowercase— Convertir todos los caracteres de un nombre a minúsculas.

Modificación directa:

  • rename— Cambia el nombre por un valor especificado completamente nuevo.

  • change-data-type— Modificar el tipo de datos de una columna o variable local por un tipo de datos diferente.

Alcance: las operaciones de conversión de prefijos, sufijos, cambio de nombre y mayúsculas y minúsculas se pueden aplicar a esquemas, tablas y columnas.

La change-data-type operación solo se aplica a las columnas, los valores de retorno de las funciones, los parámetros de rutina y las variables locales.

Parámetro necesario.

rule-target database, schema, table, view, column, function result, routine parameter, local variable

El tipo de objeto al que se aplicará la regla.

  • database— Base de datos.

  • schema— Esquema de base de datos.

  • table— Tabla de base de datos.

  • view— Vista de base de datos.

  • column— Tabla de base de datos o columna de visualización.

  • function result— Valor devuelto por la función.

  • routine parameter— Parámetro de función o procedimiento almacenado.

  • local variable— Variable local dentro del procedimiento o función almacenado.

Parámetro necesario.

object-locator Un objeto JSON.

Un objeto que identifica a qué objetos de la base de datos de origen se aplica la regla. Puede utilizar el signo de porcentaje (%) como comodín para todo o parte del valor de cada campo de object-locator objeto.

El objeto contiene los siguientes campos de cadena:

  • database-name

  • schema-name

  • table-name

  • column-name

  • parent

  • function-name

  • procedure-name

  • parameter-name

  • local-variable-name

  • type

  • precision

  • scale

  • length

Todos los nombres de objetos, como los nombres de tablas o columnas, de las reglas de transformación distinguen mayúsculas de minúsculas.

En las siguientes secciones se describe cada campo de objeto.

Parámetro necesario.

object-locator | database-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre de la base de datos de origen.

Aplicable a los proveedores de bases de datos en los que la arquitectura de la base de datos se origina en la base de datos como contenedor de objetos de nivel superior. Por ejemplo: Microsoft SQL Server, SAP ASE.

Campo de objeto JSON opcional.

object-locator | schema-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre del esquema de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | table-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre de la tabla de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | column-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre de la columna de la tabla de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | parent Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre del objeto de la base de datos de origen que es el padre del objeto especificado, por ejemplo, para function-name oprocedure-name.

En las bases de datos de algunos proveedores, el objeto al que se aplica la regla puede estar subordinado y requerir la especificación de su objeto principal.

Por ejemplo, las funciones empaquetadas en Oracle, donde el padre es el nombre del paquete.

Campo de objeto JSON opcional.

object-locator | function-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre de la función de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | procedure-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

Nombre del procedimiento de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | parameter-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

Nombre del parámetro de procedimiento o función de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | local-variable-name Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El nombre de una variable local dentro de la función o el procedimiento de la base de datos de origen.

Campo de objeto JSON opcional.

object-locator | type Un valor alfanumérico.

El nombre del tipo de datos de origen que debe coincidir. Utilice este campo para aplicar la regla únicamente a los objetos con un tipo de datos específico.

Campo de objeto JSON opcional.

object-locator | precision Un valor numérico (entero).

La precisión del tipo de datos de origen que debe coincidir.

Campo de objeto JSON opcional.

object-locator | scale Un valor numérico (entero).

La escala del tipo de datos de origen que debe coincidir.

Campo de objeto JSON opcional.

object-locator | length Un valor numérico (entero).

La longitud del tipo de datos de origen que debe coincidir.

Campo de objeto JSON opcional.

value Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de destino.

El valor de texto utilizado por la acción de transformación. Para add-prefix yadd-suffix, especifica el texto que se va a añadir. Para remove-prefix yremove-suffix, especifica el texto que se va a eliminar. Para replace-prefix yreplace-suffix, especifica el texto de reemplazo. Pararename, especifica el nombre nuevo.

Necesario para todas las acciones excepto convert-uppercaseconvert-lowercase, ychange-data-type.

old-value Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen.

El valor existente que se va a buscar y reemplazar en el nombre del objeto. Necesario para acciones como replace-prefix yreplace-suffix.

Parámetro opcional.

data-type Un objeto JSON.

Un objeto que describe las propiedades del tipo de datos de reemplazo cuando rule-action eschange-data-type.

El objeto contiene los siguientes campos:

  • type: cadena

  • precision: número

  • scale: número

  • length: número

En las siguientes secciones se describe cada campo de objeto.

Parámetro opcional.

data-type | type Un valor alfanumérico.

El nombre del tipo de datos de reemplazo para la columna de la base de datos de destino, si rule-action lo eschange-data-type. Debe ser un tipo de datos de base de datos de destino válido.

Campo de objeto JSON obligatorio.

data-type | precision Un valor numérico (entero).

La precisión del tipo de datos de reemplazo para la base de datos de destino, si rule-action eschange-data-type.

Campo de objeto JSON opcional.

data-type | scale Un valor numérico (entero).

La escala del tipo de datos de reemplazo para la base de datos de destino, si rule-action eschange-data-type.

Campo de objeto JSON opcional.

data-type | length Un valor numérico (entero).

La longitud del tipo de datos de reemplazo para la base de datos de destino, si rule-action eschange-data-type.

Campo de objeto JSON opcional.

Ejemplos de reglas de transformación

Los siguientes ejemplos muestran el valor JSON del --transformation-rules parámetro para distintos tipos de reglas:

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Agregue un prefijo DW_ al esquemaSALES.

  • Agregue un prefijo FACT_ a la tabla ORDERS del esquema. SALES

  • Agregue un prefijo OLD_ a la columna de UNIT_PRICE la tabla PRODUCTS del esquema. SALES

{ "rules": [ { "rule-id": 5, "rule-type": "transformation", "rule-name": "add-prefix-schema-sales", "rule-action": "add-prefix", "rule-target": "schema", "object-locator": { "schema-name": "SALES" }, "value": "DW_" }, { "rule-id": 12, "rule-type": "transformation", "rule-name": "add-prefix-table-orders", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "SALES", "table-name": "ORDERS" }, "value": "FACT_" }, { "rule-id": 27, "rule-type": "transformation", "rule-name": "add-prefix-column-unit-price", "rule-action": "add-prefix", "rule-target": "column", "object-locator": { "schema-name": "SALES", "table-name": "PRODUCTS", "column-name": "UNIT_PRICE" }, "value": "OLD_" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Elimina el prefijo SRC_ del esquemaSRC_FINANCE.

  • Elimina el prefijo TMP_ de la tabla del esquemaTMP_INVOICES. SRC_FINANCE

  • Elimina el prefijo PAID_ de la columna de PAID_AMOUNT la tabla TMP_PAYMENTS del esquema. SRC_FINANCE

{ "rules": [ { "rule-id": 3, "rule-type": "transformation", "rule-name": "remove-prefix-schema-src-finance", "rule-action": "remove-prefix", "rule-target": "schema", "object-locator": { "schema-name": "SRC_FINANCE" }, "value": "SRC_" }, { "rule-id": 18, "rule-type": "transformation", "rule-name": "remove-prefix-table-tmp-invoices", "rule-action": "remove-prefix", "rule-target": "table", "object-locator": { "schema-name": "SRC_FINANCE", "table-name": "TMP_INVOICES" }, "value": "TMP_" }, { "rule-id": 41, "rule-type": "transformation", "rule-name": "remove-prefix-column-paid-amount", "rule-action": "remove-prefix", "rule-target": "column", "object-locator": { "schema-name": "SRC_FINANCE", "table-name": "TMP_PAYMENTS", "column-name": "PAID_AMOUNT" }, "value": "PAID_" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Sustituya el prefijo OLD_ por un NEW_ esquemaOLD_INVENTORY.

  • Sustituya el prefijo STG_ por «INT_en la tabla» en STG_WAREHOUSES el esquema. OLD_INVENTORY

  • Reemplace el prefijo por SRC_ una columna TGT_ SRC_WAREHOUSE_CODE en la tabla STG_WAREHOUSES del esquema. OLD_INVENTORY

{ "rules": [ { "rule-id": 7, "rule-type": "transformation", "rule-name": "replace-prefix-schema-old-inventory", "rule-action": "replace-prefix", "rule-target": "schema", "object-locator": { "schema-name": "OLD_INVENTORY" }, "value": "NEW_", "old-value": "OLD_" }, { "rule-id": 22, "rule-type": "transformation", "rule-name": "replace-prefix-table-stg-warehouses", "rule-action": "replace-prefix", "rule-target": "table", "object-locator": { "schema-name": "OLD_INVENTORY", "table-name": "STG_WAREHOUSES" }, "value": "INT_", "old-value": "STG_" }, { "rule-id": 35, "rule-type": "transformation", "rule-name": "replace-prefix-column-src-warehouse-code", "rule-action": "replace-prefix", "rule-target": "column", "object-locator": { "schema-name": "OLD_INVENTORY", "table-name": "STG_WAREHOUSES", "column-name": "SRC_WAREHOUSE_CODE" }, "value": "TGT_", "old-value": "SRC_" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Agregue un sufijo _HIST al esquemaHR_ARCHIVE.

  • Agregue un sufijo _HIST a la tabla JOB_CHANGES del esquema. HR_ARCHIVE

  • Agregue un sufijo _TS a la columna de CREATED_AT la tabla EMPLOYEE_SALARIES del esquema. HR_ARCHIVE

{ "rules": [ { "rule-id": 9, "rule-type": "transformation", "rule-name": "add-suffix-schema-hr-archive", "rule-action": "add-suffix", "rule-target": "schema", "object-locator": { "schema-name": "HR_ARCHIVE" }, "value": "_HIST" }, { "rule-id": 16, "rule-type": "transformation", "rule-name": "add-suffix-table-job-changes", "rule-action": "add-suffix", "rule-target": "table", "object-locator": { "schema-name": "HR_ARCHIVE", "table-name": "JOB_CHANGES" }, "value": "_HIST" }, { "rule-id": 44, "rule-type": "transformation", "rule-name": "add-suffix-column-created-at", "rule-action": "add-suffix", "rule-target": "column", "object-locator": { "schema-name": "HR_ARCHIVE", "table-name": "EMPLOYEE_SALARIES", "column-name": "CREATED_AT" }, "value": "_TS" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Elimina el sufijo _FILES del esquemaLEGAL_FILES.

  • Elimine el sufijo _V1 de la tabla del esquemaCLAUSES_V1. LEGAL_FILES

  • Elimine el sufijo _CODE de la columna de COUNTRY_CODE la tabla CONTRACTS_V1 del esquema. LEGAL_FILES

{ "rules": [ { "rule-id": 6, "rule-type": "transformation", "rule-name": "remove-suffix-schema-legal-files", "rule-action": "remove-suffix", "rule-target": "schema", "object-locator": { "schema-name": "LEGAL_FILES" }, "value": "_FILES" }, { "rule-id": 14, "rule-type": "transformation", "rule-name": "remove-suffix-table-clauses-v1", "rule-action": "remove-suffix", "rule-target": "table", "object-locator": { "schema-name": "LEGAL_FILES", "table-name": "CLAUSES_V1" }, "value": "_V1" }, { "rule-id": 31, "rule-type": "transformation", "rule-name": "remove-suffix-column-country-code", "rule-action": "remove-suffix", "rule-target": "column", "object-locator": { "schema-name": "LEGAL_FILES", "table-name": "CONTRACTS_V1", "column-name": "COUNTRY_CODE" }, "value": "_CODE" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Sustituya el sufijo por _DEV un _PROD esquemaREPORTING_DEV.

  • Sustituya el sufijo _RPT por «_REPORTen la tabla» del MONTHLY_RPT esquema. REPORTING_DEV

  • Reemplace el sufijo por _ID una columna _KEY CUSTOMER_ID en la tabla MONTHLY_RPT del esquema. REPORTING_DEV

{ "rules": [ { "rule-id": 8, "rule-type": "transformation", "rule-name": "replace-suffix-schema-reporting-dev", "rule-action": "replace-suffix", "rule-target": "schema", "object-locator": { "schema-name": "REPORTING_DEV" }, "value": "_PROD", "old-value": "_DEV" }, { "rule-id": 23, "rule-type": "transformation", "rule-name": "replace-suffix-table-monthly-rpt", "rule-action": "replace-suffix", "rule-target": "table", "object-locator": { "schema-name": "REPORTING_DEV", "table-name": "MONTHLY_RPT" }, "value": "_REPORT", "old-value": "_RPT" }, { "rule-id": 47, "rule-type": "transformation", "rule-name": "replace-suffix-column-customer-id", "rule-action": "replace-suffix", "rule-target": "column", "object-locator": { "schema-name": "REPORTING_DEV", "table-name": "MONTHLY_RPT", "column-name": "CUSTOMER_ID" }, "value": "_KEY", "old-value": "_ID" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Convierte todos los caracteres del nombre del esquema CRM_LEGACY a mayúsculas.

  • Convierte todos los caracteres del nombre de la tabla CUSTOMER_ACCOUNTS del esquema CRM_LEGACY a mayúsculas.

  • Convierte todos los caracteres del nombre de la columna de FIRST_NAME la tabla CUSTOMER_ACCOUNTS del esquema CRM_LEGACY a mayúsculas.

{ "rules": [ { "rule-id": 4, "rule-type": "transformation", "rule-name": "convert-uppercase-schema-crm-legacy", "rule-action": "convert-uppercase", "rule-target": "schema", "object-locator": { "schema-name": "CRM_LEGACY" } }, { "rule-id": 19, "rule-type": "transformation", "rule-name": "convert-uppercase-table-customer-accounts", "rule-action": "convert-uppercase", "rule-target": "table", "object-locator": { "schema-name": "CRM_LEGACY", "table-name": "CUSTOMER_ACCOUNTS" } }, { "rule-id": 36, "rule-type": "transformation", "rule-name": "convert-uppercase-column-first-name", "rule-action": "convert-uppercase", "rule-target": "column", "object-locator": { "schema-name": "CRM_LEGACY", "table-name": "CUSTOMER_ACCOUNTS", "column-name": "FIRST_NAME" } } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Convierte todos los caracteres del nombre del esquema LOGISTICS a minúsculas.

  • Convierte todos los caracteres del nombre de la tabla del esquema SHIPMENT_ORDERS LOGISTICS a minúsculas.

  • Convierte todos los caracteres del nombre de la columna de la DESTINATION_CITY tabla del esquema SHIPMENT_ORDERS LOGISTICS a minúsculas.

{ "rules": [ { "rule-id": 11, "rule-type": "transformation", "rule-name": "convert-lowercase-schema-logistics", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "LOGISTICS" } }, { "rule-id": 25, "rule-type": "transformation", "rule-name": "convert-lowercase-table-shipment-orders", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "LOGISTICS", "table-name": "SHIPMENT_ORDERS" } }, { "rule-id": 52, "rule-type": "transformation", "rule-name": "convert-lowercase-column-destination-city", "rule-action": "convert-lowercase", "rule-target": "column", "object-locator": { "schema-name": "LOGISTICS", "table-name": "SHIPMENT_ORDERS", "column-name": "DESTINATION_CITY" } } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Cambie el nombre del esquema TEST_SCHEMA a. TEST_NEW_SCHEMA

  • Cambie el nombre de la tabla REGIONS del esquema HR a. ORG_REGIONS

  • Cambie el nombre de la columna de CITY la tabla LOCATIONS en el esquema HR a. ORG_CITY_NAME

{ "rules": [ { "rule-id": 2, "rule-type": "transformation", "rule-name": "rename-schema-test-schema", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "TEST_SCHEMA" }, "value": "TEST_NEW_SCHEMA" }, { "rule-id": 15, "rule-type": "transformation", "rule-name": "rename-table-hr-regions", "rule-action": "rename", "rule-target": "table", "object-locator": { "schema-name": "HR", "table-name": "REGIONS" }, "value": "ORG_REGIONS" }, { "rule-id": 38, "rule-type": "transformation", "rule-name": "rename-column-hr-locations-city", "rule-action": "rename", "rule-target": "column", "object-locator": { "schema-name": "HR", "table-name": "LOCATIONS", "column-name": "CITY" }, "value": "ORG_CITY_NAME" } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Cambie el tipo de datos de la columna de SALARY la tabla EMPLOYEES PAYROLL del esquema de NUMBER a DECIMAL con una precisión de 18 y una escala de 4.

  • Cambie el tipo de datos de la columna NOTES de la tabla EMPLOYEES PAYROLL del esquema de VARCHAR2 a VARCHAR con una longitud de 350.

  • Cambie el tipo de datos de la columna HIRE_DATE de EMPLOYEES la tabla PAYROLL del esquema de DATE a TIMESTAMP WITH TIME ZONE con precisión 3.

{ "rules": [ { "rule-id": 10, "rule-type": "transformation", "rule-name": "change-datatype-column-salary", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "PAYROLL", "table-name": "EMPLOYEES", "column-name": "SALARY" }, "data-type": { "type": "DECIMAL", "precision": 18, "scale": 4 } }, { "rule-id": 29, "rule-type": "transformation", "rule-name": "change-datatype-column-notes", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "PAYROLL", "table-name": "EMPLOYEES", "column-name": "NOTES" }, "data-type": { "type": "VARCHAR", "length": 350 } }, { "rule-id": 56, "rule-type": "transformation", "rule-name": "change-datatype-column-hire-date", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "PAYROLL", "table-name": "EMPLOYEES", "column-name": "HIRE_DATE" }, "data-type": { "type": "TIMESTAMP WITH TIME ZONE", "precision": 3 } } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Cambie el tipo de datos del parámetro P_AMOUNT PROCESS_PAYMENT en el procedimiento almacenado del esquema FINANCE aNUMERIC.

  • Cambie el tipo de datos de la variable local V_TAX_RATE PROCESS_PAYMENT en el procedimiento almacenado del esquema FINANCE a 10 NUMERIC con precisión y escala 6.

  • Cambie el tipo de datos de la variable local V_DESCRIPTION en la función CALC_DISCOUNT independiente del esquema FINANCE a una longitud CHARACTER de 150.

{ "rules": [ { "rule-id": 7, "rule-type": "transformation", "rule-name": "change-datatype-param-p-amount", "rule-action": "change-data-type", "rule-target": "routine parameter", "object-locator": { "schema-name": "FINANCE", "procedure-name": "PROCESS_PAYMENT", "parameter-name": "P_AMOUNT" }, "data-type": { "type": "NUMERIC" } }, { "rule-id": 21, "rule-type": "transformation", "rule-name": "change-datatype-localvar-v-tax-rate", "rule-action": "change-data-type", "rule-target": "local variable", "object-locator": { "schema-name": "FINANCE", "procedure-name": "PROCESS_PAYMENT", "local-variable-name": "V_TAX_RATE" }, "data-type": { "type": "NUMERIC", "precision": 10, "scale": 6 } }, { "rule-id": 43, "rule-type": "transformation", "rule-name": "change-datatype-localvar-v-description", "rule-action": "change-data-type", "rule-target": "local variable", "object-locator": { "schema-name": "FINANCE", "function-name": "CALC_DISCOUNT", "local-variable-name": "V_DESCRIPTION" }, "data-type": { "type": "CHARACTER", "length": 150 } } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Cambie el tipo de datos de retorno de la función independiente GET_PRODUCT_PRICE en el esquema FNG_COMPANY aBIGINT.

  • Cambie el tipo de datos de retorno de la función independiente CALC_DISCOUNTED_PRICE en el esquema FNG_COMPANY a. DECIMAL

  • Cambie el tipo de datos devueltos de la función empaquetada CALCULATE_TAX dentro del paquete del TAX_UTILS esquema FNG_COMPANY aREAL.

{ "rules": [ { "rule-id": 13, "rule-type": "transformation", "rule-name": "change-result-type-get-product-price", "rule-action": "change-data-type", "rule-target": "function result", "object-locator": { "schema-name": "FNG_COMPANY", "function-name": "GET_PRODUCT_PRICE" }, "data-type": { "type": "BIGINT" } }, { "rule-id": 28, "rule-type": "transformation", "rule-name": "change-result-calc-discounted-price", "rule-action": "change-data-type", "rule-target": "function result", "object-locator": { "schema-name": "FNG_COMPANY", "function-name": "CALC_DISCOUNTED_PRICE" }, "data-type": { "type": "DECIMAL" } }, { "rule-id": 61, "rule-type": "transformation", "rule-name": "change-result-type-calculate-tax", "rule-action": "change-data-type", "rule-target": "function result", "object-locator": { "schema-name": "FNG_COMPANY", "parent": "TAX_UTILS", "function-name": "CALCULATE_TAX" }, "data-type": { "type": "REAL" } } ] }

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:

  • Agregue un prefijo MIGR_ a todos los esquemas cuyos nombres comiencen por. STG_

  • Agregue un prefijo MIGR_ a todas las tablas de todos los esquemas cuyos nombres comiencen por. STG_

  • Agregue un sufijo _NEW a todas las columnas cuyos nombres comiencen por SRC_ en todas las tablas de todos los esquemas cuyos nombres comiencen por. STG_

{ "rules": [ { "rule-id": 8, "rule-type": "transformation", "rule-name": "add-prefix-schemas-starting-with-stg", "rule-action": "add-prefix", "rule-target": "schema", "object-locator": { "schema-name": "STG_%" }, "value": "MIGR_" }, { "rule-id": 33, "rule-type": "transformation", "rule-name": "add-prefix-all-tables-in-stg-schemas", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "STG_%", "table-name": "%" }, "value": "MIGR_" }, { "rule-id": 57, "rule-type": "transformation", "rule-name": "add-suffix-columns-starting-with-src", "rule-action": "add-suffix", "rule-target": "column", "object-locator": { "schema-name": "STG_%", "table-name": "%", "column-name": "SRC_%" }, "value": "_NEW" } ] }