Zu Hauptinhalten wechseln
Procore

Herstellen einer Verbindung mit Amazon S3 mithilfe von Python

Übersicht

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

Es besteht aus zwei Hauptkomponenten: 

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

Voraussetzungen

  • Procore Analytics 2.0 SKU
  • Python ist auf Ihrem System installiert
  • Zugang zu Procore Delta Share
  • S3-Zugriffstasten
  • Installation der erforderlichen Abhängigkeiten mit:
    • pip install -r requirements.txt 

Schritte

Erstkonfiguration

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

Dies wird Ihnen bei der Einrichtung helfen:

  • Konfiguration der Delta-Freigabe
  • S3-Zielkonfiguration
  • Einstellungen für die Terminplanung 

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", 
    "Endpunkt": "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 .

S3-Konfiguration

Sie müssen die folgenden S3-Details angeben:

  • Authentifizierung:
    • Zugriffsschlüssel
    • Geheimer Schlüssel
    • Bucket-Name ohne s3://
    • Schlüssel - Verzeichnis 

Optionen für die Planung

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

  • Cronjob-Konfiguration 
    • Wählen Sie aus, 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 * * * 
    • Um die Terminierungsprotokolle zu überprüfen, wird die Datei 'procore_scheduling.log' erstellt, sobald die Terminierung eingerichtet ist.

Sie können die Zeitplanung auch überprüfen, indem Sie den Befehl in 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/snowflake/sql_server_python/connection_config.py 2>&1 | während der gelesenen Zeile; do echo "$(date) - $line"; Erledigt >> /Benutzer/your_user/snowflake/sql_server_python/procore_scheduling.log # procore-data-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
    schtasks /query /tn "ProcoreDeltaShareScheduling" /fo LIST /v

    ```
  • So bearbeiten/löschen Sie die Planungsaufgabe:
    Ö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 (z. B. Taskplaner-Bibliothek oder ein benutzerdefinierter Ordner).
  • Finden Sie Ihre Aufgabe:
    • Suchen Sie nach dem Aufgabennamen 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.
  • Sofortige Ausführung 
    • Option zum Ausführen der delta_share_to_s3_.pDatei-Struktur
  • Unset 

    ├── requirements.txt                    # Abhängigkeiten 
    ├── user_exp.py                                # Konfigurations-Dienstprogramm
    ├── delta_share_to_s3.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 S3. 
      • 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 Zugriffsschlüssel ein: s3-Schlüssel.
      • Geben Sie secret: secret ein.
      • Geben Sie bucket ein: Bucket-Name.
      • 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 delta_share_to_s3.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 (S3) kann wiederverwendet werden. 
    • Sie können wählen, ob Sie beide Konfigurationen unabhängig voneinander aktualisieren möchten.

Fehlerbehebung 

Häufige Probleme und Lösungen

  • Cronjob einrichten  
    • Stellen Sie sicher, dass die Systemberechtigungen korrekt konfiguriert sind.
    • Überprüfen Sie die Systemprotokolle, wenn der Auftrag nicht ausgeführt werden kann.
    • Überprüfen des Skripts (delta_share_to_s3.py) Ausführen von Berechtigungen.
  • Konfigurationsdatei
    • Vergewissern Sie sich, dass sich die Datei config.yaml im selben Verzeichnis wie das Skript befindet.
    • Sichern Sie, bevor Sie Änderungen vornehmen.
  • Unterstützen
    • Überprüfen Sie die Skriptprotokolle auf detaillierte Fehlermeldungen.
    • Überprüfen Sie die Datei config.yaml auf Fehlkonfigurationen.
    • 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.
    • Überprüfen Sie die Einrichtung von Cron-Jobs, indem Sie die Systemprotokolle überprüfen: Siehe 'procore_scheduling_log' -Datei.

Hinweise:

  1. Denken Sie daran, Ihre Konfiguration immer zu sichern, bevor Sie Änderungen vornehmen.
  2. Testen Sie neue Konfigurationen zunächst in einer Nicht-Produktionsumgebung.