Se connecter à Snowflake à l’aide de Python

Aperçu

L’outil Analytics Cloud Connect Access est un command-line interface (CLI) qui vous aide à configurer et à gérer données transferts de Procore vers Snowflake.

Il se compose de deux composantes principales :

  • user_exp.py: Utilitaire de configuration

  • ds_to_snowflake.py: Données script de synchronisation

Conditions préalables

  • Python est installé sur votre système

  • Accès à Procore Delta Share

  • Identifiants de compte Snowflake

  • Téléchargez le lot zippé à partir de l’outil Analytics niveau Entreprise (via Analytics > Mise en route > Options de connexion > Snowflake).

  • Installez les dépendances requises à l’aide de :

    • pip install -r requirements.txt

Escalier

  • Configuration initiale

  • Synchronisation des données

  • Configuration de la source de partage Delta

  • Configuration de la cible Snowflake

  • Options de planification

  • Meilleures pratiques

  • Dépannage

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 la configuration, le projet s’exécutera automatiquement selon votre planning Cron.

    • Pour vérifier les journaux de planification, le fichier procore_scheduling.logsera créé dès que la planification sera configurée.

    • En outre, vous pouvez vérifier le Planning en exécutant la commande dans le terminal :

Pour Linux et MacOS :

  • Pour modifier/supprimer - modifier le cron de 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 * * * *
    /Users/your_user/snowflake/venv/bin/python{{br}/Users/your_user/snowflake/sql_server_python/connection_config.py
    2>&1 | while read line; do echo "$(date) - $line"; done>>

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

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

Pour Windows :

  • Vérifiez que le tâche de planning est créé :
    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 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 :

    • Supprimez 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 config.sharefichier avec votre identifiants Delta Share. Le fichier doit être au format JSON :
    {
    "shareCredentialsVersion": 1,
    "bearerToken": "xxxxxxxxxxxxx",
    "endpoint": "https://nvirginia.cloud.databricks.c...astores/xxxxxx"

    • 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.

      }

  • Champs obligatoires :

  • É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 identifiants d’identification réels.

    • Enregistrez le fichier dans un lieu 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 :

      • 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 config.sharefichier.

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 du projet Cron

    • Choisissez de configurer ou non un projet quotidien

    • Si oui, fournissez un planning cron

    • Format : * * * * *(minute, heure, jour, jour du 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
    de fichiers Unset
    ├── requirements.txt # Dependencies
    ├── user_exp.py # Configuration utility
    ├── ds_to_snowflake.py # Data sync script
    ├── config.yaml # Generated configuration
    ├── config.share # Delta Share config file
    ├── procore_scheduling.log # Log of scheduling runs

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 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 : /path/to/config.share.

    • Entrez utilisateur nom : 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 :

      • 1

      • Entrer 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 projet quotidien sur cron ? (Oui/Non) : Oui

      • Saisissez le planning au format cron (par exemple, * * * * * ): 0 2 * * *

      • Voulez-vous exécuter le projet 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 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 identifiants.

    • Utilisez les autorisations minimales requises.

  • Performances

    • 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 du projet Cron

    • Vérifiez que vous disposez des autorisations système appropriées.

    • Vérifiez les journaux système si le projet ne parvient pas à s’exécuter.

    • Assurez-vous que le ds_to_snowflake.py dispose des autorisations appropriées.

    • Vérifiez la configuration de l’projet cron en vérifiant les
      See procore_scheduling.logjournaux système : fichier.

  • 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 config.yaml fichier.

    • 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.

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 qui n’est pas un environnement de production.