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
- Pour créer le fichier de script, ouvrez un fichier .txt.
-
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
ou:this is a comment line
: 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
etOracle
:connect IpAddress/Type/Instance
- Pour des sources
MariaDB
,MySQL
,PostgreSQL
etOpenEdge
:connect IpAddress/Type/DB_Name
start journalization
où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
Autres sourcesselect-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
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
Autres sourcesselect-env envid select-model grpid add-table Library FileName [TargetTableName] [Id:nn]
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
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
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.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
Remarque : Entrebegin-transformation
etend-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
- Pour une source
- Sauvegardez le fichier.
-
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
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).