Notre premier article sur la réplication de données dans l'interface graphique IRI Workbench pour NextForm (édition DB) ou Voracity a montré comment copier et transformer des données lors de leur déplacement d'Oracle vers deux cibles. Cet article montre comment synchroniser de manière incrémentielle une table de production et de sauvegarde dans des bases de données distinctes.
Dans ce cas, la base de données de production est Oracle, la base de données de sauvegarde est MySQL et la table est nommée SG_TRANSACTIONS dans les deux. Certaines lignes de transaction contiennent le numéro de compte, le type de transaction, la date de transaction et le montant de la transaction avec les noms de colonne ACCT_NUM, TRANSTYPE, TRANS_DATE et TRANS_AMOUNT.
Notez que vous pouvez également créer des tables en définissant et en exécutant des instructions dans des fichiers SQL dans IRI Workbench.
Exécuter l'assistant
Il existe des assistants dans IRI Workbench qui peuvent être utilisés pour créer un script de travail de migration qui copiera les lignes d'une table à une autre. Dans ce cas, nous répliquerons les données de la table ORACLE SG_TRANSACTIONS dans la table MySQL SG_TRANSACTIONS.
J'ai précédemment créé le projet Replication. Nous devrions cliquer sur ce dossier dans l'Explorateur de projet pour mettre en surbrillance le projet avant d'exécuter l'assistant. Cela garantit que l'assistant enregistrera mon script de travail dans ce dossier. Notre tâche de réplication sera créée via un assistant disponible dans le menu NextForm dans la barre d'outils.
Pour exécuter l'assistant, cliquez sur la flèche à côté de l'icône NextForm. Notez que dans l'article précédent, nous avons utilisé la Nouvelle tâche de reformatage l'assistant car l'une des cibles a été filtrée, masquée et reformatée. Étant donné qu'il s'agit d'une réplication directe, nous utiliserons la Nouvelle tâche de migration à source unique assistant à la place.
Sur le premier écran de l'assistant appelé Job Specification File , vérifiez que le Dossier champ a Réplication comme valeur (nom du projet). Dans le Nom du fichier champ, tapez le nom du script de travail que nous créons ; Je l'ai appelé SG_Transaction_Transfer. Sélectionnez le Créer un script bouton radio, puis sélectionnez Suivant pour accéder à la Migration à source unique fenêtre.
Sous Informations sur la source , sélectionnez Parcourir bouton à côté de la Source domaine. Sélectionnez maintenant ODBC bouton radio dans la Source de données fenêtre, puis cliquez sur Parcourir bouton.
Dans la sélection de table ODBC fenêtre, sélectionnez le DSN dans la liste déroulante ; puis sélectionnez le Nom de la table, et cliquez sur OK . ODBC est utilisé pour se connecter à nos tables de base de données source et cible lors du déplacement de données à l'aide de nos scripts de travail. Cliquez sur OK à nouveau pour revenir à la migration de source unique fenêtre.
Parcourir ou découvrir vos métadonnées sources
Tous les programmes IRI nécessitent des dispositions de métadonnées pour vos sources et cibles de données dans un format de fichier de définition de données (DDF) standard. Ces mises en page sont normalement créées une seule fois, stockées de manière centralisée et utilisées comme références pour vos mappages et modèles.
Si un fichier de métadonnées a déjà été créé, alors sous Informations sur la source , cliquez sur Parcourir bouton à côté des Métadonnées domaine. Dans les Métadonnées ouvertes fenêtre, sélectionnez le fichier de métadonnées dans les Éléments correspondants boîte qui définit les colonnes dans le SG_TRANSACTIONS table. Cliquez ensuite sur OK pour revenir à la migration à source unique fenêtre.
Si vous devez créer le fichier de métadonnées maintenant, sélectionnez Découvrir bouton. Cela vous amène à la Configuration Options la fenêtre. Vérifiez que le dossier est /nom de votre projet /métadonnées. Dans le Nom du fichier champ, saisissez le nom du fichier de métadonnées et cliquez sur Suivant . Dans Identification de la source de données fenêtre, vérifiez que les champs sont correctement remplis et cliquez sur Suivant pour accéder à la visionneuse et éditeur de données de terrain fenêtre.
La moitié supérieure de la fenêtre contient les noms de colonne et un échantillon des enregistrements de la table, le cas échéant. La moitié inférieure contient le champ Nom à utiliser dans le script de travail, les données équivalentes de l'IRI Type pour la base de données d'origine Type de source , et l'ordinal Position du champ (colonne). Cliquez sur Terminer .
Vous êtes maintenant de retour dans la migration à source unique fenêtre.
Définir la cible
Sous Informations sur la cible , sélectionnez Parcourir bouton à côté du champ pour Cible . Maintenant, dans la Cible de données fenêtre, sélectionnez ODBC bouton radio et cliquez sur Parcourir bouton à côté de ODBC domaine. Sélectionnez ensuite la sortie DSN et Nom de la table (Twister MYSQL et SG_Transactions) dans la Sélection Table ODBC la fenêtre. Assurez-vous de cocher la case pour Copier les métadonnées de la source . Cliquez sur OK, et cliquez sur OK à nouveau.
Toutes les informations nécessaires se trouvent désormais dans la section Migration à source unique la fenêtre. Cliquez sur Terminer .
Le script de langage de contrôle NextForm SG_Transaction_Transfer.ncl est créé et peut être visualisé dans l'éditeur de texte à code couleur et sensible à la syntaxe d'IRI Workbench.
Répliquer les nouveaux enregistrements
Ce script copiera toutes les lignes qui existent dans le SG_TRANSACTIONS table dans Oracle à la même table nommée dans MySQL. Mais, après la première exécution, nous voulons uniquement copier les nouvelles lignes dans la table de sauvegarde. Pour ce faire, nous devons ajouter une instruction /QUERY à la section d'entrée du script de tâche afin que seules les lignes les plus récentes soient traitées chaque fois que vous exécutez la tâche (ad hoc ou planifiée).
Pour modifier le script depuis l'éditeur IRI Workbench, cliquez avec le bouton droit dans le corps du script. Sélectionnez IRI , puis Modifier les sources . Dans les Sources de données boîte de dialogue, sélectionnez Modifier les options de la source .
Au bas des Options de source la fenêtre est une requête domaine. C'est là que nous ajoutons l'instruction de requête SQL qui ne sélectionnera que les lignes les plus récentes de la table Oracle. Nous supposerons qu'il s'agit d'un processus de fin de mois. L'instruction QUERY ci-dessous filtre les lignes pour un intervalle d'un mois, mais nous pouvons choisir n'importe quel intervalle. Au lieu d'utiliser des dates spécifiques dans le script, nous pourrions également utiliser des variables d'environnement pour spécifier l'intervalle.
select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > '2016-11-30' AND (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"
Cliquez maintenant sur OK , puis Terminer pour mettre à jour et enregistrer notre script de travail d'origine créé par l'assistant avec la nouvelle instruction /QUERY à l'intérieur :
La première fois que le script s'exécute, l'instruction /QUERY doit être commentée car nous voulons que tous les enregistrements soient copiés. Après cela, nous souhaitons exécuter l'instruction /QUERY pour répliquer les lignes d'un intervalle de dates qui n'a pas encore été copié dans la table de sauvegarde.
Ce travail peut être exécuté à partir de l'interface graphique ou de la ligne de commande où un exécutable NextForm DB edition, Voracity ou CoSort (sortcl) est sous licence.
Voici un exemple de lignes dans la table de production :
Et voici un exemple de lignes dans la table de sauvegarde avant l'exécution de la sauvegarde de fin de mois de décembre. Ainsi, les lignes de ce tableau ne vont actuellement que jusqu'à la fin novembre.
Après avoir exécuté notre tâche de réplication avec l'instruction /QUERY, seuls les enregistrements de décembre sont ajoutés à la table de sauvegarde. Notez qu'il y a un enregistrement de janvier dans la table de production, mais cet enregistrement n'a pas été copié dans la table de sauvegarde car la valeur de date pour cette ligne est en dehors de notre plage spécifiée.
Il est également possible d'ajouter des fonctions de masquage au niveau des colonnes à chaque cible, comme le montre le travail ci-dessous :
Voir cet exemple de réplication entre Oracle et MongoDB. Pour obtenir de l'aide sur la réplication des données de manière ponctuelle ou récurrente, envoyez un e-mail à [email protected].