View a markdown version of this page

Règles de transformation dans DMS Schema Conversion - AWS Database Migration Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Règles de transformation dans DMS Schema Conversion

Les règles de transformation vous permettent de personnaliser la façon dont DMS Schema Conversion convertit les objets de votre base de données, en remplaçant les mappages de noms et de types de données par défaut. Vous pouvez appliquer ces règles aux bases de données, aux schémas, aux tables, aux vues, aux colonnes, aux valeurs renvoyées par les fonctions, aux paramètres de routine et aux variables locales.

Supposons par exemple que vous disposiez d’un ensemble de tables dans votre schéma source nommé test_TABLE_NAME. Vous pouvez configurer une règle qui remplace le préfixe test_ par le préfixe demo_ dans le schéma cible.

Vous pouvez créer des règles de transformation qui effectuent les tâches suivantes :

  • Ajouter, supprimer ou remplacer un préfixe

  • Ajouter, supprimer ou remplacer un suffixe

  • Modifier le type de données d'une colonne, d'une valeur de retour d'une fonction, d'un paramètre de routine ou d'une variable locale

  • Convertir le nom de l'objet en minuscules ou en majuscules

  • Renommer un objet

Création de règles de transformation

La conversion de schéma DMS stocke les règles de transformation dans le cadre de votre projet de migration. Pour définir des règles de transformation, transmettez-les sous forme de chaîne JSON contenant un objet avec un rules tableau lorsque vous créez ou modifiez un projet de migration. Chaque élément du tableau représente un objet de règle distinct. Un projet de migration prend en charge jusqu'à 512 règles de transformation (128 Ko maximum).

La structure du tableau avec les règles de transformation est la suivante :

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

Vous pouvez ajouter plusieurs règles de transformation dans votre projet. La conversion de schéma DMS applique les règles de transformation lors de la conversion dans l’ordre dans lequel vous les avez ajoutées.

Si plusieurs règles ciblent le même objet, le comportement dépend du type d'action. Les règles comportant différents types d'actions entrent toutes en vigueur. Par exemple, une add-prefix règle et une add-suffix règle s'appliquent toutes les deux. Les règles comportant le même type d'action se remplacent les unes les autres, et seule la dernière prend effet.

Pour créer des règles de transformation, appliquez l'une des méthodes suivantes.

AWS Management Console
Pour créer des règles de transformation à l'aide de la console
  1. Sur la page Créer un projet de migration, choisissez Ajouter une règle de transformation. Pour de plus amples informations, veuillez consulter Création de projets de migration.

  2. Pour la cible de la règle, choisissez le type d'objets de base de données auxquels cette règle s'applique. L'assistant de console prend en charge schematable, et column cible. Pour utiliser d'autres cibles telles que database ouview, utilisez l'éditeur JSON de la console ou de la AWS CLI.

  3. Pour Schéma source, choisissez Entrer un schéma. Spécifiez ensuite les schémas source, les tables et les colonnes auxquels cette règle s'applique. Vous pouvez utiliser un nom exact pour sélectionner un objet ou utiliser un modèle avec le signe du pourcentage (%) comme caractère générique pour correspondre à un nombre quelconque de caractères.

  4. Pour Action, choisissez la tâche à effectuer.

  5. En fonction de l'action de la règle, entrez des valeurs supplémentaires :

    • add-prefixou add-suffix — Entrez le texte à ajouter.

    • remove-prefixou remove-suffix — Entrez le texte à supprimer.

    • replace-prefixou replace-suffix — Entrez le texte existant et le texte de remplacement.

    • rename— Entrez le nouveau nom de l'objet.

    • convert-uppercaseou convert-lowercase — Aucune valeur supplémentaire n'est requise.

    • change-data-type— Entrez le nom du type de données cible, et éventuellement la précision, l'échelle ou la longueur.

  6. Choisissez Ajouter une règle de transformation pour ajouter une autre règle de transformation.

    Une fois que vous avez terminé d’ajouter des règles, choisissez Créer un projet de migration.

AWS CLI

Pour ajouter des règles de transformation à l'aide de la AWS CLI, utilisez le --transformation-rules paramètre avec l'une des commandes suivantes :

L'exemple suivant ajoute des règles de transformation à un projet de migration existant :

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

Pour exécuter cette commande dans une région AWS spécifique, ajoutez le --region paramètre, par exemple--region us-west-2.

Pour modifier, dupliquer ou supprimer des règles de transformation existantes, consultezModification de règles de transformation.

Récupération des règles de transformation

Vous pouvez récupérer les règles de transformation d'un projet de migration de schéma DMS existant à l'aide de la console AWS de gestion ou de la AWS CLI.

AWS Management Console

Pour consulter les règles de transformation à l'aide de la console de AWS gestion, choisissez Modifier sur un projet de migration existant et consultez la liste des règles existantes dans la section Règles de transformation.

AWS CLI

Pour récupérer les règles de transformation d'un projet de migration de schéma DMS existant, utilisez la commande describe-migration-projects. La réponse utilise le format JSON et inclut les règles de transformation associées au projet.

L'exemple de AWS CLI suivant extrait les règles de transformation d'un projet de migration :

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

Modification de règles de transformation

Pour modifier, ajouter ou supprimer des règles de transformation dans votre projet de migration, appliquez l'une des méthodes suivantes.

AWS Management Console
Pour modifier des règles de transformation
  1. Choisissez Projets de migration, puis choisissez votre projet de migration.

  2. Choisissez Modifier pour modifier les paramètres de votre projet de migration.

  3. Pour Règles de transformation, choisissez l’une des actions suivantes :

    • Choisissez Ajouter une règle de transformation pour ajouter une nouvelle règle de transformation.

    • Choisissez Dupliquer pour dupliquer une règle de transformation existante et ajoutez-la à la fin de la liste.

    • Choisissez Supprimer pour supprimer une règle de transformation existante.

    • Choisissez la règle de transformation existante pour la modifier.

  4. Une fois que vous avez terminé de modifier les règles, choisissez Enregistrer les modifications.

AWS CLI

Pour mettre à jour les règles de transformation à l'aide de la AWS CLI, utilisez la commande modify-migration-project avec le paramètre. --transformation-rules Transmettez l'ensemble complet des règles mises à jour sous forme de chaîne JSON.

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

Format des règles de transformation

Une règle de transformation utilise des champs d'objet JSON pour définir comment convertir un objet source en son équivalent cible. Chaque type de règle utilise un ensemble de champs spécifique. N'incluez que les champs qui s'appliquent à votre tâche.

L'objet JSON suivant décrit une règle de transformation de schéma 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 ] } ] }

Le tableau suivant décrit chaque paramètre.

Paramètre Valeurs possibles Description
rule-type transformation

Valeur qui applique la règle à chaque objet spécifié par le localisateur d'objets.

Pour toutes les règles de transformation, définissez cette valeur surtransformation.

Paramètre obligatoire.

rule-id Une valeur numérique (entier).

Valeur numérique unique pour identifier la règle.

Paramètre obligatoire.

rule-name Valeur alphanumérique.

Nom unique pour identifier la règle.

Paramètre obligatoire.

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

Transformation à appliquer à l'objet. Toutes les actions de règle de transformation sont sensibles à la casse.

Opérations sur les préfixes :

  • add-prefix— Ajoute le texte spécifié au début d'un nom.

  • remove-prefix— Supprime le texte spécifié au début d'un nom.

  • replace-prefix— Remplace un préfixe existant par un nouveau.

Opérations sur les suffixes :

  • add-suffix— Ajoute le texte spécifié à la fin d'un nom.

  • remove-suffix— Supprime le texte spécifié à la fin d'un nom.

  • replace-suffix— Remplace un suffixe existant par un nouveau.

Conversion de cas :

  • convert-uppercase— Convertit tous les caractères d'un nom en majuscules.

  • convert-lowercase— Convertit tous les caractères d'un nom en minuscules.

Modification directe :

  • rename— Remplacez le nom par une toute nouvelle valeur spécifiée.

  • change-data-type— Modifiez le type de données d'une colonne ou d'une variable locale en un autre type de données.

Champ d'application : les opérations de préfixe, de suffixe, de renommage et de conversion majuscules/minuscules peuvent être appliquées aux schémas, aux tables et aux colonnes.

L'change-data-typeopération s'applique uniquement aux colonnes, aux valeurs renvoyées par les fonctions, aux paramètres de routine et aux variables locales.

Paramètre obligatoire.

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

Type d'objet auquel la règle sera appliquée.

  • database— Base de données.

  • schema— Schéma de base de données.

  • table— Table de base de données.

  • view— Vue de la base de données.

  • column— Table de base de données ou colonne de vue.

  • function result— Valeur renvoyée par la fonction.

  • routine parameter— Procédure stockée ou paramètre de fonction.

  • local variable— Variable locale au sein d'une procédure ou d'une fonction stockée.

Paramètre obligatoire.

object-locator Un objet JSON.

Objet qui identifie les objets de base de données source auxquels s'applique la règle. Vous pouvez utiliser le signe de pourcentage (%) comme caractère générique pour tout ou partie de la valeur de chaque champ d'object-locatorobjet.

L'objet contient les champs de chaîne suivants :

  • database-name

  • schema-name

  • table-name

  • column-name

  • parent

  • function-name

  • procedure-name

  • parameter-name

  • local-variable-name

  • type

  • precision

  • scale

  • length

Dans les règles de transformation, tous les noms d'objets, tels que les noms de tables ou de colonnes, distinguent les majuscules et minuscules.

Les sections suivantes décrivent chaque champ d'objet.

Paramètre obligatoire.

object-locator | database-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de la base de données source.

Applicable aux fournisseurs de bases de données dont l'architecture provient de la base de données en tant que conteneur d'objets de premier niveau. Par exemple : Microsoft SQL Server, SAP ASE.

Champ d'objet JSON facultatif.

object-locator | schema-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom du schéma de base de données source.

Champ d'objet JSON facultatif.

object-locator | table-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de la table de base de données source.

Champ d'objet JSON facultatif.

object-locator | column-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de la colonne de la table de base de données source.

Champ d'objet JSON facultatif.

object-locator | parent Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de l'objet de base de données source qui est le parent de l'objet spécifié, par exemple pour le function-name ouprocedure-name.

Dans les bases de données de certains fournisseurs, l'objet auquel la règle est appliquée peut être subordonné et nécessiter la spécification de son parent.

Par exemple, les fonctions packagées dans Oracle, où le parent est le nom du package.

Champ d'objet JSON facultatif.

object-locator | function-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de la fonction de base de données source.

Champ d'objet JSON facultatif.

object-locator | procedure-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de la procédure de base de données source.

Champ d'objet JSON facultatif.

object-locator | parameter-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom de la fonction ou du paramètre de procédure de la base de données source.

Champ d'objet JSON facultatif.

object-locator | local-variable-name Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

Nom d'une variable locale au sein de la fonction ou de la procédure de base de données source.

Champ d'objet JSON facultatif.

object-locator | type Valeur alphanumérique.

Nom du type de données source à associer. Utilisez ce champ pour appliquer la règle uniquement aux objets dotés d'un type de données spécifique.

Champ d'objet JSON facultatif.

object-locator | precision Une valeur numérique (entier).

Précision du type de données source à associer.

Champ d'objet JSON facultatif.

object-locator | scale Une valeur numérique (entier).

Échelle du type de données source à comparer.

Champ d'objet JSON facultatif.

object-locator | length Une valeur numérique (entier).

Longueur du type de données source à faire correspondre.

Champ d'objet JSON facultatif.

value Valeur alphanumérique conforme aux règles de dénomination de la base de données cible.

La valeur de texte utilisée par l'action de transformation. Pour add-prefix etadd-suffix, indique le texte à ajouter. Pour remove-prefix etremove-suffix, indique le texte à supprimer. Pour replace-prefix etreplace-suffix, indique le texte de remplacement. Pourrename, spécifie le nouveau nom.

Obligatoire pour toutes les actions sauf convert-uppercaseconvert-lowercase, etchange-data-type.

old-value Valeur alphanumérique conforme aux règles de dénomination de la base de données source.

La valeur existante à rechercher et à remplacer dans le nom de l'objet. Nécessaire pour des actions telles que replace-prefix etreplace-suffix.

Paramètre facultatif.

data-type Un objet JSON.

Un objet décrivant les propriétés du type de données de remplacement quand rule-action c'est le caschange-data-type.

L'objet comporte les champs suivants :

  • type: chaîne

  • precision: numéro

  • scale: numéro

  • length: numéro

Les sections suivantes décrivent chaque champ d'objet.

Paramètre facultatif.

data-type | type Valeur alphanumérique.

Nom du type de données de remplacement pour la colonne de base de données cible si rule-action c'est le caschange-data-type. Il doit s'agir d'un type de données de base de données cible valide.

Champ d'objet JSON obligatoire.

data-type | precision Une valeur numérique (entier).

La précision du type de données de remplacement pour la base de données cible si rule-action c'est le caschange-data-type.

Champ d'objet JSON facultatif.

data-type | scale Une valeur numérique (entier).

L'échelle du type de données de remplacement pour la base de données cible si rule-action c'est le caschange-data-type.

Champ d'objet JSON facultatif.

data-type | length Une valeur numérique (entier).

Longueur du type de données de remplacement pour la base de données cible si rule-action c'est le caschange-data-type.

Champ d'objet JSON facultatif.

Exemples de règles de transformation

Les exemples suivants montrent la valeur JSON du --transformation-rules paramètre pour différents types de règles :

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Ajoutez un préfixe DW_ au schéma. SALES

  • Ajoutez un préfixe FACT_ à la table ORDERS dans le schéma. SALES

  • Ajoutez un préfixe OLD_ à la colonne de la table UNIT_PRICE PRODUCTS dans le schémaSALES.

{ "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_" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Supprimer le préfixe SRC_ du schéma. SRC_FINANCE

  • Supprimer le préfixe TMP_ de la table TMP_INVOICES dans le schéma. SRC_FINANCE

  • Supprimer le préfixe PAID_ de la colonne de la table PAID_AMOUNT TMP_PAYMENTS dans le schémaSRC_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_" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Remplacez le préfixe OLD_ par NEW_ dans le schéma. OLD_INVENTORY

  • Remplacez le préfixe STG_ par INT_ dans le tableau STG_WAREHOUSES dans le schémaOLD_INVENTORY.

  • Remplacez le préfixe SRC_ par TGT_ SRC_WAREHOUSE_CODE dans la colonne du tableau STG_WAREHOUSES du schémaOLD_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_" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Ajoutez un suffixe _HIST au schéma. HR_ARCHIVE

  • Ajoutez un suffixe _HIST à la table JOB_CHANGES dans le schéma. HR_ARCHIVE

  • Ajoutez un suffixe _TS à la colonne de CREATED_AT la table EMPLOYEE_SALARIES dans le schémaHR_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" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Supprimer le suffixe _FILES du schéma. LEGAL_FILES

  • Supprimer le suffixe _V1 de la table CLAUSES_V1 dans le schéma. LEGAL_FILES

  • Supprimer le suffixe _CODE de la colonne de COUNTRY_CODE la table CONTRACTS_V1 dans le schémaLEGAL_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" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Remplacez le suffixe _DEV par _PROD dans le schéma. REPORTING_DEV

  • Remplacez le suffixe _RPT par _REPORT dans le tableau MONTHLY_RPT dans le schémaREPORTING_DEV.

  • Remplacez le suffixe _ID par _KEY dans la colonne de CUSTOMER_ID la table MONTHLY_RPT dans le schémaREPORTING_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" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Convertissez tous les caractères du nom du schéma en CRM_LEGACY majuscules.

  • Convertissez tous les caractères du nom de la table CUSTOMER_ACCOUNTS dans le schéma CRM_LEGACY en majuscules.

  • Convertissez tous les caractères du nom de colonne de la table FIRST_NAME CUSTOMER_ACCOUNTS dans le schéma CRM_LEGACY en majuscules.

{ "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" } } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Convertissez tous les caractères du nom du schéma LOGISTICS en minuscules.

  • Convertissez tous les caractères du nom de la table SHIPMENT_ORDERS dans le schéma LOGISTICS en minuscules.

  • Convertissez tous les caractères du nom de colonne de la table DESTINATION_CITY SHIPMENT_ORDERS dans le schéma LOGISTICS en minuscules.

{ "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" } } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Renommez le schéma TEST_SCHEMA en. TEST_NEW_SCHEMA

  • Renommez la table REGIONS du schéma HR en. ORG_REGIONS

  • Renommez la colonne CITY de la table LOCATIONS dans le schéma HR en. 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" } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Modifiez le type de données de la colonne de la table SALARY EMPLOYEES dans le schéma PAYROLL de NUMBER à DECIMAL avec une précision de 18 et une échelle de 4.

  • Changez le type de données de la colonne de la table NOTES EMPLOYEES dans le schéma PAYROLL de VARCHAR2 VARCHAR à une longueur de 350.

  • Changez le type de données de la colonne de EMPLOYEES la table HIRE_DATE dans le schéma PAYROLL de DATE à TIMESTAMP WITH TIME ZONE avec précision 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 } } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Modifiez le type de données du paramètre P_AMOUNT dans la procédure stockée PROCESS_PAYMENT dans le schéma FINANCE enNUMERIC.

  • Modifiez le type de données de la variable locale V_TAX_RATE PROCESS_PAYMENT dans la procédure stockée du schéma FINANCE NUMERIC avec une précision de 10 et une échelle de 6.

  • Modifiez le type de données de la variable locale V_DESCRIPTION dans la fonction autonome du schéma CALC_DISCOUNT FINANCE à CHARACTER une longueur 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 } } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Modifiez le type de données de retour de la fonction autonome GET_PRODUCT_PRICE dans le schéma FNG_COMPANY enBIGINT.

  • Modifiez le type de données de retour de la fonction autonome CALC_DISCOUNTED_PRICE dans le schéma FNG_COMPANY enDECIMAL.

  • Modifiez le type de données de retour de la fonction empaquetée CALCULATE_TAX dans TAX_UTILS le package dans le schéma FNG_COMPANY enREAL.

{ "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" } } ] }

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :

  • Ajoutez un préfixe MIGR_ à tous les schémas dont le nom commence par. STG_

  • Ajoutez un préfixe MIGR_ à toutes les tables de tous les schémas dont le nom commence par. STG_

  • Ajoutez un suffixe _NEW à toutes les colonnes dont le nom commence par SRC_ dans toutes les tables de tous les schémas dont le nom commence par. 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" } ] }