Agent d'extraction de données
- L'agent peut être configuré pour être déclenché toutes les n minutes. Par défaut, l'agent est déclenché toutes les 10 minutes.
- L'agent peut également être configuré pour s'exécuter avec plusieurs unités d'exécution parallèles et plusieurs machines virtuelles Java. Par défaut, l'agent s'exécute avec 20 unités d'exécution.
Vous devez exécuter l'extraction de données à l'aide d'un seul critère d'agent supplémentaire de données sur un serveur d'agent dédié à un moment donné. Vous ne devez pas exécuter l'extraction de données avec plusieurs critères d'agent en même temps.
Pour plus d'informations sur la configuration de l'agent d'extraction de données pour qu'il fonctionne dans vos environnements, voir Configuration de l'extraction de données.
Processus d'extraction de données
- L'agent d'extraction de données provoque l'exécution de l'outil d'extraction et la lecture des configurations de table d'extraction à partir de la base de données de production. Le statut de chaque configuration de table valide est vérifié pour déterminer les tables qui doivent être extraites. Avant de commencer le processus d'extraction de données, si la base de données de sauvegarde est arrêtée ou configurée de manière incorrecte, l'outil d'extraction affiche un message d'avertissement.Remarques :
- Lorsque vous exécutez l'outil d'extraction pour la première fois et si le message d'avertissement s'affiche, vérifiez la configuration de votre base de données de sauvegarde et exécutez à nouveau l'outil d'extraction. Sinon, attendez que l'outil d'extraction des données établisse une connexion avec la base de données de sauvegarde.
- L'extraction des données est retardée lorsque la base de données de sauvegarde est en mode maintenance ou relecture.
Lors de la première exécution de l'agent, la requête inclut tous les enregistrements modifiés depuis les n derniers jours, où n est spécifié par l'attribut FirstRunExtractInDays qui est spécifié. Chaque fois qu'une requête est exécutée après, l'agent d'extraction considère l'heure de début comme l'heure de fin à partir de laquelle l'outil d'extraction a été exécuté pour la dernière fois pour la requête. L'heure de fin est calculée comme l'heure en cours-1 heure. L'intervalle d'une heure garantit que toutes les données extraites sont copiées dans la base de données de sauvegarde. L'intervalle d'une heure garantit également que toutes les données sont chargées dans la base de données de sauvegarde et que cet outil ne charge pas les segments de données récents.Remarque: par défaut, l'agent utilise l'intervalle de temps d'une heure, sauf s'il est remplacé par une valeur > 1 dans la propriétéyfs.yfs.coc.dataextract.fetch.maxhoursold. Vous pouvez également réduire la valeur de 1 heure à l'aide de la propriétéyfs.yfs.coc.dataextract.fetch.maxminsold. - L'outil d'extraction forme ensuite des requêtes en fonction de la configuration de la table.
- L'outil d'extraction se connecte à la base de données de production de sauvegarde et exécute la requête SQL sur la base de données pour extraire les données qui correspondent aux résultats de la requête. L'outil d'extraction de données extrait les données uniquement de la base de données de transaction de sauvegarde et non de la base de données de production principale. En extrayant les données de la base de données de sauvegarde, le processus d'extraction n'a pas d'impact sur les performances de la base de données principale.
L'outil d'extraction extrait les données entre les heures de début et de fin du processus d'extraction. Ces heures sont basées sur l'horodatage de la dernière modification pour le dernier enregistrement extrait à partir de l'heure d'exécution précédente du processus d'extraction.
Si l'extraction implique trop de données, les données peuvent être extraites dans des travaux distincts avec des intervalles de temps de début et de fin différents. Pour chaque configuration de table, l'outil d'extraction vérifie la quantité correspondante de données à extraire. L'agent crée ensuite le nombre nécessaire de travaux pour extraire les données.
- L'outil d'extraction écrit les résultats de la requête dans des fichiers de sortie au format CSV et inclut chaque fichier dans un fichier compressé (.zip). Chaque fichier de sortie porte le même nom que le fichier compressé correspondant pour le transfert des données. Les noms de fichier utilisent la convention de dénomination suivante:
- taskID__tableName__extractQueryStart_extractQueryEnd_jobNumber_of_totalNumberOfJobs.csv
- taskID
- ID de la tâche.
- tableName
- Nom de la table de base de données.
- extractQueryStart
- Horodatage du démarrage du processus d'extraction.
- extractQueryEnd
- Horodatage de la fin du processus d'extraction.
- jobNumber_of_totalNumberOfJobs
- Numéro de série du travail d'extraction de données par rapport au nombre total de travaux d'extraction de données.
- L'outil d'extraction envoie les fichiers compressés d'un flux à votre serveur de transfert de fichiers. Le fichier n'est pas écrit sur le système de fichiers dans un environnement IBM Sterling Order Management System. Lorsque le dernier travail est traité, l'agent vérifie si le transfert de fichiers est terminé pour tous les fichiers de tous les travaux pour chaque configuration de table exécutée. Si les transferts sont terminés, l'agent crée et transfère un fichier .DONE de zéro octet pour chaque configuration de table.
Format du fichier de sortie
La sortie de chaque travail d'extraction de données est formatée dans un fichier au format CSV.- Valeurs séparées par des virgules de chaque colonne à extraire dans le même ordre que celui défini dans le service de gestion des configurations
- Aucune ligne d'en-tête de noms de colonne
- Chaque valeur est placée entre guillemets. Les guillemets réels d'une valeur sont précédés d'un autre guillemet.
- Toute valeur incluant un caractère de nouvelle ligne, tel que -remove all, est supprimée.
Exemple de scénario d'exécution
Une extraction est configurée pour s'exécuter pour les conditions suivantes et les paramètres configurés (en supposant que la date actuelle est le 24/6/2016):- La fréquence de la tâche OrderExt et de la table de base de données YFS_ORDER_HEADER est de 24 heures. L'extraction des données a lieu tous les jours à environ 8h00 du matin.
- 24 000 enregistrements existent entre 7:00 du jour précédent et 7:00 du jour en cours.
- Le calcul de la mémoire interne limite le processus d'extraction à l'extraction de 7000 enregistrements à la fois.
Les fichiers de sortie générés ressemblent aux fichiers suivants. Chaque fichier inclut l'horodatage du processus d'extraction dans le nom de fichier.
| # | Nom de fichier | Lignes |
|---|---|---|
| 1 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_1_of_4.zip | 7000 |
| 2 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_2_of_4.zip | 7000 |
| 3 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_3_of_4.zip | 7000 |
| 4 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_4_of_4.zip | 3000 |
| 5 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000.DONE |
Si un ou plusieurs fichiers d'une table particulière ne peuvent pas être extraits ou transférés vers le service de stockage de fichiers configuré alors que d'autres fichiers sont extraits ou transférés avec succès, l'extraction de la table entière est traitée à nouveau. Pour les fichiers qui ont été extraits et transférés avec succès, les fichiers sont extraits et transférés à nouveau.
Par exemple, dans cet exemple de scénario d'extraction, si les travaux 1 et 4 ont échoué et que les travaux 2, 3 et 5 ont abouti, l'ensemble du processus s'exécute à nouveau. Lorsque le processus s'exécute à nouveau, les fichiers des cinq travaux sont extraits et transférés, avec les fichiers des travaux 2, 3 et 5 transférés à nouveau.
Nettoyage des travaux d'extraction de données
Si vous utilisez l'extraction de données de manière intensive, la table des travaux d'extraction de données est remplie rapidement. Les données de cette table sont utiles pour le triage des échecs d'extraction qui se sont produits dans le passé. Par conséquent, la suppression des données du passé immédiat n'est pas recommandée. Toutefois, la masse des données, qui est ancienne, doit être nettoyée de la table principale pour améliorer les performances des requêtes sur cette table.
Pour nettoyer la table avant de démarrer les travaux d'extraction de données, vous pouvez spécifier le nombre de jours pendant lesquels les enregistrements doivent être supprimés de la table en définissant la propriété yfs.yfs.coc.dataextract.jobpurge.leadDays .
Cette propriété n'est pas définie par défaut, c'est-à-dire que les enregistrements de travail ne sont pas nettoyés par défaut. La valeur de cette propriété doit être supérieure à 120 jours.
Si cette propriété est définie sur une valeur inférieure ou égale à 120, une erreur est générée. Les enregistrements de jours jusqu'à 120 jours ne peuvent pas être supprimés. Si le processus de nettoyage échoue pour une raison quelconque, le processus d'extraction des données se poursuit avec sa tâche principale d'extraction des données.