Création d'une configuration d'extraction de données ad hoc

Vous pouvez ajuster le processus d'extraction de données pour extraire des données de la base de données de sauvegarde de production en fonction de vos besoins ad hoc.

A propos de cette tâche

Si votre requête peut extraire des données volumineuses et s'il n'est pas possible d'affiner la requête ou si la pagination ne fonctionne pas, vous pouvez utiliser le service d'extraction de données de manière ad hoc pour extraire les données. Bien que cette opération effectue une extraction en aveugle des données de la table, elle n'a pas d'impact sur les performances du serveur d'applications et de la base de données.

Vous pouvez créer une configuration d'extraction de données ad hoc qui est identifiée par un TaskId pour les tables et les colonnes en fonction de vos besoins, définir une fréquence élevée de sorte qu'elle ne soit pas appelée automatiquement et définir le nombre de jours requis pour les données plus anciennes. Vous ne devez pas créer d'autres critères d'agent pour l'agent CoC Data Extract . Au lieu de cela, il sera exécuté par les mêmes critères d'agent, qui sont configurés pour les extractions de données standard. Les données extraites sont compressées et envoyées à l'emplacement distant configuré pour les extractions de données standard.

Il est préférable de déclencher les extractions ad hoc lorsque l'extraction normale n'est pas en cours d'exécution. Les calculs de mémoire sont effectués en considérant qu'un seul service d'extraction de données s'exécute sur le serveur ou la machine virtuelle Java et que si un segment de mémoire plus important n'est pas fourni, la tâche prend plus de temps. En outre, si des extractions régulières sont également en cours d'exécution, vous devez faire en sorte que votre application consommatrice ne récupère pas l'extraction si le fichier compressé ou les tâches destinées à l'extraction ad hoc.

Procédure

  1. Consultez l'exemple suivant pour créer une configuration ad hoc. Cette opération crée une configuration permettant d'extraire les colonnes spécifiées de YFS_Order_Line pour les 90 derniers jours. La fréquence est définie sur 2400 heures afin qu'elle ne soit pas déclenchée automatiquement pour les 100 prochains jours.
    <DataExtractConfig Action="ADD" 
    TaskId="yfs_order_line_adhoc_extract_1"
    TableName="YFS_ORDER_LINE"
    Columns="ORDER_LINE_KEY,ORDER_HEADER_KEY,PRIME_LINE_NO,ITEM_ID,UOM,ORDERED_QTY" 
    FrequencyInHours="2400" FirstRunExtractInDays="90"/>
    
  2. Exécutez la requête suivante à partir du client de requête de base de données pour identifier les exécutions d'extraction de données dans un passé récent. Cette requête renvoie les travaux d'extraction passés dont le dernier apparaît en haut de la liste. Voir la valeur de la colonne RUN_ATpour un enregistrement de tâche d'extraction standard en haut de la liste. Connaître l'intervalle de déclenchement des critères afin de pouvoir déduire l'heure approximative du prochain déclenchement du.
    SELECT CFG.TASK_ID, CFG.TABLE_NAME, JOB.RUN_AT, JOB.STATUS FROM YFS_DATA_EXTR_CFG CFG, 
    YFS_DATA_EXTR_JOB JOB WHERE CFG.DATA_EXTR_CFG_KEY=JOB.DATA_EXTR_CFG_KEY ORDER BY 
    JOB.RUN_AT DESC
  3. Plate-forme héritée Vous pouvez également voir la prochaine heure de déclenchement pour ce critère dans le tableau de bord du serveur (https://<ip>:<port>/sma/sma/nghome.do). Cliquez sur le serveur configuré pour l'extraction régulière de données et consultez l'heure de déclenchement de la prochaine planification. Si vous êtes très proche de l'intervalle de déclenchement, vous pouvez attendre que l'exécution planifiée sélectionne votre configuration et extrait les données. Sinon, vous pouvez déclencher les critères manuellement à partir du même écran.
    Chaque déclenchement de l'agent d'extraction de données passe par toute la configuration d'extraction et les déclenche en fonction de l'heure de la dernière extraction et de l'intervalle de fréquence. Pour la première extraction, elle est effectuée en fonction de l'attribut FirstRunExtractInDays donné dans la configuration. Par conséquent, pour les extractions ad hoc, il est conseillé de supprimer la configuration après l'extraction ou de conserver une fréquence élevée.
    Remarque : elle ne s'applique qu'aux anciens clients.
  4. Le code XML d'entrée permettant de supprimer la tâche de configuration d'extraction de données créée ci-dessus est le suivant:
    <DataExtractConfig Action="DELETE" TableName="YFS_ORDER_LINE" 
    TaskId="yfs_order_line_adhoc_extract_1"/>
  5. Si cette configuration concerne un extrait, vous pouvez la créer directement sur la base de données de production à l'aide d'un appel REST et la supprimer après l'utilisation. Toutefois, si vous constatez un besoin continu des mêmes tables et colonnes et que vous souhaitez uniquement les enregistrements nouveaux ou modifiés pour les exécutions suivantes, vous pouvez créer cette configuration en tant qu'extraction standard dans l'environnement de configuration maître et l'obtenir dans l'environnement de production à l'aide de CDT.
    Tableau 1. Exemples d'URL REST pour la création et la suppression de la configuration d'extraction
    Condition requise Modèle d' URL REST
    Créer une configuration d'extraction de données
    POST
    URL: https://<ip>:<port>/smcfs/restapi/executeFlow/CocDataExtractConfig
    Body: 
    { 
    "Action":"ADD",
    "TaskId":"yfs_order_line_adhoc_extract_1",
    "TableName":"YFS_ORDER_LINE",
    "Columns":"ORDER_LINE_KEY,ORDER_HEADER_KEY,PRIME_LINE_NO,ITEM_ID,UOM, ORDERED_QTY",
    "FrequencyInHours":"2400",
    "FirstRunExtractInDays":"90"
    }
    Headers:
    Content-Type:	application/json
    X-XAPI-Tag:	DataExtractConfig
    
    Supprimer la configuration d'extraction de données
    POST
    https://<ip>:<port>/smcfs/restapi/executeFlow/CocDataExtractConfig
    Body: 
    { 
    "Action":"DELETE",
    "TableName":"YFS_ORDER_LINE",
    "TaskId":"yfs_order_line_adhoc_extract_1"
    }
    Headers:
    Content-Type:	application/json
    X-XAPI-Tag:	DataExtractConfig
    
  6. Une fois les critères déclenchés, exécutez la requête suivante à partir du client de requête de base de données pour déterminer si l'extraction ad hoc a abouti et pour obtenir des informations sur le fichier extrait.
    SELECT CFG.TASK_ID, CFG.TABLE_NAME, JOB.STATUS, JOB.RUN_AT, JOB.STARTTS, JOB.ENDTS, 
    JOB.FILE_XFR_SIZE, JOB.AVG_ROW_LENGTH FROM YFS_DATA_EXTR_CFG CFG, YFS_DATA_EXTR_JOB 
    JOB WHERE CFG.DATA_EXTR_CFG_KEY=JOB.DATA_EXTR_CFG_KEY AND TASK_ID=<provide  task_id> 
    ORDER BY JOB.RUN_AT DESC
    L'extraction aboutit si la colonne STATUS affiche SUCCESS dans le résultat. Les données extraites sont compressées et envoyées à l'emplacement FTP distant configuré pour les extractions de données standard. Le modèle de fichier d'extraction est <TASK_ID>__<TABLE_NAME>__<STARTTS>_<ENDTS>_m_of_n.zip. Notez que TASK_ID, TABLE_NAME, STARTTS et ENDTS du résultat de la requête identifient le fichier extrait. Voici, par exemple, un exemple de résultat d'exécution :
    TASK_ID TABLE_NAME STATUT RUN_AT DÉPART ENDTS
    yfs_inbox_adhoc_extract_3 YFS_INBOX SUCCÈS 2017-11-16 05:41:31.0 2017-08-08 05:41:31.0 2017-11-16 05:31:31.0
    Et le fichier d'extraction est nommé yfs_inbox_adhoc_extract_3__YFS_INBOX__20170808054131_20171116053131_1_of_1.zip