Automatiser les fonctionnalités du Manager - 7.3

Guide d'utilisation de Talend Change Data Capture

Version
7.3
Language
Français
Product
Talend Change Data Capture
Module
Talend Change Data Capture
Content
Création et développement > Systèmes tiers > Composants Database (Intégration) > Change Data Capture
Gouvernance de données > Systèmes tiers > Composants Database (Intégration) > Change Data Capture
Qualité et préparation de données > Systèmes tiers > Composants Database (Intégration) > Change Data Capture
Last publication date
2023-12-22

Toutes les actions généralement effectuées dans l'interface du Manager (jusqu'à la distribution d'un modèle), peuvent être automatisées dans un fichier de script. Toutes les sources et toutes les cibles supportées par le Manager sont également supportées dans le fichier de script.

Pourquoi et quand exécuter cette tâche

Les actions que vous pouvez automatiser sont les suivantes :

  • démarrage et arrêt de la journalisation de la base de données,
  • création et suppression d'un environnement,
  • création et suppression d'un modèle,
  • ajout et suppression de tables,
  • création et suppression d'une cible,
  • démarrage, arrêt et arrêt forcé de la distribution d'un modèle,
  • reprise en chargement sur la distribution.

Procédure

  1. Pour créer le fichier de script, ouvrez un fichier .txt.
  2. Alimentez-le en fonction des commandes suivantes et de leur syntaxe :
    Remarque : Vous pouvez ajouter autant de commandes que nécessaire dans un même fichier de script (par exemple, vous pouvez vous connecter à plusieurs bases de données sources et créer plusieurs distributions). Vous pouvez également créer un fichier de script pour chaque type de source. Cela dépend de vos besoins.
    Command Description Détails et syntaxe
    : comment line  
    :this is a comment line
    ou
    : this is a comment line
    connect source Permet de se connecter à la base de données source L'entrée Type fait référence à l'une des bases de données supportées en source (AS400, MS SQL Server, Oracle, OpenEdge, PostgreSQL, MySQL, MariaDB).
    Trois commandes différentes sont utilisées :
    • Pour une source AS400 IBMi :
      connect IpAddress/AS400/
    • Pour des sources MS SQL Server et Oracle :
      connect IpAddress/Type/Instance
    • Pour des sources MariaDB, MySQL, PostgreSQL et OpenEdge :
      connect IpAddress/Type/DB_Name
    start journalization  
    start-journalisation
    Database = <database_name>
    StoragePath = <storage_path>
    end-journalisation
    storage_path est le dossier situé sur la même machine que le moteur, utilisé pour le stockage des fichiers .JRN.
    select-env Permet de sélectionner un environnement

    Utilisez cette commande uniquement si vous souhaitez utiliser un environnement déjà créé dans le Manager.

    select-env envid
    create env Permet de créer et de sélectionner un environnement

    La valeur par défaut est utilisée si aucun paramètre n'est spécifié
    create-env envid
    	EnvType	:=	2
    				:0 = Production	'default
    				:1 = Test
    				:2 = Training
    				:3 = Model
    				:4 = Deployment
    	Description    :=	SFEnvirt Training 01
    	Hold	    :=	0
    				:0 = False	     :default
    				:1 = True
    	SrcId	    :=	S01
    	Tempo	    :=	1
    	Retry	    :=	5
    end-create
    create metadata Permet de créer des métadonnées pour cet environnement Principalement pour les variables JSON utilisées pour les sources de type Streaming (Kafka, Kinesis, Snowflake). Le script JSON est ensuite inclus dans la commande create model.
    select-env envid
    create-metadata
    	#variable1#	:=	metavalue1
    	#variable2#	:=	metavalue2
    	#variable3#       :=      metavalue3
    end-create
    select model Permet de sélectionner un modèle
    select-env envid
    select-model grpid
    create model Permet de créer et de sélectionner un modèle

    La valeur par défaut est utilisée si aucun paramètre n'est spécifié
    Source AS400
    select-env envid
    create-model grpid
    
    GrpType         :=   0  
    			:0 = Journal
    			:1 = Extract
    Description     :=   SFo-Replication a l'identique
    iASPgroup       :=   *NONE
    LibJrn          :=   DD_TRAING
    JrnName         :=   JOURNAL
    ManualDistrib   :=   0  
    			:0 = False		:default
    			:1 = True
    AllMembers      :=   0  
    			:0 = False		:default
    			:1 = True
    AccesMode       :=   3  
    			:0 = Auto		 :default
    			:1 = RRN
    			:2 = Index Key
    			:3 = SQL
    			:4 = Backup
    OrpheanMgt      :=   0  
    			:0 = False		:default
    			:1 = True
    ContError       :=   0  
    			:0 = False		:default
    			:1 = True
    Repair          :=   1  
    			:0 = No
    			:1 = Yes		  :default
    			:2 = Skip
    			:3 = Yes with trace
    DDLchange       :=   1  
    			:0 = No		
    			:1 = Ignore
    			:2 = Yes		
    			:3 = Yes Alter no Drop	:default
    			:4 = Yes Alter with Drop
    Truncate        :=   1  
    			:0 = No
    			:1 = Yes		  :default
    			:2 = Ignore
    RGZPFM          :=   2  
    			:0 = No
    			:1 = Yes
    			:2 = Ignore		:default
    ADDPFM          :=   2  
    			:0 = No
    			:1 = Yes
    			:2 = Ignore		:default
    RMVMBR          :=   2  
    			:0 = No
    			:1 = Yes
    			:2 = Ignore		:default
    DLTF            :=   0  
    			:0 = No		    :default
    			:1 = Yes
    NullProcess     :=   0  
    			:0 = No		    :default
    			:1 = Yes
    DateAschar      :=   0
    			:0 = No		    :default
    			:1 = Yes
    MetaScript      :=   Begin
    script
    MetaScript      :=   End
    
    end-create
    Autres sources
    create-model grpid
    GrpType         :=   0  
    			:0 = Journal
    			:1 = Extract
    Description     :=   SFo-Replication a l'identique
    DataBase        :=   DD_TRAINING
    ManualDistrib   :=   0  
    			:0 = False		:default
    			:1 = True
    AllMembers      :=   0  
    			:0 = False		:default
    			:1 = True
    AccesMode       :=   3  
    			:0 = Auto		 :default
    			:1 = RRN
    			:2 = Index Key
    			:3 = SQL
    			:4 = Backup
    OrpheanMgt      :=   0  
    			:0 = False		:default
    			:1 = True
    ContError       :=   0  
    			:0 = False		:default
    			:1 = True
    Repair          :=   1  
    			:0 = No
    			:1 = Yes		  :default
    			:2 = Skip
    			:3 = Yes with trace
    DDLchange       :=   1  
    			:0 = No		
    			:1 = Ignore
    			:2 = Yes		
    			:3 = Yes Alter no Drop	:default
    			:4 = Yes Alter with Drop
    Truncate        :=   1  
    			:0 = No
    			:1 = Yes		   :default
    			:2 = Ignore
    NullProcess     :=   0  
    			:0 = No		    :default
    			:1 = Yes
    DateAschar      :=   0
    			:0 = No		    :default
    			:1 = Yes
    MetaScript      :=   Begin
    script
    MetaScript      :=   End
    end-create
    select-table Permet de sélectionner une table
    select-env envid
    select-model grpid
    select-table tableid
    add-table

    Permet d'ajouter une table au modèle sélectionné

    L'Id est l'identifiant unique (numérique compris entre 1 et 9999999999) de la table dans ce modèle.

    Grâce à cet Id, une table peut être ajoutée plusieurs fois avec différents identifiants.

    Source AS400

    select-env envid
    select-model grpid
    add-table Library FileName [TargetTableName] [Id:nn]
    Autres sources
    select-env envid
    select-model grpid
    add-table TableName [TargetTableName][Id:nn]
    select target  
    select-env envid
    select-target tgtid
    create target Permet de créer et de sélectionner une cible
    select-env envid
    create-target tgtid
    Description	  :=   My DD machine
    NewSourceId	  :=   
    				: blank is default
    TargetType	   :=   1
    				: 0 = IBM I 
    				: 1 = Windows		:default	
    	Hold	   :=  0
    				:0 = False		   :default
    				:1 = True
    	TargetName    :=  MyVM
    	TargetAdress  :=  192.168.0.0
    end-create
    distribute model Permet de distribuer le modèle dans la cible
    select-env envid
    select-model grpid
    select-target tgtid
    distribute
    	Hold            :=	0
    				:0 = False		:default
    				:1 = True
    	scheduled       :=	0
    				:0 = False		:default
    				:1 = True
    	TgtBDType       :=	0
    				:0 =	IBMi
    				:1 =	SQL Server
    '2 = Oracle ODBC
    				:5 = ODBC
    				:8 = PostgreSQL 
    				:9 = Text
    				:A = MySQL
    				:B = DB2 LUW
    				:C = XML
    				:D = SyBase
    				:E = Oracle OCI
    				:F = SQL Server Bi-Directional
    				:G = OpenEdge
    				:H = SQLite
    				:J = MySQL Latin
    				:K = MySQL Native
    				:L = PostgreSQL Native
    				:M = SQLite NAtive
    				:N = GreenPlum
    				:O = Netezza
    				:P = Vectowise MicroBatch
    				:Q = VectorWise
    				:R = NuoDB
    				:S = Altibase
    				:T = Iseries Access
    				:V = Kafka
    				:k = Kinesis	
    				:W = Hana
    				:X = Teradata	
    				:Y = SalesForce
    				:Z = MariaDB	
    				:b = MariaDB Latin	
    				:c = MariaDB Native
    				:d = Azure SQL	
    				:e = Azure Event Hub
    				:g = Azure Service Bus
    				:i = SnowFlake
    	UseLibName      :=	0
    				:0 = FileName		:default
    				:1 = BDName_FileName
    				:2 = BDName..FileName or BD.FileName
    	TargetDB        :=	MyDatabase
    	LoadByFlatFile  :=   0
    				:0 = False		:default
    				:1 = True
    	PathForFlatFile := 
    #if Kinesis or kafka or servicebus or eventhub Target
    	Format           :=  J			:default
    'J = Json
    'A = Avro
    'F = Fixed
    'D = Delimited
    	FieldNameOn1st   :=  0
    				:0 = False		:default
    				:1 = True
           FieldSep         :=  ;
    				:tab = tabulation
    				:; = semicolon		:default
    				:, = colon
    				: … 1 character
     	TextSep         :=  "
    				:1 character
    	LineSep          :=  2
    				:1 = <CR>
    				:2 = <CR><LF>		'default
    				:3 = <LF>
    				:4 = ;
    				:5 = ,
    				:6 = tabulation
    				:7 = nothing
    	DateFormat       :=  2
    '0 = DMY
    '1 = MDY
    '2 = YMD			'default
    '3 = YDM
    '4 = DYM
    '5 = MYD
    	YearIn4Digits    :=  1
    				:0 = False		
    				:1 = True		:default
    
    	DateDelimiter    :=  /			:default
    				1 character
    	TimeDelimiter    :=  :			:default
    				1 character
    	DecimalSep       :=  .			:default
    				1 character
    	kdsConnectString    :=  region=eu-west-3;
    				accesskey={0B733EDD1CF71};
    				secretkey={0B733EDD1CF71}
    #elseif SnowFlake Target
    	sfAccount         :=  AB65262.west-europe.azure
    	sfConnectString   :=  DSN=SnowFlakes;UID=gammadev;
    				PWD={0B733EDD1CF71};
    				CodePage=e297UTF8.cpg;
    	sfPathForTextFile :=  D:\DD_FILE\AS400\M3P
    	sfCommandFile     :=  LoadData.cmd %s %s 1
    	sfMaxRecord       :=  0
    	sfMaxTime         :=  5
     #else
    	ConnectString     :=   DSN=…
    #endif
    #endif
    	Planning          :=   000..000
    				sequence of 168 digits (0 or 1) 
    				for the 168 hours of a week with 
    				0 = inactive, 1=active.
    The first digit represents Monday from 0 AM to 1 AM
    	RecoveryType      :=   
    				:Blank is nothing
    				:C = Load
    				:P = Sequence
    	CaseSensitive     :=    0 
    				:0 = False		:default
    				:1 = True
    	CacheSize         :=    0
    				:0 = 32Ko		:default
    				:1 = 128K0
    				:2 = 256Ko = 128*2
    				:3 = 512Ko = 256*2
    				..
    				:7 = 8Mo
    #if AS400 source
    	RecoveryLib        :=
    #endif
    	RecoveryReceiver   :=
           Sequence           :=
    	end-distribute
    change-distributed-table Permet de modifier les propriétés de la table distribuée

    D'abord, utilisez les commandes de sélection :

    select-model grpid
    select-target tgtid
    Ensuite, modifiez les propriétés de la table distribuée :
    change-distributed-table ficid TargetDBName TargetTableName

    Si vous ne souhaitez modifier que le nom de la table cible, saisissez :

    change-distributed-table ficid default TargetTableName
    add query to table Permet d'ajouter la requête à la table sélectionnée
    Remarque : Uniquement pour les sources NT.
    D'abord, utilisez les commandes de sélection :
    select-env envid
    select-model grpid
    select-table tableid

    Ensuite, ajoutez la requête à la table :

    begin-script-where
        :Some query after where clause
    	SALESNUM = '1' AND PROMOKEY > 10
    end-script-where
    add transformation to the table Permet d'ajouter la transformation à la table sélectionnée D'abord, utilisez les commandes de sélection :
    select-env envid
    select-model grpid
    select-table tableid
    Ensuite, ajoutez la transformation à la table :
    begin-transformation
         DCL O.SALESNUM Char 20 NULL Rtrim KEYORDER 1
         DCL O.PROMOKEY Numeric 10,0 NULL Same
         
         if I.SALESNUM = '1' Then
              O.PROMOKEY = 1
              O.SALESNUM = I.SALESNUM
         Endif
         end-transformation
    Les lignes DCL sont des lignes par défaut. Elles s'affichent dans la liste si aucune autre déclaration n'est saisie.

    Si vous souhaitez ajouter des lignes DCL en plus de celles par défaut, vous pouvez les ajouter au bloc de transformation. Les lignes DCL par défaut sont automatiquement supprimées de la liste et seules les nouvelles sont prises en compte.
    Remarque : Entre begin-transformation et end-transformation, les commentaires sont indiqués par /* uniquement.
    stop distribution Permet d'arrêter la distribution du modèle
    select-env envid
    select-target tgtid
    stop-distribution grpid
    kill distribution Permet d'arrêter de manière forcée la distribution d'un modèle
    select-env envid
    select-target tgtid
    kill-distribution grpid
    delete distribution Permet de supprimer la distribution d'un modèle
    select-env envid
    select-target tgtid
    delete-distribution grpid
    delete target Permet de supprimer une cible
    select-env envid
    delete-target tgtid
    delete model Permet de supprimer un modèle
    select-env envid
    delete-model grpid
    delete table Permet de supprimer une table
    select-env envid
    select-model grpid
    delete-table tableid
    delete environment Permet de supprimer un environnement
    delete-env envid
    stop journalization Permet d'arrêter la journalisation d'une base de données
    dejournalise dbid
  3. Sauvegardez le fichier.
  4. Lancez une invite de commande et saisissez les commandes suivantes :
    >cd TalendChangeDataCaptureDestinationPath. Appuyez sur Entrée.
    DDmanager -cicd "ScriptFilePath". Appuyez sur Entrée.

Résultats

Les distributions sont créées telles qu'elles ont été déclarées dans le fichier de script.

Si vous souhaitez voir le résultat : démarrez le Manager et souscrivez à la source, puis connectez-vous à la source. Pour plus d'informations, consultez Gérer la souscription et la connexion aux sources. Pour commencer le processus de réplication, suivez les étapes de la section Opérer et superviser une réplication.

Pour voir les logs relatifs au lancement du script, ouvrez le fichier DDMGRAUTO.log, situé dans le référentiel DestinationPath (le même que pour le fichier .exe du Manager).

Pour planifier le lancement de toutes les réplications, vous pouvez configurer le Scheduler (consultez Démarrage automatique des réplications).