View a markdown version of this page

DMS Schema Conversion の変換ルール - AWS データベース移行サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DMS Schema Conversion の変換ルール

変換ルールを使用すると、DMS Schema Conversion がデータベースオブジェクトを変換する方法をカスタマイズし、デフォルトの命名とデータ型マッピングを上書きできます。これらのルールは、データベース、スキーマ、テーブル、ビュー、列、関数戻り値、ルーチンパラメータ、ローカル変数に適用できます。

例えば、test_TABLE_NAME という名前のソーススキーマにテーブルがあるとします。ターゲットスキーマ内にある プレフィックス test_ をプレフィックス demo_ に変更するルールを設定できます。

変換ルールを作成して、次のとおりのタスクを実行できます。

  • プレフィックスの追加、削除、または置換

  • サフィックスの追加、削除、または置換

  • 列、関数戻り値、ルーチンパラメータ、またはローカル変数のデータ型を変更する

  • オブジェクト名を小文字または大文字に変換する

  • オブジェクトの名前を変更する

変換ルールの作成

移行プロジェクトの一環として、DMS Schema Conversion は変換ルールを保存します。変換ルールを定義するには、移行プロジェクトを作成または変更するときに、それらをrules配列を持つオブジェクトを含む JSON 文字列として渡します。配列内の各要素は、個別のルールオブジェクトを表します。移行プロジェクトは、最大 512 の変換ルール (最大 128 KB) をサポートします。

変換ルールを含む配列の構造は次のとおりです。

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

プロジェクトには複数の変換ルールを追加できます。DMS Schema Conversion は変換中に、変換ルールが追加された順番通りにルールを適用します。

複数のルールが同じオブジェクトを対象とする場合、動作はアクションタイプによって異なります。アクションタイプが異なるルールはすべて有効になります。たとえば、 add-prefixルールと add-suffixルールの両方が適用されます。同じアクションタイプのルールは互いに上書きされ、最後のアクションタイプのみが有効になります。

変換ルールを作成するには、次のいずれかの方法を使用します。

AWS Management Console
コンソールを使用して変換ルールを作成するには
  1. [移行プロジェクトの作成] ページで、[変換ルールの追加] をクリックします。詳細については、「 移行プロジェクトの作成」を参照してください。

  2. ルールターゲットで、このルールが適用されるデータベースオブジェクトのタイプを選択します。コンソールウィザードは、schematable、および columnターゲットをサポートします。database や などの他のターゲットを使用するにはview、コンソールまたは CLI で JSON AWS エディタを使用します。

  3. [ソーススキーマ] では、[スキーマの入力] を選択します。次に、このルールが適用されるソーススキーマ、テーブル、列を指定します。正確な名前を使用して 1 つのオブジェクトを選択するか、パーセント記号 (%) のパターンをワイルドカードとして使用して任意の文字数に一致させることができます。

  4. [アクション] では、実行するタスクを選択します。

  5. ルールアクションに応じて、追加の値を入力します。

    • add-prefix または add-suffix – 追加するテキストを入力します。

    • remove-prefix または remove-suffix – 削除するテキストを入力します。

    • replace-prefix または replace-suffix – 既存のテキストと置換テキストを入力します。

    • rename – オブジェクトの新しい名前を入力します。

    • convert-uppercase または convert-lowercase – 追加の値は必要ありません。

    • change-data-type – ターゲットデータ型名を入力し、必要に応じて精度、スケール、または長さを入力します。

  6. [変換ルールの追加] をクリックすると、別の変換ルールを追加できます。

    ルールの追加が完了したら、[移行プロジェクトを作成] をクリックします。

AWS CLI

CLI を使用して変換ルールを追加するには、次のいずれかのコマンドで AWS --transformation-rulesパラメータを使用します。

次の例では、既存の移行プロジェクトに変換ルールを追加します。

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

特定の AWS リージョンでこのコマンドを実行するには、 などの --regionパラメータを追加します--region us-west-2

既存の変換ルールを編集、複製、または削除するには、「」を参照してください変換ルールの編集

変換ルールの取得

AWS マネジメントコンソールまたは AWS CLI を使用して、既存の DMS Schema Conversion 移行プロジェクトから変換ルールを取得できます。

AWS Management Console

AWS マネジメントコンソールを使用して変換ルールを表示するには、既存の移行プロジェクトで変更を選択し、変換ルールセクションの既存のルールのリストを確認します。

AWS CLI

既存の DMS Schema Conversion 移行プロジェクトから変換ルールを取得するには、describe-migration-projects コマンドを使用します。レスポンスは JSON 形式を使用し、プロジェクトに関連付けられた変換ルールが含まれます。

次の CLI AWS の例では、移行プロジェクトから変換ルールを取得します。

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

変換ルールの編集

移行プロジェクトの変換ルールを編集、追加、または削除するには、次のいずれかの方法を使用します。

AWS Management Console
変換ルールを編集するには
  1. [移行プロジェクト] を選択して、編集する移行プロジェクトを選択します。

  2. 変更を選択して移行プロジェクト設定を編集します。

  3. [変換ルール] で、次のいずれかのアクションを選択します。

    • 変換ルールの追加 を選択して、新しい変換ルールを追加します。

    • 重複 を選択して既存の変換ルールを複製し、リストの最後に追加します。

    • 既存の変換ルールを削除するには、[削除] を選択する。

    • 編集するには、既存の変換ルールを選択する。

  4. ルールの編集を完了した後、[変更を保存] を選択します。

AWS CLI

AWS CLI を使用して変換ルールを更新するには、 --transformation-rulesパラメータを指定して modify-migration-project コマンドを使用します。更新されたルールの完全なセットを JSON 文字列として渡します。

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

変換ルールの形式

変換ルールは JSON オブジェクトフィールドを使用して、ソースオブジェクトを同等のターゲットに変換する方法を定義します。各ルールタイプは、特定のフィールドのセットを使用します。タスクに適用されるフィールドのみを含めます。

次の JSON オブジェクトは、DMS Schema Conversion 変換ルールを記述します。

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

次の表に、各パラメータを示します。

パラメータ 使用できる値: 説明
rule-type transformation

オブジェクトロケーターで指定された各オブジェクトにルールを適用する値。

すべての変換ルールで、これを に設定しますtransformation

必須パラメータ。

rule-id 数値 (整数)。

ルールを識別する一意の数値。

必須パラメータ。

rule-name 英数字値。

ルールを特定する一意な名前。

必須パラメータ。

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

オブジェクトに適用する変換。すべて変換ルールアクションでは、大文字と小文字が区別されます。

プレフィックスオペレーション:

  • add-prefix – 指定されたテキストを名前の先頭に追加します。

  • remove-prefix – 名前の先頭から指定されたテキストを削除します。

  • replace-prefix – 既存のプレフィックスを新しいプレフィックスに置き換えます。

サフィックスオペレーション:

  • add-suffix – 指定されたテキストを名前の末尾に追加します。

  • remove-suffix – 名前の末尾から指定されたテキストを削除します。

  • replace-suffix – 既存のサフィックスを新しいサフィックスに置き換えます。

ケース変換:

  • convert-uppercase – 名前内のすべての文字を大文字に変換します。

  • convert-lowercase – 名前内のすべての文字を小文字に変換します。

直接変更:

  • rename – 名前をまったく新しい指定された値に変更します。

  • change-data-type – 列またはローカル変数のデータ型を別のデータ型に変更します。

スコープ: プレフィックス、サフィックス、名前変更、大文字と小文字の変換オペレーションをスキーマ、テーブル、列に適用できます。

change-data-type オペレーションは、列、関数戻り値、ルーチンパラメータ、ローカル変数にのみ適用されます。

必須パラメータ。

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

ルールが適用されるオブジェクトのタイプ。

  • database – データベース。

  • schema – データベーススキーマ。

  • table – データベーステーブル。

  • view – データベースビュー。

  • column – データベーステーブルまたはビュー列。

  • function result – 関数の戻り値。

  • routine parameter – ストアドプロシージャまたは関数パラメータ。

  • local variable – ストアドプロシージャまたは関数内のローカル変数。

必須パラメータ。

object-locator JSON オブジェクト。

ルールが適用されるソースデータベースオブジェクトを識別するオブジェクト。パーセント記号 (%) は、各object-locatorオブジェクトフィールドの値の全部または一部のワイルドカードとして使用できます。

オブジェクトには、次の文字列フィールドが含まれます。

  • database-name

  • schema-name

  • table-name

  • column-name

  • parent

  • function-name

  • procedure-name

  • parameter-name

  • local-variable-name

  • type

  • precision

  • scale

  • length

変換ルールでは、テーブル名や列名など、すべてのオブジェクト名で大文字と小文字が区別されます。

以下のセクションでは、各オブジェクトフィールドについて説明します。

必須パラメータ。

object-locator | database-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベースの名前。

データベースアーキテクチャがオブジェクトの最上位コンテナとしてデータベースから発信されるデータベースベンダーに適用されます。例: Microsoft SQL Server、SAP ASE。

オプションの JSON オブジェクトフィールド。

object-locator | schema-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベーススキーマの名前。

オプションの JSON オブジェクトフィールド。

object-locator | table-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベーステーブルの名前。

オプションの JSON オブジェクトフィールド。

object-locator | column-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベーステーブル列の名前。

オプションの JSON オブジェクトフィールド。

object-locator | parent ソースデータベースの命名規則に従う英数字の値。

または など、指定されたオブジェクトの親であるソースデータベースオブジェクトの名前function-nameprocedure-name

一部のベンダーのデータベースでは、ルールが適用されるオブジェクトが下位であり、親の指定が必要になる場合があります。

たとえば、Oracle のパッケージ化された関数です。親はパッケージ名です。

オプションの JSON オブジェクトフィールド。

object-locator | function-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベース関数の名前。

オプションの JSON オブジェクトフィールド。

object-locator | procedure-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベースプロシージャの名前。

オプションの JSON オブジェクトフィールド。

object-locator | parameter-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベース関数またはプロシージャパラメータの名前。

オプションの JSON オブジェクトフィールド。

object-locator | local-variable-name ソースデータベースの命名規則に従う英数字の値。

ソースデータベース関数またはプロシージャ内のローカル変数の名前。

オプションの JSON オブジェクトフィールド。

object-locator | type 英数字値。

一致するソースデータ型名。このフィールドを使用して、特定のデータ型のオブジェクトにのみルールを適用します。

オプションの JSON オブジェクトフィールド。

object-locator | precision 数値 (整数)。

一致するソースデータ型の精度。

オプションの JSON オブジェクトフィールド。

object-locator | scale 数値 (整数)。

一致するソースデータ型のスケール。

オプションの JSON オブジェクトフィールド。

object-locator | length 数値 (整数)。

一致するソースデータ型の長さ。

オプションの JSON オブジェクトフィールド。

value ターゲットデータベースの命名規則に従う英数字の値。

変換アクションで使用されるテキスト値。add-prefix および の場合add-suffix、追加するテキストを指定します。remove-prefix と の場合remove-suffix、削除するテキストを指定します。replace-prefix と ではreplace-suffix、置換テキストを指定します。ではrename、新しい名前を指定します。

convert-uppercase、、convert-lowercaseおよび を除くすべてのアクションに必要ですchange-data-type

old-value ソースデータベースの命名規則に従う英数字の値。

オブジェクト名で検索して置き換える既存の値。replace-prefix や などのアクションに必要ですreplace-suffix

オプションのパラメータ。

data-type JSON オブジェクト。

rule-action が の場合に置換データ型のプロパティを記述するオブジェクトchange-data-type

オブジェクトには、以下のフィールドが含まれています。

  • type : 文字列

  • precision : 数値

  • scale : 数値

  • length : 数値

以下のセクションでは、各オブジェクトフィールドについて説明します。

オプションのパラメータ。

data-type | type 英数字値。

rule-action が の場合、ターゲットデータベース列の置き換えデータ型の名前change-data-type。有効なターゲットデータベースデータ型である必要があります。

必須の JSON オブジェクトフィールド。

data-type | precision 数値 (整数)。

が の場合のターゲットデータベースの置換データ型の精度rule-actionchange-data-type

オプションの JSON オブジェクトフィールド。

data-type | scale 数値 (整数)。

rule-action が の場合、ターゲットデータベースの置き換えデータ型のスケールchange-data-type

オプションの JSON オブジェクトフィールド。

data-type | length 数値 (整数)。

rule-action が の場合、ターゲットデータベースの置き換えデータ型の長さchange-data-type

オプションの JSON オブジェクトフィールド。

変換ルールの例

次の例は、さまざまなルールタイプの --transformation-rulesパラメータの JSON 値を示しています。

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマ DW_にプレフィックス を追加しますSALES

  • スキーマ ORDERSのテーブルFACT_にプレフィックスを追加しますSALES

  • スキーマ UNIT_PRICEのテーブル PRODUCTS の列OLD_にプレフィックスを追加します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_" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマ SRC_からプレフィックス を削除しますSRC_FINANCE

  • スキーマ TMP_INVOICESのテーブルTMP_からプレフィックスを削除しますSRC_FINANCE

  • スキーマ PAID_AMOUNT のテーブル TMP_PAYMENTSの列PAID_からプレフィックスを削除します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_" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマ NEW_ でプレフィックス OLD_を に置き換えますOLD_INVENTORY

  • スキーマ INT_ のテーブルでプレフィックス STG_WAREHOUSESSTG_に置き換えますOLD_INVENTORY

  • スキーマ のテーブルTGT_の列SRC_WAREHOUSE_CODEのプレフィックス SRC_STG_WAREHOUSESに置き換えます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_" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマ _HISTにサフィックスを追加しますHR_ARCHIVE

  • スキーマ JOB_CHANGESのテーブル_HISTにサフィックスを追加しますHR_ARCHIVE

  • スキーマ CREATED_ATのテーブルの_TSEMPLOYEE_SALARIESにサフィックスを追加します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" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマ _FILESからサフィックスを削除しますLEGAL_FILES

  • スキーマ CLAUSES_V1のテーブル_V1からサフィックスを削除しますLEGAL_FILES

  • スキーマ COUNTRY_CODEのテーブル CONTRACTS_V1 の列_CODEからサフィックスを削除します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" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマ _PRODのサフィックスを _DEVに置き換えますREPORTING_DEV

  • スキーマ _RPT_REPORTのテーブルのサフィックスを MONTHLY_RPTに置き換えますREPORTING_DEV

  • スキーマ _IDのテーブル_KEYの列CUSTOMER_IDのサフィックスを MONTHLY_RPTに置き換えます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" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマの名前のすべての文字を大文字に変換CRM_LEGACYします。

  • CUSTOMER_ACCOUNTS スキーマのテーブル名内のすべての文字CRM_LEGACYを大文字に変換します。

  • CUSTOMER_ACCOUNTS スキーマのテーブルFIRST_NAMEの列の名前のすべての文字CRM_LEGACYを大文字に変換します。

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

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマの名前のすべての文字を小文字に変換LOGISTICSします。

  • SHIPMENT_ORDERS スキーマのテーブル名内のすべての文字LOGISTICSを小文字に変換します。

  • SHIPMENT_ORDERS スキーマのテーブルDESTINATION_CITYの列名内のすべての文字LOGISTICSを小文字に変換します。

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

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマの名前TEST_SCHEMAを に変更しますTEST_NEW_SCHEMA

  • スキーマREGIONSのテーブルの名前HRを に変更しますORG_REGIONS

  • スキーマCITYのテーブルLOCATIONSの列の名前HRを に変更します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" } ] }

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • EMPLOYEES スキーマSALARYのテーブルの列のデータ型を、精度 18 とスケール 4 DECIMALPAYROLL NUMBERから に変更します。

  • スキーマNOTESのテーブルの列のデータ型EMPLOYEESを、長さ 350 VARCHARPAYROLL VARCHAR2から に変更します。

  • スキーマのテーブルHIRE_DATEの列のデータ型EMPLOYEESを、精度 3 TIMESTAMP WITH TIME ZONEPAYROLL から DATEに変更します。

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

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマP_AMOUNTのストアドプロシージャPROCESS_PAYMENTの パラメータのデータ型を FINANCEに変更しますNUMERIC

  • PROCESS_PAYMENT スキーマのストアドプロシージャV_TAX_RATEのローカル変数のデータ型FINANCEを、精度 10 とスケール 6 NUMERICで に変更します。

  • スキーマのスタンドアロン関数V_DESCRIPTIONのローカル変数のデータ型CALC_DISCOUNTを、長さ 150 CHARACTERFINANCE に変更します。

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

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • スキーマGET_PRODUCT_PRICEのスタンドアロン関数の戻りデータ型を FNG_COMPANYに変更しますBIGINT

  • スキーマCALC_DISCOUNTED_PRICEのスタンドアロン関数の戻りデータ型を FNG_COMPANYに変更しますDECIMAL

  • スキーマTAX_UTILSのパッケージCALCULATE_TAX内のパッケージ化された関数の戻りデータ型FNG_COMPANYを に変更しますREAL

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

次の例では、ソースデータベースからターゲットデータベースに変換するときにこれらのアクションを実行します。

  • 名前が で始まるすべてのスキーマMIGR_にプレフィックスを追加しますSTG_

  • 名前が で始まるすべてのスキーマのすべてのテーブルMIGR_にプレフィックスを追加しますSTG_

  • 名前が で始まるすべてのスキーマのすべてのテーブルSRC_で、名前が で始まるすべての列_NEWにサフィックスを追加します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" } ] }