Informazioni sulle trasformazioni dei dati OCI GoldenGate

Informazioni su come utilizzare le distribuzioni OCI GoldenGate Data Replication e Data Transforms per caricare e convertire i dati tra due database AI autonomi.

Prima di iniziare

Per completare correttamente questo Quickstart è necessario:

Task 1: Impostare l'ambiente

  1. Creare una distribuzione di replica dati.

  2. Creare una connessione ATP ( OracleAutonomous AI Transaction Processing) di origine.

  3. Crea una connessione ALK (Autonomous AI Lakehouse) di destinazione.

  4. Assegnare una connessione alla distribuzione.

  5. Utilizzare lo strumento SQL per abilitare il log supplementare:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
  6. Eseguire la query seguente nello strumento SQL per assicurarsi che support_mode=FULL per tutte le tabelle del database di origine:

    select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL';

Task 2: Creazione dell'estrazione integrata

Un'estrazione integrata acquisisce le modifiche in corso al database di origine.

  1. Nella pagina Dettagli distribuzione selezionare Avvia console.

  2. Se necessario, immettere oggadmin per il nome utente e la password utilizzati durante la creazione della distribuzione, quindi selezionare Connetti.

  3. Aggiungi dati transazione e tabella checkpoint:

    1. Aprire il menu di navigazione, quindi selezionare Connessioni DB.

    2. Selezionare Connetti a database SourceDB.

    3. Nel menu di navigazione selezionare Trandata, quindi selezionare Aggiungi Trandata (icona più).

    4. Per Nome schema, immettere SRC_OCIGGLL, quindi selezionare Sottometti.

    5. Per verificare, immettere SRC_OCIGGLL nel campo Cerca e selezionare Cerca.

    6. Aprire il menu di navigazione, quindi selezionare Connessioni DB.

    7. Selezionare Connetti a database TargetDB.

    8. Nel menu di navigazione selezionare Checkpoint, quindi selezionare Aggiungi checkpoint (icona più).

    9. Per Tabella checkpoint, immettere "SRCMIRROR_OCIGGLL"."CHECKTABLE", quindi selezionare Sottometti.

  4. Aggiungi un'estrazione.

    Nota: per ulteriori informazioni sui parametri che è possibile utilizzare per specificare le tabelle di origine, vedere opzioni aggiuntive dei parametri di estrazione.

    Nella pagina Estrai parametri, aggiungere le righe seguenti in 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. Controllare le transazioni a esecuzione prolungata. Eseguire lo script seguente nel database di origine:

    select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);

    Se la query restituisce righe, è necessario individuare l'SCN della transazione e quindi eseguire il commit o il rollback della transazione.

Task 3: Esportare i dati utilizzando Oracle Data Pump (ExpDP)

Utilizzare Oracle Data Pump (ExpDP) per esportare i dati dal database di origine in Oracle Object Store.

  1. Crea un bucket dell'area di memorizzazione degli oggetti Oracle.

    Prendere nota dello spazio di nomi e del nome del bucket da utilizzare con gli script di esportazione e importazione.

  2. Creare un token di autenticazione, quindi copiare e incollare la stringa di token in un editor di testo per utilizzarla in un secondo momento.

  3. Creare una credenziale nel database di origine, sostituendo <user-name> e <token> con il nome utente dell'account Oracle Cloud e la stringa di token creata nel passo precedente:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'ADB_OBJECTSTORE',
        username => '<user-name>',
        password => '<token>'
      );
    END;
  4. Eseguire lo script seguente nel database di origine per creare il job Esporta dati. Assicurarsi di sostituire <region>, <namespace> e <bucket-name> nell'URI dell'area di memorizzazione degli oggetti di conseguenza. SRC_OCIGGLL.dmp è un file che verrà creato durante l'esecuzione dello script.

    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;

Task 4: creare un'istanza del database di destinazione utilizzando Oracle Data Pump (ImpDP)

Utilizzare Oracle Data Pump (ImpDP) per importare i dati nel database di destinazione dal file SRC_OCIGGLL.dmp esportato dal database di origine.

  1. Creare una credenziale nel database di destinazione per accedere all'area di memorizzazione degli oggetti Oracle (utilizzando le stesse informazioni nella sezione precedente).

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'ADB_OBJECTSTORE',
        username => '<user-name>',
        password => '<token>'
      );
    END;
  2. Eseguire lo script seguente nel database di destinazione per importare i dati da SRC_OCIGGLL.dmp. Assicurarsi di sostituire <region>, <namespace> e <bucket-name> nell'URI dell'area di memorizzazione degli oggetti di conseguenza:

    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;

Task 5: Aggiunta ed esecuzione di un Replicat non integrato

  1. Aggiungere ed eseguire Replicat.

    Nella schermata File dei parametri sostituire MAP *.*, TARGET *.*; con lo script seguente:

    -- 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.*;

    Nota: DBOPTIONS ENABLE_INSTANTIATION_FILTERING abilita il filtro CSN sulle tabelle importate utilizzando Oracle Data Pump. Per ulteriori informazioni, vedere Informazioni di riferimento su DBOPTIONS.

  2. Eseguire inserimenti nel database di origine:

    1. Tornare alla console di Oracle Cloud e utilizzare il menu di navigazione per tornare a Oracle AI Database, Autonomous AI Transaction Processing e quindi a SourceDB.

    2. Nella pagina Dettagli SourceDB, selezionare Azioni database, quindi SQL.

    3. Immettere gli inserimenti riportati di seguito, quindi selezionare Esegui script.

      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. Nella console di distribuzione OCI GoldenGate, selezionare il nome di estrazione (UAEXT), quindi selezionare Statistiche. Verificare che SRC_OCIGGLL.SRC_CITY sia elencato con 10 inserimenti.

    5. Tornare alla schermata Panoramica, selezionare Replicat name (REP), quindi selezionare Statistics. Verificare che SRCMIRROR_OCIGGLL.SRC_CITY sia elencato con 10 inserimenti

Task 6: Creare le risorse di trasformazione dei dati

  1. Creare una distribuzione di trasformazione dati.

  2. Creare una connessione generica.

    Nota: ad esempio, per i database AI autonomi nell'area orientale degli Stati Uniti (Ashburn) utilizzare i valori riportati di seguito.

    • Per Host, immettere adb.us-ashburn-1.oraclecloud.com:1522.

    • Per Subnet, selezionare la stessa subnet della distribuzione dall'elenco a discesa.

  3. Assegnare la connessione generica alla distribuzione.

  4. Creare TRG_CUSTOMER in SRCMIRROR_OCIGGLL nell'istanza ADW (Autonomous AI Lakehouse) dell'istanza AI:

    1. Nella console di Oracle Cloud, apri il menu di navigazione, vai a Oracle AI Database e seleziona Autonomous AI Lakehouse.

    2. Nella pagina Database autonomi, selezionare l'istanza ADW.

    3. Nella pagina dei dettagli di ADW Autonomous AI Database, selezionare Azioni del database, quindi selezionare SQL dall'elenco a discesa. Se il caricamento del menu Azioni del database richiede troppo tempo, è possibile selezionare le azioni del database direttamente, quindi selezionare SQL dalla pagina Azioni del database.

    4. Inserire quanto segue nel foglio di lavoro, quindi selezionare Esegui istruzione.

      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. Avviare la console di distribuzione Data Transforms:

    1. Tornare alla pagina Distribuzioni, quindi selezionare la distribuzione creata nel task 6.

    2. Nella pagina Dettagli distribuzione, selezionare Avvia console.

    3. Eseguire il login alla console di distribuzione di Data Transforms.

  6. Crea connessione ADW:

    1. Aprire il menu di navigazione, selezionare Connessioni, quindi selezionare Crea connessione.

    2. Nella pagina Seleziona tipo, in Database selezionare Oracle, quindi selezionare Avanti.

    3. Nella pagina Dettagli connessione, completare i campi del form come indicato di seguito, quindi selezionare Crea.

      1. In Nome, immettere ADW_IAD.

      2. Selezionare Usa file delle credenziali.

      3. Per File wallet, caricare il file wallet (ADW).

        Nota: per scaricare il file wallet ADW, selezionare Connessione al database nella pagina dei dettagli ADW.

      4. Nell'elenco a discesa Servizi selezionare <name>_low.

      5. Per Utente, immettere ADMIN.

      6. Per Password, immettere la password ADW.

  7. Importa entità dati:

    1. Aprire il menu di navigazione, selezionare Entità dati, quindi selezionare Importa entità dati.

    2. Per Connessione, selezionare ADW_IAD dall'elenco a discesa.

    3. Per Schema, selezionare SRCMIRROR_OCIGGLL dall'elenco a discesa.

    4. Selezionare Start.

  8. Crea progetto:

    1. Aprire il menu di navigazione e selezionare Projects.

    2. Nella pagina Progetti, selezionare Crea progetto.

    3. Nella finestra di dialogo Crea progetto, in Nome, immettere pipeline demo, quindi selezionare Crea.

Task 7: Creazione ed esecuzione di un flusso di lavoro

  1. Crea flusso di dati:

    Nota: ulteriori informazioni sull'editor dei flussi di dati.

    1. Selezionare il nome del progetto.

    2. Nella pagina Dettagli progetto, in Risorse, selezionare Flussi di dati, quindi Crea flusso di dati.

    3. Nella finestra di dialogo Crea flusso dati, per Nome, immettere Carica TRG_CUSTOMER e, facoltativamente, una descrizione. Selezionare Crea. Viene aperta la tela di progettazione.

    4. Nella finestra di dialogo Aggiungi schema, completare i campi del modulo come indicato di seguito, quindi selezionare OK.

      1. Per Connessione, selezionare ADW_IAD dall'elenco a discesa.

      2. Per Schema, selezionare SRCMIRROR_OCIGGLL dall'elenco a discesa.

    5. Trascinare le entità dati e i componenti riportati di seguito nello sfondo della progettazione.

      1. Nel pannello Entità dati espandere lo schema SRCMIRROR_OCIGGLL. Trascinare l'entità dati SRC_AGE_GROUP nello sfondo della progettazione.

      2. Nel pannello Entità dati espandere lo schema SRCMIRROR_OCIGGLL. Trascinare l'entità dati SRC_SALES_PERSON nello sfondo della progettazione.

      3. Nella barra degli strumenti Trasformazione dati trascinare il componente Ricerca nello sfondo della progettazione.

      4. Nella barra degli strumenti Trasformazione dati, trascinare il componente Join nello sfondo della progettazione.

      5. Nel pannello Entità dati, in SRCMIRROR_OCIGGLL, trascinare l'entità dati SRC_CUSTOMER nello sfondo della progettazione.

    6. Connettere le entità dati seguenti al componente Ricerca:

      1. Selezionare l'icona Connettore SRC_AGE_GROUP e trascinare l'icona nel componente Ricerca.

      2. Selezionare l'icona Connettore SRC_CUSTOMER e trascinare l'icona nel componente Ricerca.

    7. Nello sfondo della progettazione, selezionare Ricerca per aprire il pannello di ricerca. Nel pannello di ricerca passare alla scheda Attributi, quindi incollare la query seguente in Condizione di ricerca:

      SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX
    8. Connettere i seguenti componenti al componente Join:

      1. Selezionare l'icona Connettore SRC_SALES_PERSON e trascinare l'icona nel componente Join.

      2. Selezionare l'icona Connettore ricerca e trascinare l'icona nel componente Entra.

    9. Nello sfondo della progettazione, selezionare Partecipa per aprire il pannello Join. Nel pannello Join passare alla scheda Attributi, quindi incollare la query seguente in Condizione join.

      SRC_CUSTOMER.SALES_PERS_ID=SRC_SALES_PERSON.SALES_PERS_ID
    10. Trascinare l'entità dati e il componente riportati di seguito nello sfondo della progettazione.

      1. Nel pannello Entità dati, in SRCMIRROR_OCIGGLL, trascinare l'entità dati TRG_CUSTOMER nello sfondo della progettazione.

      2. Selezionare l'icona Connettore Entra e trascinare l'icona nell'entità dati TRG_CUSTOMER.

      3. Nello sfondo della progettazione, selezionare TRG_CUSTOMER ed espandere l'entità dati.

    11. Nella scheda Attributi, abilitare la chiave per CUST_ID, disabilitare Aggiorna per CRE_DATE e disabilitare Inserisci per UPD_DATE.

    12. Nella scheda Mapping colonne, assicurarsi che il nome corrisponda all'espressione:

      1. ID CLIENTE

        SRC_CUSTOMER.CUSTID
      2. GIORNO

        CASE WHEN SRC_CUSTOMER.DEAR = 0 THEN 'Mr' WHEN SRC_CUSTOMER.DEAR = 1 THEN 'Mrs' ELSE 'Ms' END
      3. NOME CLIENTE

        SRC_CUSTOMER.FIRST_NAME \|\| ' ' \|\| UPPER(SRC_CUSTOMER.LAST_NAME)
      4. VENDITE_PERS

        SRC_SALES_PERSON.FIRST_NAME \|\| ' ' \|\|UPPER(SRC_SALES_PERSON.LAST_NAME)
      5. DATA_CREAZIONE

        SYSDATE
      6. DATA_AGGIORNAMENTO

        SYSDATE
      7. Utilizzare altri mapping così com'è.

    13. Nella scheda Opzioni, in Modalità, selezionare Aggiornamento incrementale dall'elenco a discesa.

    14. Comprimi TRG_CUSTOMER.

    15. Selezionare Salva flusso di dati.

  2. Crea workflow:

    1. Selezionare il nome del progetto, selezionare Workflow e quindi Crea workflow.

    2. Per il nome, immettere Orchestra caricamento data warehouse. Selezionare Crea.

    3. Trascinare l'icona SQL nello sfondo della progettazione.

    4. Selezionare due volte il passo SQL nell'editor per aprire la pagina delle proprietà del passo.

    5. Nella scheda Generale, per nome, immettere Pulizia dati.

    6. Selezionare la scheda Attributi, per Connessione selezionare ADW_IAD dall'elenco a discesa.

    7. Per SQL, copiare la query seguente:

      delete from SRCMIRROR_OCIGGLL.TRG_CUSTOMER where CITY_ID > 110
    8. Comprimi SQL.

    9. In Flussi di dati trascinare il flusso di dati TRG_CUSTOMER nello sfondo della progettazione.

    10. Selezionare la riga del flusso di lavoro SQL Pulizia dati e trascinare l'icona OK (freccia verde) nel flusso di dati TRG_CUSTOMER.

    11. Selezionare Salva workflow, quindi selezionare Avvia workflow.

  3. Creazione e gestione di job.