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 :
bashEDITOR=nano crontab -eAprè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.py2>&1 | while read line; do echo "$(date) - $line"; done>>/Users/your_user/snowflake/sql_server_python/procore_scheduling.log # procore-data-importVous 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éé :
powershellschtasks /query /tn "ProcoreDeltaShareScheduling" /fo LIST /vPour 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.pyAccè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.pyRé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.