Découverte d'OCI GoldenGate Data Transforms
Découvrez comment utiliser les déploiements OCI GoldenGate Data Replication et Data Transforms en même temps pour charger et transformer les données entre deux bases de données d'IA autonome.
Avant de commencer
Pour mener à bonne fin ce démarrage rapide, vous devez :
-
Base de données Autonomous AI source avec des données échantillon chargées et la journalisation supplémentaire activée.
Conseil :
Vous pouvez télécharger les données échantillon OCI GoldenGate, si vous avez besoin de données échantillon à utiliser.
-
Utilisez l'outil SQL Actions de base de données de la base de données Autonomous AI pour exécuter les deux scripts afin de créer le schéma utilisateur et les tables.
-
Utilisez l'outil SQL pour activer la journalisation supplémentaire.
Pour plus d'informations, suivez les étapes de l'atelier pratique 1, tâche 3 : Charger le schéma ATP.
-
-
Déverrouiller l'utilisateur GGADMIN sur l'instance de base de données Autonomous AI source
-
Sur la page Détails de la base de données Autonomous AI, sélectionnez Utilisateurs de base de données dans le menu Actions de base de données.
A savoir : Utilisez les informations d'identification d'administrateur de base de données Autonomous AI fournies lors de la création de l'instance pour vous connecter, si vous y êtes invité.
-
Localisez l'utilisateur GGADMIN, puis sélectionnez Edit dans le menu des points de suspension (trois points).
-
Dans le panneau Modifier l'utilisateur, entrez un mot de passe, confirmez-le, puis désélectionnez Compte verrouillé.
-
Sélectionnez Apply Changes (Appliquer les modifications).
-
Tâche 1 : configurer l'environnement
-
Créez une connexion OracleAutonomous AI Transaction Processing(ATP) source.
-
Utilisez l'outil SQL pour activer la journalisation supplémentaire :
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA -
Exécutez la requête suivante dans l'outil SQL pour vous assurer que
support_mode=FULLpour toutes les tables la base de données source :select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL';
Tâche 2 : créer l'extraction intégrée
L'extraction intégrée capture les modifications continues apportées à la base de données source.
-
Sur la page Détails du déploiement, sélectionnez Lancer la console.
-
Si nécessaire, entrez oggadmin pour le nom utilisateur et le mot de passe que vous avez utilisés lors de la création du déploiement, puis sélectionnez Connexion.
-
Ajouter des données de transaction et une table de points de reprise :
-
Ouvrez le menu de navigation, puis sélectionnez Connexions de base de données.
-
Sélectionnez Connexion à la base de données SourceDB.
-
Dans le menu de navigation, sélectionnez Trandata, puis Ajouter Trandata (icône Plus).
-
Dans Nom du schéma, entrez
SRC_OCIGGLL, puis sélectionnez Soumettre. -
Pour vérifier, entrez
SRC_OCIGGLLdans le champ Rechercher et sélectionnez Rechercher. -
Ouvrez le menu de navigation, puis sélectionnez Connexions de base de données.
-
Sélectionnez Connexion à la base de données TargetDB.
-
Dans le menu de navigation, sélectionnez Point de reprise, puis Ajouter un point de reprise (icône Plus).
-
Dans Table de point de reprise, entrez
"SRCMIRROR_OCIGGLL"."CHECKTABLE", puis sélectionnez Soumettre.
-
-
Remarque : Pour plus d'informations sur les paramètres que vous pouvez utiliser pour spécifier des tables source, voir Options de paramètre d'extraction supplémentaires.
Sur la page Paramètres d'extraction, ajoutez les lignes suivantes sous
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.*; -
Recherchez les éventuelles transactions à longue durée d'exécution. Exécutez le script suivant sur la base de données source :
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);Si la requête renvoie des lignes, vous devez localiser le numéro SCN de la transaction, puis valider ou annuler la transaction.
Tâche 3 : exporter des données à l'aide d'Oracle Data Pump (ExpDP)
Utilisez Oracle Data Pump (ExpDP) pour exporter des données de la base de données source vers la banque d'objets Oracle.
-
Créez un bucket de banque d'objets Oracle.
Notez le nom de l'espace de noms et du bucket en vue de leur utilisation avec les scripts d'export et d'import.
-
Créez un jeton d'authentification, puis copiez la chaîne de jeton et collez-la dans un éditeur de texte pour une utilisation ultérieure.
-
Créez des informations d'identification dans la base de données source, en remplaçant
<user-name>et<token>par le nom utilisateur de compte Oracle Cloud et par la chaîne de jeton que vous avez créée à l'étape précédente :BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'ADB_OBJECTSTORE', username => '<user-name>', password => '<token>' ); END; -
Exécutez le script suivant dans la base de données source pour créer le travail Exporter les données. Veillez à remplacer
<region>,<namespace>et<bucket-name>dans l'URI de banque d'objets de façon appropriée.SRC_OCIGGLL.dmpest un fichier qui sera créé lors de l'exécution du 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;
Tâche 4 : instancier la base de données cible à l'aide d'Oracle Data Pump (ImpDP)
Utilisez Oracle Data Pump (ImpDP) pour importer des données dans la base de données cible à partir du fichier SRC_OCIGGLL.dmp exporté depuis la base de données source.
-
Créez des informations d'identification dans la base de données cible pour accéder à la banque d'objets Oracle (à l'aide des mêmes informations que dans la section précédente).
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'ADB_OBJECTSTORE', username => '<user-name>', password => '<token>' ); END; -
Exécutez le script suivant dans la base de données cible pour importer des données à partir du fichier
SRC_OCIGGLL.dmp. Veillez à remplacer<region>,<namespace>et<bucket-name>dans l'URI de banque d'objets de façon appropriée :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;
Tâche 5 : ajouter et exécuter une réplication non intégrée
-
Ajoutez et exécutez une réplication.
Sur l'écran Fichier de paramètre, remplacez
MAP *.*, TARGET *.*;par le script suivant :-- 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.*;Remarque :
DBOPTIONS ENABLE_INSTANTIATION_FILTERINGactive le filtrage de numéros CSN sur les tables importées en utilisant Oracle Data Pump. Pour plus d'informations, reportez-vous à Référence DBOPTIONS. -
Effectuez des insertions dans la base de données source :
-
Revenez à la console Oracle Cloud et utilisez le menu de navigation pour revenir à Oracle AI Database, à Autonomous AI Transaction Processing, puis à SourceDB.
-
Sur la page Détails de la base de données source, sélectionnez Database actions, puis SQL.
-
Entrez les insertions suivantes, puis sélectionnez Exécuter le 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); -
Dans la console de déploiement OCI GoldenGate, sélectionnez le nom d'extraction (UAEXT), puis sélectionnez Statistiques. Vérifiez que SRC_OCIGGLL.SRC_CITY est répertorié avec 10 insertions.
-
Revenez à l'écran Overview, sélectionnez le nom de réplication (REP), puis sélectionnez Statistics. Vérifiez que SRCMIRROR_OCIGGLL.SRC_CITY est répertorié avec 10 insertions
-
Tâche 6 : créer les ressources Data Transforms
-
Créez une connexion générique.
Remarque : par exemple, pour les bases de données Autonomous AI dans l'est des Etats-Unis (Ashburn), utilisez les valeurs suivantes :
-
Pour Hôte, entrez
adb.us-ashburn-1.oraclecloud.com:1522. -
Pour Sous-réseau, sélectionnez le même sous-réseau que le déploiement dans la liste déroulante.
-
-
Créez TRG_CUSTOMER dans SRCMIRROR_OCIGGLL dans votre instance Autonomous AI Lakehouse (ADW) :
-
Dans la console Oracle Cloud, ouvrez le menu de navigation, accédez à Oracle AI Database, puis sélectionnez Autonomous AI Lakehouse.
-
Sur la page Bases de données autonomes, sélectionnez l'instance ADW.
-
Sur la page de détails de la base de données ADW Autonomous AI, sélectionnez Database actions, puis SQL dans la liste déroulante. Si le chargement du menu Actions de la base de données est trop long, vous pouvez sélectionner directement les actions de base de données, puis sélectionner SQL dans la page Actions de la base de données.
-
Entrez ce qui suit dans la fiche de travail, puis sélectionnez Exécuter l'instruction.
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) );
-
-
Lancez la console de déploiement Data Transforms :
-
Revenez à la page Déploiements, puis sélectionnez le déploiement que vous avez créé dans la tâche 6.
-
Sur la page de détails du déploiement, sélectionnez Lancer la console.
-
Connectez-vous à la console de déploiement Data Transforms.
-
-
Créer une connexion ADW :
-
Ouvrez le menu de navigation, sélectionnez Connexions, puis Créer une connexion.
-
Sur la page Sélectionner un type, sous Bases de données, sélectionnez Oracle, puis Suivant.
-
Sur la page Détails de la connexion, renseignez les champs de formulaire comme suit, puis sélectionnez Créer :
-
Dans le champ Nom, entrez ADW_IAD.
-
Sélectionnez Utiliser un fichier d'informations d'identification.
-
Pour le fichier de portefeuille, téléchargez le fichier de portefeuille (ADW).
Remarque : pour télécharger le fichier de portefeuille ADW, sélectionnez Connexion à la base de données sur la page de détails ADW.
-
Dans la liste déroulante Services, sélectionnez <name>_low.
-
Pour Utilisateur, entrez ADMIN.
-
Pour Mot de passe, entrez votre mot de passe ADW.
-
-
-
Importer une entité de données :
-
Ouvrez le menu de navigation, sélectionnez Entités de données, puis Importer une entité de données.
-
Pour Connexion, sélectionnez ADW_IAD dans la liste déroulante.
-
Pour Schéma, sélectionnez SRCMIRROR_OCIGGLL dans la liste déroulante.
-
Sélectionnez Démarrer.
-
-
Créer un projet :
-
Ouvrez le menu de navigation, puis sélectionnez Projets.
-
Sur la page Projets, sélectionnez Créer un projet
-
Dans la boîte de dialogue Créer un projet, entrez demo-pipeline dans le champ Nom, puis sélectionnez Créer.
-
Tâche 7 : créer et exécuter un workflow
-
Créer un flux de données:
Remarque : En savoir plus sur l'éditeur de flux de données.
-
Sélectionnez le nom de votre projet.
-
Sur la page Détails du projet, sous Ressources, sélectionnez Flux de données, puis Créer un flux de données.
-
Dans la boîte de dialogue Créer un flux de données, dans le champ Nom, entrez Charger TRG_CUSTOMER et éventuellement une description. Choisissez Créer. Le canevas de conception s'ouvre.
-
Dans la boîte de dialogue Ajouter un schéma, renseignez les champs de formulaire comme suit, puis sélectionnez OK :
-
Pour Connexion, sélectionnez ADW_IAD dans la liste déroulante.
-
Pour Schéma, sélectionnez SRCMIRROR_OCIGGLL dans la liste déroulante.
-
-
Faites glisser les entités de données et les composants suivants vers le canevas de conception :
-
Dans le panneau Entités de données, développez le schéma SRCMIRROR_OCIGGLL. Faites glisser l'entité de données SRC_AGE_GROUP vers le canevas de conception.
-
Dans le panneau Entités de données, développez le schéma SRCMIRROR_OCIGGLL. Faites glisser l'entité de données SRC_SALES_PERSON vers le canevas de conception.
-
Dans la barre d'outils Transformation de données, faites glisser le composant Recherche vers le canevas de conception.
-
Dans la barre d'outils Transformation de données, faites glisser le composant Rejoindre vers le canevas de conception.
-
Dans le panneau Entités de données, sous SRCMIRROR_OCIGGLL, faites glisser l'entité de données SRC_CUSTOMER vers le canevas de conception.
-
-
Connectez les entités de données suivantes au composant Recherche :
-
Sélectionnez l'icône du connecteur SRC_AGE_GROUP et faites-la glisser vers le composant Recherche.
-
Sélectionnez l'icône du connecteur SRC_CUSTOMER et faites-la glisser vers le composant Recherche.
-
-
Dans le canevas de conception, sélectionnez Recherche pour ouvrir le panneau de recherche. Dans le panneau de recherche, accédez à l'onglet Attributs, puis collez la requête suivante dans Condition de recherche :
SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX -
Connectez les composants suivants au composant Jointure :
-
Sélectionnez l'icône du connecteur SRC_SALES_PERSON et faites-la glisser vers le composant Jointure.
-
Sélectionnez l'icône de connecteur Recherche et faites-la glisser vers le composant Rejoindre.
-
-
Dans le canevas de conception, sélectionnez Rejoindre pour ouvrir le panneau Rejoindre. Dans le panneau Joindre, accédez à l'onglet Attributs, puis collez la requête suivante dans Condition de jointure :
SRC_CUSTOMER.SALES_PERS_ID=SRC_SALES_PERSON.SALES_PERS_ID -
Faites glisser l'entité de données et le composant suivants vers le canevas de conception :
-
Dans le panneau Entités de données, sous SRCMIRROR_OCIGGLL, faites glisser l'entité de données TRG_CUSTOMER vers le canevas de conception.
-
Sélectionnez l'icône Rejoindre le connecteur et faites-la glisser vers l'entité de données TRG_CUSTOMER.
-
Dans le canevas de conception, sélectionnez TRG_CUSTOMER et développez l'entité de données.
-
-
Dans l'onglet Attributs, activez Clé pour CUST_ID, désactivez Mise à jour pour CRE_DATE et désactivez Insertion pour UPD_DATE.
-
Dans l'onglet Mappage de colonnes, assurez-vous que le nom correspond à l'expression :
-
ID CLIENT
SRC_CUSTOMER.CUSTID -
ARRIÈRE
CASE WHEN SRC_CUSTOMER.DEAR = 0 THEN 'Mr' WHEN SRC_CUSTOMER.DEAR = 1 THEN 'Mrs' ELSE 'Ms' END -
NOM DU CLIENT
SRC_CUSTOMER.FIRST_NAME \|\| ' ' \|\| UPPER(SRC_CUSTOMER.LAST_NAME) -
SALES_PERS
SRC_SALES_PERSON.FIRST_NAME \|\| ' ' \|\|UPPER(SRC_SALES_PERSON.LAST_NAME) -
DATE_CRÉ
SYSDATE -
METTRE À JOUR_DATE
SYSDATE -
Utilisez d'autres mappings tels quels.
-
-
Dans l'onglet Options, sélectionnez Mise à jour incrémentielle dans la liste déroulante Mode.
-
Réduisez TRG_CUSTOMER.
-
Sélectionnez Enregistrer le flux de données.
-
-
Créer un workflow :
-
Sélectionnez le nom du projet, sélectionnez Workflows, puis Créer un workflow.
-
Pour le nom, entrez Orchestrer le chargement de l'entrepôt de données. Choisissez Créer.
-
Faites glisser l'icône SQL sur le canevas de conception.
-
Sélectionnez deux fois l'étape SQL dans l'éditeur pour ouvrir la page de propriétés de l'étape.
-
Dans l'onglet Général, pour le nom, entrez Nettoyage des données.
-
Sélectionnez l'onglet Attributs, pour Connexion, sélectionnez ADW_IAD dans la liste déroulante.
-
Pour SQL, copiez l'interrogation suivante :
delete from SRCMIRROR_OCIGGLL.TRG_CUSTOMER where CITY_ID > 110 -
Réduire la requête SQL.
-
Sous Flux de données, faites glisser le flux de données TRG_CUSTOMER vers le canevas de conception.
-
Sélectionnez la ligne de workflow SQL Nettoyage des données et faites glisser l'icône OK (flèche verte) vers le flux de données TRG_CUSTOMER.
-
Sélectionnez Enregistrer le workflow, puis Démarrer le workflow.
-