À propos de Openflow Connector for Veeva Vault¶
Note
Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.
Le Openflow Connector for Veeva Vault réplique les données d’une instance de Veeva Vault dans Snowflake à l’aide de l’API de Direct Data . Le connecteur télécharge les fichiers Direct Data, extrait les données CSV qu’ils contiennent et chargent ces données dans des tables Snowflake à l’aide de Snowpipe Streaming. Il prend en charge les instantanés complets, les mises à jour incrémentielles et l’ingestion facultative de journaux d’audit.
Cas d’utilisation¶
Le connecteur prend en charge les cas d’utilisation suivants :
Réplication complète des données : effectuez une seule fois l’instantané complet de toutes les données de Veeva Vault dans Snowflake à des fins de reporting, d’analyse et de conformité.
Synchronisation incrémentielle : après l’instantané initial, le connecteur recherche les fichiers de Direct Data de manière incrémentielle selon une planification configurable (par défaut : toutes les 15 minutes) pour maintenir les tables Snowflake à jour en fonction des modifications apportées à Veeva Vault.
Ingestion des journaux d’audit : vous pouvez également ingérer les archives de journaux d’audits de Veeva Vault en plus des archives de données, fournissant ainsi une trace d’audits complète dans Snowflake.
Migration et analyse : centralisez les données Veeva Vault dans Snowflake pour vos analyses multi-systèmes, la science des données et les rapports réglementaires.
Le cycle de vie de la réplication¶
Le cycle de réplication d’une table commence par un instantané complet des données, puis passe à la synchronisation incrémentielle.
** Phase instantanée :** le connecteur télécharge le dernier fichier Direct Data complet à partir de Veeva Vault. Cette archive est un fichier tar.gz contenant un fichier CSV par objet de données Vault. Le connecteur décompresse l’archive, crée une table de destination dans Snowflake pour chaque objet (s’il n’existe pas déjà), charge les données via Snowpipe Streaming dans une table de zone de préparation et fusionne ces données dans la table de destination finale.
** Phase incrémentielle :** une fois l’instantané terminé, le connecteur interroge Veeva Vault pour rechercher des fichiers de Direct Data incrémentiels. Chaque fichier incrémentiel contient uniquement les enregistrements qui ont changé depuis le fichier incrémentiel précédent. Le connecteur applique les mises à jour via le même pipeline de mise en zone de préparation et de fusion et traite les suppressions séparément en fonction de la stratégie de suppression configurée. Le niveau d’actualisation des données dans Snowflake dépend de la fréquence à laquelle Veeva Vault publie des fichiers Direct Data et de la fréquence de synchronisation configurée du connecteur.
** Phase de journal d’audit (facultatif) :** lorsque l’ingestion des journaux d’audit est activée, le connecteur télécharge également les fichiers
log_directdataet les charge dans Snowflake en suivant le même pipeline.
Le connecteur regroupe les fichiers Direct Data selon leur fenêtre temporelle signalée et traite une fenêtre à la fois pour que chaque lot soit traité atomiquement avant de passer à la suivante.
Le connecteur suit sa progression à l’aide d’un état persistant qui enregistre le dernier horodatage traité. Si le connecteur est arrêté et redémarré, il reprend là où il s’était arrêté.
Modes d’ingestion¶
Le connecteur prend en charge trois modes d’ingestion qui contrôlent la manière dont les fichiers Direct Data sont consommés :
- SNAPSHOT_AND_INCREMENTAL (par défaut):
Le connecteur traite d’abord le dernier fichier Direct Data complet (instantané). Une fois l’instantané terminé, il passe à l’interrogation pour les archives incrémentielles. Il s’agit du mode recommandé pour la plupart des déploiements.
- SNAPSHOT:
Le connecteur interroge en permanence le dernier fichier Direct Data complet. Chaque fois qu’un nouveau fichier complet est disponible, il est traité. Utilisez ce mode lorsque vous souhaitez remplacer périodiquement toutes les données de Snowflake par une exportation complète et actualisée.
- INCREMENTAL:
Le connecteur interroge uniquement les fichiers Direct Data incrémentiels. Aucun instantané complet n’est exécuté. Utilisez ce mode lorsqu’un instantané a déjà été chargé par d’autres moyens ou lorsque seules les modifications récentes sont nécessaires. Vous pouvez éventuellement spécifier une heure de début pour contrôler la distance de début de l’interrogation incrémentielle.
Authentification¶
Le connecteur s’authentifie auprès de Veeva Vault à l’aide de l’authentification basée sur la session. Vous fournissez un nom d’utilisateur et un mot de passe de compte de service et le connecteur obtient un identificateur de session auprès du point de terminaison d’authentification de l’API Vault. Cette session est réutilisée dans les requêtes et est automatiquement actualisée lorsqu’elle expire.
Pour l’authentification Snowflake, le connecteur prend en charge deux stratégies :
- SNOWFLAKE_MANAGED (par défaut):
Utilise le jeton géré par Snowflake associé au rôle d’exécution Openflow. Il s’agit de la stratégie recommandée à la fois pour Openflow - Snowflake Deployments et Openflow - BYOC Deployments.
- KEY_PAIR:
Utilise une paire de clés RSA fourni par l’utilisateur pour l’authentification. Cette stratégie n’est disponible que sur Openflow - BYOC Deployments et sont destinés aux scénarios inter-comptes où le connecteur doit écrire sur un compte Snowflake différent de celui qui héberge l’environnement d’exécution Openflow.
Comment les suppressions sont-elles gérées ?¶
Lorsque le connecteur reçoit un extrait de suppression de Veeva Vault, il applique les suppressions dans Snowflake conformément à la stratégie de suppression configurée :
- Suppression matérielle (par défaut):
Les lignes sont définitivement supprimées de la table de destination à l’aide d’une instruction
DELETE.- Suppression logicielle:
Les lignes ne sont pas supprimées. Au lieu de cela, le connecteur définit une colonne
__SNOWFLAKE_DELETEDavecTRUEet une colonne__SNOWFLAKE_DELETED_ATavec l’horodatage actuel. Si ces colonnes n’existent pas dans la table de destination, le connecteur les ajoute automatiquement.
Évolution du schéma¶
Le connecteur prend en charge l’évolution du schéma lorsque la structure des données de Veeva Vault change d’un fichier à l’autre. Lorsque le connecteur détecte de nouvelles colonnes dans un fichier entrant, il ajoute automatiquement ces colonnes aux tables de destination et de mise en zone de préparation dans Snowflake.
Lorsqu’une colonne n’est plus présente dans le fichier entrant, le connecteur applique la stratégie de suppression de colonne configurée :
- Détruire la colonne (par défaut):
supprime la colonne de la table Snowflake.
- Renommer une colonne:
Renomme la colonne en ajoutant un suffixe configurable (par défaut :
__deleted). Cela préserve les données historiques dans la table.- Ignorer la colonne:
Laisse la colonne telle quelle dans la table Snowflake et arrête de la remplir.
Gestion des nouvelles tentatives automatiques¶
Le connecteur relance automatiquement les appels de l’API qui ont échoué en utilisant une stratégie d’interruption exponentielle. Les conditions réessayables incluent les codes de statut HTTP 500, 502, 503 et 504, ainsi que des erreurs réseau transitoires.
Si une session expire ou devient non valide, le connecteur s’authentifie à nouveau et retente la requête.
Limitations¶
Tenez compte des limites suivantes lors de l’utilisation du connecteur :
Les données directes doivent être activées sur votre instance Vault avant d’utiliser le connecteur. Contactez votre administrateur Veeva Vault pour activer cette fonctionnalité.
Le connecteur s’authentifie à l’aide d’identifiants de connexion basés sur un nom d’utilisateur et un mot de passe basés sur une session. D’autres méthodes d’authentification (telles que OAuth) ne sont pas encore pris en charge.
Le connecteur réplique les données structurées à partir de fichiers Direct Data uniquement. Le contenu des documents et des pièces jointes (tels que les fichiers stockés dans Veeva Vault) n’est pas répliqué.
Actuellement, le connecteur n’effectue qu’un chargement initial d’objets de type `workflow hérité<https://platform.veevavault.help/en/gr/5205/>`_ et ne réplique pas les modifications en cours.
Prochaines étapes¶
Pour plus d’informations sur la configuration du connecteur, voir Configuration du Openflow Connector for Veeva Vault.