Passer au contenu principal
Procore

Exporter vers Snowflake à l’aide de Python

Vue d'ensemble

L’outil Accès Cloud Connect de Procore Analytics est une interface de ligne de commande (CLI) qui vous aide à configurer et à gérer les transferts de données de Procore vers Snowflake.

Il se compose de deux composantes principales : 

  • user_exp.py: Utilitaire de configuration
  • ds_to_snowflake.py: Script de synchronisation des données

Conditions préalables

  • Python est installé sur votre système 
  • Accès à Procore Delta Share
  • Informations d’identification du compte Snowflake 
  • Installez les dépendances requises à l’aide de :
    • pip install -r requirements.txt 

Procédure

Configuration initiale

Exécutez l’utilitaire de configuration à l’aide de python user_exp.py.

Synchronisation des données

Après la configuration, vous disposez de deux options pour exécuter la synchronisation des données : 

  • Exécution directe :
    • Python ds_to_snowflake.py
  • Exécution planifiée
    • S’il est configuré lors de l’installation, le travail s’exécutera automatiquement selon votre planning Cron.
    • Pour vérifier les journaux de planification, le fichier 'procore_scheduling.log' sera créé dès que la planification sera configurée.
    • En outre, vous pouvez vérifier la planification en exécutant la commande terminal :

Pour Linux et MacOS :

  • Pour modifier/supprimer - modifier le cron de la planification à l’aide de :

    '''bash

    EDITOR=nano crontab -e

    '''

  • Après avoir exécuté la commande ci-dessus, vous devriez voir quelque chose de similaire à :

    2 * * * *
    /Utilisateurs/your_user/flocon de neige/venv/bin/python

     
    /Utilisateurs/your_user/flocon de neige/sql_server_python/connection_config.py
    2> et 1 | pendant la ligne de lecture ; do echo « $(date) - $line » ; C’est fait>>

     
    /Users/your_user/snowflake/sql_server_python/procore_scheduling.log # import-donnees-procore 

     
  • Vous pouvez également ajuster le cron du planning ou supprimer la ligne entière pour l’empêcher de fonctionner selon le planning.

Pour Windows :

  • Vérifiez que la tâche du planning est créée : 

    '''
        powershell 

        schtasks /query /tn « ProcoreDeltaShareScheduling » /fo LIST /v 

    ''' 

  • Pour modifier/supprimer une tâche de planning, ouvrez le Planificateur de tâches.
  • Appuyez sur Win + R, tapez taskschd.msc, et appuyez sur Entrée. 
  • Accédez aux tâches planifiées. 
  • Dans le volet gauche, développez la bibliothèque du planificateur de tâches. 
  • Recherchez le dossier dans lequel votre tâche est enregistrée :
    Exemple : bibliothèque du planificateur de tâches ou dossier personnalisé.
  • Trouvez votre tâche.
  • Recherchez le nom de la tâche : ProcoreDeltaShareScheduling
  • Cliquez dessus pour afficher les détails dans le volet inférieur. 
  • Vérifiez son planning : 
    • Vérifiez l’onglet Déclencheurs pour voir quand la tâche est définie pour s’exécuter. 
    • Consultez l’onglet Historique pour confirmer les exécutions récentes. 
  • Pour supprimer une tâche : 
    • Supprimer la tâche de l’interface graphique.

Delta Share Configuration

  • Création d’un fichier config.share 
  • Avant d’exécuter l’utilitaire de configuration, vous devez créer un fichier config.share avec vos informations d’identification Delta Share. Le fichier doit être au format JSON : 

    « shareCredentialsVersion » : 1, 
    « bearerToken » : « xxxxxxxxxxxxx », 
    « endpoint » : « https://nvirginia.cloud.databricks.c... astores/xxxxxx"

     

  • Champs obligatoires : 
    • ShareCredentialsVersion : numéro de version (actuellement 1). 
    • BearerToken : votre jeton d’accès Delta Share.
    • Point de terminaison : l’URL de votre point de terminaison Delta Share.
    • Ces détails peuvent être obtenus à partir de l’interface utilisateur Web de Procore.
  • Étapes à suivre pour créer config.share : 
    • Créez un fichier nommé config.share.
    • Copiez le modèle JSON ci-dessus. 
    • Remplacez les valeurs d’espace réservé par vos informations d’identification réelles. 
    • Enregistrez le fichier dans un emplacement sûr. 
    • Vous devrez fournir le chemin d’accès à ce fichier lors de la configuration. Lors de la configuration de la source de données, il vous sera demandé de fournir les informations suivantes :
      • Liste des tableaux (séparés par des virgules).
      • Laissez le champ vide pour synchroniser tous les tableaux.
      • Exemple : table1, table2, table3.
  • Chemin d’accès à votre fichier config.share .

Configuration du flocon de neige

Vous devrez fournir les informations suivantes sur Snowflake :

  • Authentification (choisissez-en une) : 
    • Authentification de l’utilisateur 
      • Nom d’utilisateur 
      • Mot de passe (saisi en toute sécurité) 
  • Authentification par paire de clés
    • Nom d’utilisateur 
    • Chemin d’accès au fichier de clé privée
    • Mot de passe du fichier de clé privée 
  • Détails de connexion : 
    • Identifiant de compte 
    • Nom de l’entrepôt 
    • Nom de la base de données 
    • Nom du schéma 
    • Nombre de threads simultanés 

Options de planification

L’outil offre la possibilité de programmer une synchronisation automatique des données.

  • Configuration de la tâche Cron 
    • Choisir de configurer ou non une tâche quotidienne 
    • Si oui, fournissez un planning cron 
    • Format : * * * * * (minute heure jour du mois mois jour de la semaine)
    • Exemple pour tous les jours à 2 heures du matin : 0 2 * * * 
  • Exécution immédiate 
    • Possibilité d’exécuter le ds_to_snowflake.py immédiatement après la configuration  
  • Structure du fichier

    Unset 
    ├── requirements.txt                    # Dépendances 
    ├── user_exp.py                                # Utilitaire de configuration
    ├── ds_to_snowflake.py                # Script de synchronisation des données
    ├── config.yaml                                  # Généré configuration
    ├── config.share                               # Fichier de configuration Delta Share
    ├── procore_scheduling.log       # Registre des exécutions de planning 


    Exemple d’utilisation 
    • Étape 1: Installer les dépendances 
      $ pip install -r requirements.txt
    • Étape 2: Exécuter l’utilitaire de configuration 
      $ python user_exp.py 
    • Accès à Procore Analytics Cloud Connect 
      • Cette interface de ligne de commande vous aidera à choisir votre magasin source et votre magasin de destination pour accéder/écrire des données Procore dans Snowflake. 
      • Appuyez sur Entrée pour continuer.
      • Entrez la liste des tableaux (séparés par des virgules), laissez-la vide pour tous les tableaux : projets, utilisateurs, tâches.
      • Entrez le chemin d’accès à config.share : /chemin/vers/config.share.
      • Entrez le nom d’utilisateur : snowflake_user.
      • Quel type d’authentification souhaitez-vous utiliser ? (utilisateur/key_pair) : Entrée.
      • 1 pour l’utilisateur,
      • 2 pour la paire de clés :
      • Entrez le mot de passe : ******** 
      • Entrez le compte : my_account 
      • Entrez dans l’entrepôt : my_warehouse 
      • Entrez le nom de la base de données : procore_db
      • Entrez le nom du schéma : procore_schema 
      • Entrez le nombre de threads : 4 
      • Voulez-vous configurer cela comme un travail quotidien sur cron ? (Oui/Non) : Oui 
      • Saisissez le planning au format cron (par exemple, * * * * * ) : 0 2 * * * 
      • Voulez-vous exécuter le travail maintenant ? (Oui/Non) : Oui 
    • Étape 3: Exécution manuelle (si nécessaire)
      $ python ds_to_snowflake.py 
  • Réutilisation de la configuration
    L’outil enregistre votre configuration dans le fichier config.yaml et propose de réutiliser les paramètres précédemment stockés : 
    • La configuration source peut être réutilisée.
    • La configuration cible (Snowflake) peut être réutilisée. 
    • Vous pouvez choisir de mettre à jour l’une ou l’autre configuration indépendamment.

Meilleures pratiques 

  • Authentification
    • Utilisez l’authentification par paire de clés lorsque cela est possible.
    • Faites régulièrement une rotation des informations d’identification. 
    • Utilisez les autorisations minimales requises.
  • Performance 
    • Ajustez le nombre de threads en fonction des capacités de votre système. 
    • Commencez avec un sous-ensemble plus petit de tables pour les tests.

Dépannage 

  • Problèmes courants et solutions : 
    • Type d’authentification non valide 
      • Assurez-vous de sélectionner « 1 » (utilisateur) ou « 2 » (key_pair) lorsque vous y êtes invité.
  • Configuration de la tâche Cron  
    • Vérifiez que vous disposez des autorisations système appropriées.
    • Vérifiez les journaux système si la tâche ne parvient pas à s’exécuter.
    • Assurez-vous que le ds_to_snowflake.py dispose des autorisations appropriées. 
    • Vérifiez la configuration de la tâche cron en vérifiant les journaux système :
      Voir le fichier 'procore_scheduling.log '.
  • Fichier de configuration
    • Situé dans le même répertoire que le script,
    • Nommé config.yaml.
    • Sauvegardez avant d’apporter des modifications.
  • Support technique
    • Vérifiez la sortie de journalisation du script. 
    • Révisez votre fichier config.yaml
    • Contactez votre administrateur système pour les problèmes liés aux autorisations.
    • Contactez le support technique Procore pour les problèmes d’accès à Delta Share.

Note: N’oubliez pas de toujours sauvegarder votre configuration avant d’apporter des modifications et de tester d’abord les nouvelles configurations dans un environnement hors production.