OCI GoldenGateデータ変換の検出

OCI GoldenGateデータ・レプリケーションおよびデータ変換のデプロイメントを一緒に使用して、2つのAutonomous Databases間でデータをロードおよび変換する方法について学習します。

開始する前に

このクイックスタートが正常に完了するには、次が必要です。

  • サンプル・データがロードされ、サプリメンタル・ロギングが有効になっているソースAutonomous Database。

    ヒント :

    使用するサンプル・データが必要な場合は、OCI GoldenGateサンプル・データをダウンロードできます。
    • Autonomous Databaseのデータベース・アクションSQLツールを使用して、2つのスクリプトを実行してユーザー・スキーマおよび表を作成します。
    • SQLツールを使用して、サプリメンタル・ロギングを有効にします。
    詳細は、ラボ1、タスク3: ATPスキーマのロードのステップに従ってください。
  • ソースAutonomous DatabaseインスタンスでGGADMINユーザーをロック解除します
    1. 「Autonomous Databaseの詳細」ページで、「データベース・アクション」メニューから「データベース・ユーザー」を選択します。

      ヒント :

      ログインするインスタンスを作成したときに指定されたAutonomous Database管理者資格証明(プロンプトが表示されたら)を使用します。
    2. GGADMINユーザーを見つけて、その省略記号(3つのドット)メニューから「編集」を選択します。
    3. 「ユーザーの編集」パネルに、パスワードを入力し、パスワードを確認して、「アカウントがロックされています」の選択を解除します。
    4. 「変更の適用」をクリックします。

タスク1: 環境の設定

  1. データ・レプリケーション・デプロイメントを作成します
  2. ソースOracle Autonomous Transaction Processing (ATP)接続を作成します
  3. ターゲットAutonomous Data Warehouse (ADW)接続を作成します
  4. デプロイメントへの接続の割当て
  5. Autonomous Database SQLツールを使用して、サプリメンタル・ロギングを有効にします:
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
  6. SQLツールで次の問合せを実行して、ソース・データベース内のすべての表のsupport_mode=FULLを確認します:
    
    select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL';

タスク2: 統合Extractの作成

統合Extractは、ソース・データベースに対する継続的な変更を取得します。

  1. 「デプロイメント詳細」ページで、「コンソールの起動」をクリックします。
  2. 必要に応じて、ユーザー名およびデプロイメントの作成時に使用したパスワードにoggadminと入力し、「サインイン」をクリックします。
  3. トランザクション データとチェックポイント テーブルの追加:
    1. ナビゲーション・メニューを開き、「DB接続」をクリックします。
    2. 「データベースへの接続」SourceATPをクリックします。
    3. ナビゲーション・メニューで、「トランザクション」をクリックし、「トランザクション・データの追加」(プラス・アイコン)をクリックします。
    4. 「スキーマ名」SRC_OCIGGLLと入力し、「送信」をクリックします。
    5. 確認するには、「検索」フィールドにSRC_OCIGGLLと入力し、「検索」をクリックします。
    6. ナビゲーション・メニューを開き、「DB接続」をクリックします。
    7. 「データベースTargetADWに接続」をクリックします。
    8. ナビゲーション・メニューで、「チェックポイント」をクリックし、「チェックポイントの追加」(プラス・アイコン)をクリックします。
    9. 「チェックポイント表」"SRCMIRROR_OCIGGLL"."CHECKTABLE"と入力し、「送信」をクリックします。
  4. Extractを追加します

    ノート:

    ソース表を指定するために使用できるパラメータの詳細は、「追加の抽出パラメータ・オプション」を参照してください。
    「Extractパラメータ」ページで、EXTTRAIL <trail-name>の下に次の行を追加してください:
    -- Capture DDL operations for listed schema tables
    ddl include mapped
    
    -- Add step-by-step history of 
    -- to the report file. Very useful when troubleshooting.
    ddloptions report 
    
    -- Write capture stats per table to the report file daily.
    report at 00:01 
    
    -- Rollover the report file weekly. Useful when IE runs
    -- without being stopped/started for long periods of time to
    -- keep the report files from becoming too large.
    reportrollover at 00:01 on Sunday 
    
    -- Report total operations captured, and operations per second
    -- every 10 minutes.
    reportcount every 10 minutes, rate 
    
    -- Table list for capture
    table SRC_OCIGGLL.*;
  5. 長時間実行トランザクションを確認します。ソース・データベースで次のスクリプトを実行します:
    select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);

    問合せでなんらかの行が返された場合は、トランザクションのSCNを特定してから、トランザクションをコミットまたはロールバックする必要があります。

タスク3: Oracle Data Pump (ExpDP)を使用したデータのエクスポート

Oracle Data Pump (ExpDP)を使用して、ソース・データベースからOracle Object Storeにデータをエクスポートします。

  1. Oracle Object Storeバケットを作成します

    エクスポートおよびインポート・スクリプトで使用するネームスペースおよびバケット名をメモしておいてください。

  2. 認証トークンを作成し、後で使用するためにトークン文字列をコピーしてテキスト・エディタに貼り付けます。
  3. ソース・データベースに資格証明を作成し、<user-name>および<token>を、前のステップで作成したOracle Cloudアカウントのユーザー名およびトークン文字列に置き換えます:
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'ADB_OBJECTSTORE', 
        username => '<user-name>',
        password => '<token>'
      );
    END;
  4. ソース・データベースで次のスクリプトを実行して、データのエクスポート・ジョブを作成します。オブジェクト・ストアURIの<region><namespace>および<bucket-name>を適宜置き換えてください。SRC_OCIGGLL.dmpは、このスクリプトの実行時に作成されるファイルです。
    DECLARE
    ind NUMBER;              -- Loop index
    h1 NUMBER;               -- Data Pump job handle
    percent_done NUMBER;     -- Percentage of job complete
    job_state VARCHAR2(30);  -- To keep track of job state
    le ku$_LogEntry;         -- For WIP and error messages
    js ku$_JobStatus;        -- The job status from get_status
    jd ku$_JobDesc;          -- The job description from get_status
    sts ku$_Status;          -- The status object returned by get_status
    
    BEGIN
    -- Create a (user-named) Data Pump job to do a schema export.
    h1 := DBMS_DATAPUMP.OPEN('EXPORT','SCHEMA',NULL,'SRC_OCIGGLL_EXPORT','LATEST');
    
    -- Specify a single dump file for the job (using the handle just returned
    -- and a directory object, which must already be defined and accessible
    -- to the user running this procedure.
    DBMS_DATAPUMP.ADD_FILE(h1,'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket-name>/o/SRC_OCIGGLL.dmp','ADB_OBJECTSTORE','100MB',DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE,1);
    
    -- A metadata filter is used to specify the schema that will be exported.
    DBMS_DATAPUMP.METADATA_FILTER(h1,'SCHEMA_EXPR','IN (''SRC_OCIGGLL'')');
    
    -- Start the job. An exception will be generated if something is not set up properly.
    DBMS_DATAPUMP.START_JOB(h1);
    
    -- The export job should now be running. In the following loop, the job
    -- is monitored until it completes. In the meantime, progress information is displayed.
    percent_done := 0;
    job_state := 'UNDEFINED';
    while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop
      dbms_datapump.get_status(h1,dbms_datapump.ku$_status_job_error + dbms_datapump.ku$_status_job_status + dbms_datapump.ku$_status_wip,-1,job_state,sts);
      js := sts.job_status;
    
    -- If the percentage done changed, display the new value.
    if js.percent_done != percent_done
    then
      dbms_output.put_line('*** Job percent done = ' || to_char(js.percent_done));
      percent_done := js.percent_done;
    end if;
    
    -- If any work-in-progress (WIP) or error messages were received for the job, display them.
    if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0)
    then
      le := sts.wip;
    else
      if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0)
      then
        le := sts.error;
      else
        le := null;
      end if;
    end if;
    if le is not null
    then
      ind := le.FIRST;
      while ind is not null loop
        dbms_output.put_line(le(ind).LogText);
        ind := le.NEXT(ind);
      end loop;
    end if;
      end loop;
    
      -- Indicate that the job finished and detach from it.
      dbms_output.put_line('Job has completed');
      dbms_output.put_line('Final job state = ' || job_state);
      dbms_datapump.detach(h1);
    END;

タスク4: Oracle Data Pump (ImpDP)を使用したターゲット・データベースのインスタンス化

Oracle Data Pump (ImpDP)を使用して、ソース・データベースからエクスポートしたSRC_OCIGGLL.dmpからターゲット・データベースにデータをインポートします。

  1. Oracle Object Storeにアクセスするための資格証明をターゲット・データベースに作成します(前述の項と同じ情報を使用します)。
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL( 
        credential_name => 'ADB_OBJECTSTORE',
        username => '<user-name>',
        password => '<token>'
      );
    END;
  2. ターゲット・データベースで次のスクリプトを実行して、SRC_OCIGGLL.dmpからデータをインポートします。オブジェクト・ストアURIの<region><namespace>および<bucket-name>を適宜置き換えてください:
    DECLARE
    ind NUMBER;  -- Loop index
    h1 NUMBER;  -- Data Pump job handle
    percent_done NUMBER;  -- Percentage of job complete
    job_state VARCHAR2(30);  -- To keep track of job state
    le ku$_LogEntry;  -- For WIP and error messages
    js ku$_JobStatus;  -- The job status from get_status
    jd ku$_JobDesc;  -- The job description from get_status
    sts ku$_Status;  -- The status object returned by get_status
    BEGIN
    
    -- Create a (user-named) Data Pump job to do a "full" import (everything
    -- in the dump file without filtering).
    h1 := DBMS_DATAPUMP.OPEN('IMPORT','FULL',NULL,'SRCMIRROR_OCIGGLL_IMPORT');
    
    -- Specify the single dump file for the job (using the handle just returned)
    -- and directory object, which must already be defined and accessible
    -- to the user running this procedure. This is the dump file created by
    -- the export operation in the first example.
    
    DBMS_DATAPUMP.ADD_FILE(h1,'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket-name>/o/SRC_OCIGGLL.dmp','ADB_OBJECTSTORE',null,DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE);
    
    
    -- A metadata remap will map all schema objects from SRC_OCIGGLL to SRCMIRROR_OCIGGLL.
    DBMS_DATAPUMP.METADATA_REMAP(h1,'REMAP_SCHEMA','SRC_OCIGGLL','SRCMIRROR_OCIGGLL');
    
    -- If a table already exists in the destination schema, skip it (leave
    -- the preexisting table alone). This is the default, but it does not hurt
    -- to specify it explicitly.
    DBMS_DATAPUMP.SET_PARAMETER(h1,'TABLE_EXISTS_ACTION','SKIP');
    
    -- Start the job. An exception is returned if something is not set up properly.
    DBMS_DATAPUMP.START_JOB(h1);
    
    -- The import job should now be running. In the following loop, the job is
    -- monitored until it completes. In the meantime, progress information is
    -- displayed. Note: this is identical to the export example.
    percent_done := 0;
    job_state := 'UNDEFINED';
    while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop
      dbms_datapump.get_status(h1,
        dbms_datapump.ku$_status_job_error +
        dbms_datapump.ku$_status_job_status +
        dbms_datapump.ku$_status_wip,-1,job_state,sts);
        js := sts.job_status;
    
      -- If the percentage done changed, display the new value.
      if js.percent_done != percent_done
      then
        dbms_output.put_line('*** Job percent done = ' ||
        to_char(js.percent_done));
        percent_done := js.percent_done;
      end if;
    
      -- If any work-in-progress (WIP) or Error messages were received for the job, display them.
      if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0)
      then
        le := sts.wip;
      else
        if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0)
        then
          le := sts.error;
        else
          le := null;
        end if;
      end if;
      if le is not null
      then
        ind := le.FIRST;
        while ind is not null loop
          dbms_output.put_line(le(ind).LogText);
          ind := le.NEXT(ind);
        end loop;
      end if;
    end loop;
    
    -- Indicate that the job finished and gracefully detach from it.
    dbms_output.put_line('Job has completed');
    dbms_output.put_line('Final job state = ' || job_state);
    dbms_datapump.detach(h1);
    END;

タスク5: 非統合Replicatの追加および実行

  1. Replicatを追加して実行します
    「パラメータ・ファイル」画面で、MAP *.*, TARGET *.*;を次のスクリプトに置き換えます:
    -- Capture DDL operations for listed schema tables
    --
    ddl include mapped
    --
    -- Add step-by-step history of ddl operations captured
    -- to the report file. Very useful when troubleshooting.
    --
    ddloptions report
    --
    -- Write capture stats per table to the report file daily.
    --
    report at 00:01
    --
    -- Rollover the report file weekly. Useful when PR runs
    -- without being stopped/started for long periods of time to
    -- keep the report files from becoming too large.
    --
    reportrollover at 00:01 on Sunday
    --
    -- Report total operations captured, and operations per second
    -- every 10 minutes.
    --
    reportcount every 10 minutes, rate
    --
    -- Table map list for apply
    --
    DBOPTIONS ENABLE_INSTANTIATION_FILTERING;
    MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;

    ノート:

    DBOPTIONS ENABLE_INSTATIATION_FILTERINGによって、Oracle Data Pumpを使用してインポートした表に対するCSNフィルタリングが可能になります。詳細は、DBOPTIONSのリファレンスを参照してください。
  2. ソース・データベースへの挿入を実行します。
    1. Oracle Cloudコンソールに戻り、ナビゲーション・メニューを使用して、Oracle DatabaseAutonomous Transaction ProcessingSourceATPの順に移動します。
    2. 「ソースATP詳細」ページで、「データベース・アクション」をクリックし、「SQL」をクリックします。
    3. 次の挿入を入力し、「スクリプトの実行」をクリックします。
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    4. OCI GoldenGateデプロイメント・コンソールで、「抽出名(UAEXT)」をクリックし、「統計」をクリックします。SRC_OCIGGLL.SRC_CITYが10個の挿入とともにリストされていることを確認します。
    5. 「概要」画面に戻り、Replicat名(REP)をクリックしてから、「統計」をクリックします。SRCMIRROR_OCIGGLL.SRC_CITYが10個の挿入とともにリストされていることを確認します。

タスク6: データ変換リソースの作成

  1. データ変換デプロイメントの作成
  2. 汎用接続の作成

    ノート:

    たとえば、米国東部(アッシュバーン)のAutonomous Databasesでは、次の値を使用します:
    • 「ホスト」に、adb.us-ashburn-1.oraclecloud.com:1522と入力します。
    • 「サブネット」で、ドロップダウンからデプロイメントと同じサブネットを選択します。
  3. 汎用接続をデプロイメントに割り当てます
  4. Autonomous Data Warehouse (ADW)インスタンスのSRCMIRROR_OCIGGLLにTRG_CUSTOMERを作成します:
    1. Oracle Cloudコンソールで、ナビゲーション・メニューを開き、「Oracle Database」に移動して、「Autonomous Data Warehouse」を選択します。
    2. 「Autonomous Databases」ページで、ADWインスタンスをクリックします。
    3. ADW Autonomous Databaseの詳細ページで、「データベース・アクション」をクリックし、ドロップダウンから「SQL」を選択します。「データベース・アクション」メニューのロードに時間がかかりすぎる場合は、「データベース・アクション」を直接クリックし、「データベース・アクション」ページから「SQL」を選択できます。
    4. 次のものをワークシートに入力し、「文の実行」をクリックします。
      create table SRCMIRROR_OCIGGLL.TRG_CUSTOMER (
         CUST_ID              NUMBER(10,0)     not null,
         DEAR                 VARCHAR2(4 BYTE),
         CUST_NAME            VARCHAR2(50 BYTE),
         ADDRESS              VARCHAR2(100 BYTE),
         CITY_ID              NUMBER(10,0),
         PHONE                VARCHAR2(50 BYTE),
         AGE                  NUMBER(3,0),
         AGE_RANGE            VARCHAR2(50 BYTE),
         SALES_PERS           VARCHAR2(50 BYTE),
         CRE_DATE             DATE,
         UPD_DATE             DATE,
         constraint PK_TRG_CUSTOMER primary key (CUST_ID)
      );
  5. データ変換デプロイメント・コンソールを起動します。
    1. 「デプロイメント」ページに戻り、タスク6で作成したデプロイメントを選択します。
    2. デプロイメントの詳細ページで、「コンソールの起動」をクリックします。
    3. データ変換デプロイメント・コンソールにログインします。
  6. ADW接続の作成:
    1. ナビゲーション・メニューを開き、「接続」をクリックして、「接続の作成」をクリックします。
    2. タイプの選択ページの「データベース」で、「Oracle」を選択し、「次へ」をクリックします。
    3. 「接続の詳細」ページで、次のようにフォーム・フィールドに入力し、「作成」をクリックします。
      1. 「名前」に、ADW_IADと入力します。
      2. 「資格証明ファイルの使用」を選択します。
      3. Wallet Fileについて、(ADW) walletファイルをアップロードします。

        ノート:

        ADW walletファイルをダウンロードするには、ADWの詳細ページで「データベース接続」をクリックします。
      4. 「サービス」ドロップダウンから、「<name>_low」を選択します。
      5. 「ユーザー」に、ADMINと入力します。
      6. 「パスワード」に、ADWパスワードを入力します。
  7. データ・エンティティのインポート:
    1. ナビゲーション・メニューを開き、「データ・エンティティ」「データ・エンティティのインポート」の順にクリックします。
    2. 「接続」で、ドロップダウンからADW_IADを選択します。
    3. 「スキーマ」で、ドロップダウンからSRCMIRROR_OCIGGLLを選択します。
    4. 「スタート」をクリックします
  8. プロジェクトの作成:
    1. ナビゲーション・メニューを開き、「プロジェクト」をクリックします。
    2. 「プロジェクト」ページで、「プロジェクトの作成」をクリックします。
    3. 「プロジェクトの作成」ダイアログで、「名前」にdemo-pipelineと入力し、「作成」をクリックします。

タスク7: ワークフローの作成と実行

  1. データ・フローの作成:
    1. プロジェクトの名前を選択します。
    2. 「プロジェクト詳細」ページの「リソース」で、「データ・フロー」をクリックし、「データ・フローの作成」をクリックします。
    3. 「データ・フローの作成」ダイアログで、「名前」に「TRG_CUSTOMERのロード」と入力し、オプションで説明を入力します。「作成」をクリックします。デザイン・キャンバスが開きます。
    4. 「スキーマの追加」ダイアログで、次のようにフォーム・フィールドに入力し、「OK」をクリックします。
      1. 「接続」で、ドロップダウンからADW_IADを選択します。
      2. 「スキーマ」で、ドロップダウンからSRCMIRROR_OCIGGLLを選択します。
    5. 次のデータ・エンティティおよびコンポーネントをデザイン・キャンバスにドラッグします。
      1. 「データ・エンティティ」パネルで、SRCMIRROR_OCIGGLLスキーマを展開します。SRC_AGE_GROUPデータ・エンティティをデザイン・キャンバスにドラッグします。
      2. 「データ・エンティティ」パネルで、SRCMIRROR_OCIGGLLスキーマを展開します。SRC_SALES_PERSONデータ・エンティティをデザイン・キャンバスにドラッグします。
      3. 「データ変換」ツールバーから、「参照」コンポーネントをデザイン・キャンバスにドラッグします。
      4. 「データ変換」ツールバーから、「結合」コンポーネントをデザイン・キャンバスにドラッグします。
      5. 「データ・エンティティ」パネルのSRCMIRROR_OCIGGLLで、SRC_CUSTOMERデータ・エンティティを設計キャンバスにドラッグします。
    6. 次のデータ・エンティティを「参照」コンポーネントに接続します。
      1. SRC_AGE_GROUPコネクタ・アイコンをクリックし、アイコンを「参照」コンポーネントにドラッグします。
      2. SRC_CUSTOMERコネクタ・アイコンをクリックし、アイコンを「参照」コンポーネントにドラッグします。
    7. デザイン・キャンバスで、「参照」をクリックして「参照」パネルを開きます。「参照」パネルで、「属性」タブに切り替えてから、次の問合せを「参照条件」に貼り付けます。
      SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX
    8. 次のコンポーネントを結合コンポーネントに接続します。
      1. SRC_SALES_PERSONコネクタ・アイコンをクリックし、アイコンを「結合」コンポーネントにドラッグします。
      2. 「参照」コネクタ・アイコンをクリックし、アイコンを「結合」コンポーネントにドラッグします。
    9. デザイン・キャンバスで、「結合」をクリックして「結合」パネルを開きます。「結合」パネルで、「属性」タブに切り替えて、次の問合せを「結合条件」に貼り付けます。
      SRC_CUSTOMER.SALES_PERS_ID=SRC_SALES_PERSON.SALES_PERS_ID
    10. 次のデータ・エンティティおよびコンポーネントをデザイン・キャンバスにドラッグします。
      1. 「データ・エンティティ」パネルのSRCMIRROR_OCIGGLLで、TRG_CUSTOMERデータ・エンティティを設計キャンバスにドラッグします。
      2. 「結合」コネクタ・アイコンをクリックし、アイコンをTRG_CUSTOMERデータ・エンティティにドラッグします。
      3. デザイン・キャンバスで、TRG_CUSTOMERをクリックし、データ・エンティティを展開します。
    11. 「属性」タブで、CUST_IDのキーを有効にし、CRE_DATEの「更新」を無効にして、UPD_DATEの「挿入」を無効にします。
    12. 「列マッピング」タブで、名前が式と一致することを確認します。
      1. CUST_ID
        SRC_CUSTOMER.CUSTID
      2. DEAR
        CASE WHEN SRC_CUSTOMER.DEAR = 0 THEN 'Mr' WHEN SRC_CUSTOMER.DEAR = 1 THEN 'Mrs' ELSE 'Ms' END
      3. CUST_NAME
        SRC_CUSTOMER.FIRST_NAME || ' ' || UPPER(SRC_CUSTOMER.LAST_NAME)
      4. SALES_PERS
        SRC_SALES_PERSON.FIRST_NAME || ' ' ||UPPER(SRC_SALES_PERSON.LAST_NAME)
      5. CRE_DATE
        SYSDATE
      6. UPD_DATE
        SYSDATE
      7. 他のマッピングをそのまま使用します。
    13. 「オプション」タブの「モード」で、ドロップダウンから「増分更新」を選択します。
    14. TRG_CUSTOMERを縮小します。
    15. 「データ・フローの保存」をクリックします。
  2. ワークフローの作成:
    1. プロジェクトの名前を選択し、「ワークフロー」「ワークフローの作成」の順に選択します。
    2. 名前に、「Orchestrate Data Warehouse Load」と入力します。「作成」をクリックします。
    3. デザイン・キャンバスで「SQL」アイコンをドラッグします。
    4. エディタでSQLステップをダブルクリックし、ステップ・プロパティのページを開きます。
    5. 「一般」タブで、名前に「データ・クレンジング」と入力します。
    6. 「属性」タブを選択し、「接続」でドロップダウンからADW_IADを選択します。
    7. SQLの場合は、次の問合せをコピーします。
      delete from SRCMIRROR_OCIGGLL.TRG_CUSTOMER where CITY_ID > 110
    8. 「SQL」を縮小します。
    9. 「データ・フロー」で、TRG_CUSTOMERデータ・フローを設計キャンバスにドラッグします。
    10. 「データ・クレンジング」SQLワークフロー行をクリックし、OK (緑色の矢印)アイコンをTRG_CUSTOMERデータ・フローにドラッグします。
    11. 「ワークフローの保存」をクリックし、「ワークフローの開始」をクリックします。
  3. ジョブの作成と管理