Zu Hauptinhalten wechseln
Procore

Exportieren nach Snowflake mit Python

Übersicht

Das Procore Analytics Cloud Connect Access Tool ist eine Befehlszeilenschnittstelle (CLI), mit der Sie Datenübertragungen von Procore zu Snowflake konfigurieren und verwalten können.

Es besteht aus zwei Hauptkomponenten: 

  • user_exp.py: Dienstprogramm zur Konfigurationseinrichtung
  • ds_to_snowflake.py: Skript zur Datensynchronisierung

Voraussetzungen

  • Python ist auf Ihrem System installiert 
  • Zugang zu Procore Delta Share
  • Anmeldedaten für das Snowflake-Konto 
  • Installieren Sie die erforderlichen Abhängigkeiten mit:
    • pip install -r requirements.txt 

Schritte

Erstkonfiguration

Führen Sie das Konfigurationsdienstprogramm mit Python user_exp.py aus.

Daten-Synchronisation

Nach der Konfiguration haben Sie zwei Möglichkeiten, die Datensynchronisierung auszuführen: 

  • Direkte Ausführung:
    • Python-ds_to_snowflake.py
  • Geplante Ausführung
    • Wenn Sie dies während des Setups konfigurieren, wird der Auftrag automatisch gemäß Ihrem Cron-Zeitplan ausgeführt.
    • Um die Planungsprotokolle zu überprüfen, wird die Datei 'procore_scheduling.log' erstellt, sobald die Planung eingerichtet wird.
    • Sie können die Planung auch überprüfen, indem Sie den folgenden Befehl im Terminal ausführen:

Für Linux und MacOS:

  • Bearbeiten/Löschen - Bearbeiten Sie den Terminplanungs-Cron mit:

    '''Bash

    EDITOR=nano crontab -e

    ```

  • Nachdem Sie den obigen Befehl ausgeführt haben, sollten Sie etwas Ähnliches wie das folgende sehen:

    2 * * * *
    /Benutzer/your_user/snowflake/venv/bin/python

     
    /Benutzer/your_user/Schneeflocke/sql_server_python/connection_config.py
    2>&1 | während der gelesenen Zeile; do echo "$(date) - $line"; Fertig>>

     
    /Benutzer/your_user/Schneeflocke/sql_server_python/procore_scheduling.log # Procore-Daten-Import 

     
  • Sie können auch den Zeitplan anpassen oder die gesamte Zeile löschen, um zu verhindern, dass sie nach Zeitplan ausgeführt wird.

Für Windows:

  • Überprüfen Sie, ob die Terminplanaufgabe erstellt wurde: 

    ```
        PowerShell (PowerShell) 

        schtasks /query /tn "ProcoreDeltaShareScheduling" /fo LIST /v 

    ``` 

  • Um die Planungsaufgabe zu bearbeiten/zu löschen , öffnen Sie den Taskplaner.
  • Drücken Sie Win + R, geben Sie taskschd.msc ein. und drücken Sie die Eingabetaste. 
  • Navigieren Sie zu den geplanten Aufgaben. 
  • Erweitern Sie im linken Bereich die Taskplaner-Bibliothek. 
  • Suchen Sie nach dem Ordner, in dem Ihre Aufgabe gespeichert ist:
    Beispiel:  Taskplaner-Bibliothek oder ein benutzerdefinierter Ordner.
  • Finde deine Aufgabe.
  • Suchen Sie nach dem Namen der Aufgabe: ProcoreDeltaShareScheduling
  • Klicken Sie darauf, um die Details im unteren Bereich anzuzeigen. 
  • Überprüfen Sie den Zeitplan: 
    • Überprüfen Sie die Registerkarte Trigger, um zu sehen, wann die Aufgabe ausgeführt werden soll. 
    • Überprüfen Sie die Registerkarte Verlauf, um die letzten Ausführungen zu bestätigen. 
  • So löschen Sie die Aufgabe: 
    • Löschen Sie die Aufgabe aus der GUI.

Konfiguration der Delta-Freigabe

  • Erstellen der config.share-Datei 
  • Bevor Sie das Konfigurationsdienstprogramm ausführen können, müssen Sie eine config.share-Datei mit Ihren Delta Share-Anmeldedaten erstellen. Die Datei sollte im JSON-Format vorliegen: 

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

     

  • Pflichtfelder: 
    • ShareCredentialsVersion: Versionsnummer (derzeit 1). 
    • BearerToken: Ihr Delta Share-Zugriffstoken.
    • Endpunkt: Die URL Ihres Delta Share-Endpunkts.
    • Diese Details können über die Procore-Web-Benutzeroberfläche abgerufen werden.
  • Schritte zum Erstellen von config.share: 
    • Erstellen Sie eine neue Datei mit dem Namen config.share.
    • Kopieren Sie die obige JSON-Vorlage. 
    • Ersetzen Sie die Platzhalterwerte durch Ihre tatsächlichen Anmeldedaten. 
    • Speichern Sie die Datei an einem sicheren Ort. 
    • Sie müssen den Pfad zu dieser Datei während der Konfiguration angeben. Bei der Konfiguration der Datenquelle werden Sie aufgefordert, Folgendes anzugeben:
      • Liste der Tabellen (durch Kommas getrennt).
      • Lassen Sie das Feld leer, um alle Tabellen zu synchronisieren.
      • Beispiel: Tabelle1, Tabelle2, Tabelle3.
  • Pfad zu Ihrer config.share-Datei .

Snowflake-Konfiguration

Sie müssen die folgenden Snowflake-Details angeben:

  • Authentifizierung (wählen Sie eine aus): 
    • Benutzer-Authentifizierung 
      • Nutzername 
      • Passwort (sicher eingegeben) 
  • Schlüsselpaar-Authentifizierung
    • Nutzername 
    • Dateipfad des privaten Schlüssels
    • Passwort für die Datei mit privatem Schlüssel 
  • Details zur Verbindung: 
    • Konto-ID 
    • Name des Lagers 
    • Name der Datenbank 
    • Name des Schemas 
    • Anzahl gleichzeitiger Threads 

Optionen für die Planung

Das Tool bietet die Möglichkeit, eine automatische Datensynchronisierung zu planen.

  • Cronjob-Konfiguration 
    • Auswählen, ob Sie ein tägliches Projekt einrichten möchten 
    • Wenn ja, geben Sie einen Cron-Zeitplan an 
    • Format: * * * * * (Minute, Stunde, Monat, Monat, Wochentag)
    • Beispiel für täglich um 2 Uhr morgens: 0 2 * * * 
  • Sofortige Ausführung 
    • Option zum sofortigen Ausführen der ds_to_snowflake.py nach der Konfiguration  
  • Datei-Struktur

    Unset 
    ├── requirements.txt                    # Abhängigkeiten 
    ├── user_exp.py                                # Konfigurations-Dienstprogramm
    ├── ds_to_snowflake.py                # Skript zur Datensynchronisierung
    ├── config.yaml                                  # Generierte Konfiguration
    ├── config.share                               # Delta-Share-Konfigurationsdatei
    ├── procore_scheduling.log       # Protokoll der Terminierungsläufe 


    Beispiel für die Verwendung 
    • Schritt 1: Installieren von Abhängigkeiten 
      $ pip install -r requirements.txt
    • Schritt 2: Konfigurationsdienstprogramm ausführen 
      $ python user_exp.py 
    • Procore Analytics Cloud Connect-Zugriff 
      • Diese CLI hilft Ihnen bei der Auswahl Ihres Quell- und Zielspeichers für den Zugriff/das Schreiben von Procore-Daten in Snowflake. 
      • Drücken Sie die Eingabetaste, um fortzufahren.
      • Geben Sie die Liste der Tabellen ein (durch Kommas getrennt), lassen Sie sie für alle Tabellen leer: Projekte, Benutzer, Aufgaben.
      • Geben Sie den Pfad zu config.share ein: /Pfad/zur/config.share.
      • Geben Sie den Benutzernamen ein: snowflake_user.
      • Welchen Authentifizierungstyp möchten Sie verwenden? (Benutzer/key_pair): Eingabetaste.
      • 1 für Benutzer,
      • 2 für Schlüsselpaar:
      • Passwort eingeben: ******** 
      • Konto eingeben: my_account 
      • Lager eingeben: my_warehouse 
      • Geben Sie den Datenbanknamen ein: procore_db
      • Geben Sie den Schemanamen ein: procore_schema 
      • Anzahl der Threads eingeben: 4 
      • Möchten Sie dies als täglichen Job auf cron konfigurieren? (Ja/Nein): Ja 
      • Geben Sie den Zeitplan im Cron-Format ein (z. B. * * * * * ): 0 2 * * * 
      • Möchten Sie den Auftrag jetzt ausführen? (Ja/Nein): Ja 
    • Schritt 3: Manuelle Ausführung (falls erforderlich)
      $ python ds_to_snowflake.py 
  • Wiederverwendung von Konfigurationen
    Das Tool speichert Ihre Konfiguration in der Datei config.yaml und bietet die Möglichkeit, zuvor gespeicherte Einstellungen wiederzuverwenden: 
    • Die Quellkonfiguration kann wiederverwendet werden.
    • Die Zielkonfiguration (Snowflake) kann wiederverwendet werden. 
    • Sie können wählen, ob Sie beide Konfigurationen unabhängig voneinander aktualisieren möchten.

Bewährte Methoden 

  • Authentifizierung
    • Verwenden Sie, wenn möglich, die Authentifizierung von Schlüsselpaaren.
    • Wechseln Sie die Anmeldedaten regelmäßig. 
    • Verwenden Sie die minimal erforderlichen Berechtigungen.
  • Leistung 
    • Passen Sie die Threadanzahl basierend auf Ihren Systemfunktionen an. 
    • Beginnen Sie mit einer kleineren Teilmenge von Tabellen zum Testen.

Fehlerbehebung 

  • Häufige Probleme und Lösungen: 
    • Ungültiger Authentifizierungstyp 
      • Stellen Sie sicher, dass Sie entweder "1" (Benutzer) oder "2" (key_pair) auswählen, wenn Sie dazu aufgefordert werden.
  • Cronjob einrichten  
    • Stellen Sie sicher, dass Sie über die entsprechenden Systemberechtigungen verfügen.
    • Überprüfen Sie die Systemprotokolle, wenn der Auftrag nicht ausgeführt werden kann.
    • Stellen Sie sicher, dass das ds_to_snowflake.py über die richtigen Berechtigungen verfügt. 
    • Überprüfen Sie die Einrichtung des Cron-Jobs, indem Sie die Systemprotokolle überprüfen:
      Siehe Datei 'procore_scheduling.log'.
  • Konfigurationsdatei
    • Befindet sich im selben Verzeichnis wie das Skript
    • Mit dem Namen config.yaml.
    • Sichern Sie, bevor Sie Änderungen vornehmen.
  • Unterstützen
    • Überprüfen Sie die Protokollausgabe des Skripts. 
    • Überprüfen Sie die Datei config.yaml
    • Wenden Sie sich an Ihren Systemadministrator, wenn Sie Fragen zu Berechtigungen haben.
    • Wenden Sie sich bei Problemen mit dem Delta Share-Zugriff an den Procore Support.

Anmerkung: Denken Sie daran, Ihre Konfiguration immer zu sichern, bevor Sie Änderungen vornehmen, und neue Konfigurationen zuerst in einer Nicht-Produktionsumgebung zu testen.