Passer au contenu principal
Procore

Exporter vers Snowflake à l’aide de Python

Aperçu

L’outil Nuage Connect Access 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
  • Identifiants du compte Snowflake 
  • Installez les dépendances requises à l’aide de :
    • pip install -r requirements.txt 

Étapes

Configuration initiale

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

Synchronisation des données

Après la configuration, vous avez 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 planification Cron.
    • Pour vérifier les journaux d’ordonnancement, le fichier 'procore_scheduling.log' sera créé dès que l’échéancier sera configuré.
    • En outre, vous pouvez vérifier la planification en exécutant la commande du terminal :

Pour Linux et MacOS :

  • Pour modifier/supprimer - modifiez le cron de l’échéancier en utilisant :

    '''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 | while ligne lue ; do echo « $(date) - $line » ; C’est fait>>

     
    /Utilisateurs/your_user/flocon de neige/sql_server_python/procore_scheduling.log # importation-des-donnees procore 

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

Pour Windows :

  • Vérifiez que la tâche de l’échéancier est créée : 

    ```
        PowerShell (en anglais seulement)

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

    ``` 

  • Pour modifier/supprimer une tâche de planification, 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 échéancier : 
    • 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 la tâche : 
    • Supprimer la tâche de l’interface graphique.

Configuration du partage Delta

  • 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.nuage. databricks.c... astores/xxxxxx"

     

  • Champs obligatoires : 
    • ShareCredentialsVersion : numéro de version (actuellement 1). 
    • BearerToken : votre jeton d’accès Delta Share.
    • Point de terminaison : URL de votre point de terminaison Delta Share.
    • Ces détails peuvent être obtenus à partir de l’interface utilisateur Web de Procore.
  • Étapes pour créer config.share : 
    • Créez un nouveau 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).
      • Laisser en blanc 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 le flocon de neige :

  • 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 planifier 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 échéancier cron 
    • Format : * * * * * (minute, heure, jour-de-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 des fichiers

    Non défini 
    ├── requirements.txt                    # Dépendances 
    ├── user_exp.py                                # Utilitaire de configuration
    ├── ds_to_snowflake.py                # Script de synchronisation des données
    ├── config.yaml                                  # Configuration générée
    ├── config.share                               # Fichier de configuration Delta Share
    ├── procore_scheduling.log       # Journal des exécutions d’ordonnancement 


    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 à Nuage Connect de Procore Analytics 
      • Cette interface de ligne de commande vous aidera à choisir votre magasin source et votre magasin de destination pour accéder aux données Procore et les écrire 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 au fichier config.share : /chemin/vers/config.share.
      • Entrez le nom d’utilisateur : snowflake_user.
      • Quel type d’authentification souhaitez-vous utiliser ? (user/key_pair) : Entrée.
      • 1 pour l’utilisateur,
      • 2 pour la paire de clés :
      • Entrez le mot de passe : ******** 
      • Saisir 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 
      • Saisir l’échéancier au format cron (p. ex. * * * * * ) : 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 vous propose de réutiliser les paramètres précédemment stockés : 
    • La configuration de la source peut être réutilisée.
    • La configuration de la 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.
  • Performances 
    • Ajustez le nombre de threads en fonction des capacités de votre système. 
    • Commencez par 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 échoue à 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.
  • Soutien
    • Vérifiez la sortie de journalisation du script. 
    • Passez en revue votre fichier config.yaml
    • Contactez votre administrateur système pour les problèmes liés aux permissions.
    • Contactez l’assistance Procore pour les problèmes d’accès à Delta Share.

Remarque : 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.