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
- Synchronisation des données
- Configuration de la source de partage Delta
- Configuration de la cible Snowflake
- Options de planification
- Meilleures pratiques
- Résolution des problèmes
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 de l’utilisateur
- 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 :
- 1
- 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
- Étape 1: Installer les dépendances
- 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é.
- Type d’authentification non valide
- 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.