メインコンテンツへスキップ
Procore

Python を使用して Amazon S3 に接続する

概要

Procore アナリティクス クラウド接続アクセスツールは、Procore アナリティクス 2.0 を使用して Procore から Amazon S3 へのデータ転送を設定および管理するのに役立つコマンドライン インターフェイス (CLI) です。

これは、次の 2 つの主要コンポーネントで構成されています。

  • user_exp.py:構成セットアップ ユーティリティ
  • delta_share_to_s3.py:データ同期スクリプト

前提条件

  • Procore アナリティクス 2.0 SKU
  • Pythonがシステムにインストールされている
  • Procore Delta Share へのアクセス
  • S3 アクセスキー
  • 以下を使用した必要な依存関係のインストール:
    • pip install -r requirements.txtを実行します

ステップ

初期設定

python user_exp.pyを使用して設定ユーティリティを実行します。

これは、次の設定に役立ちます。

  • デルタ共有の構成
  • S3 ターゲット設定
  • スケジュール設定

デルタ共有の構成

  • config.shareファイルの作成
  • 構成ユーティリティを実行する前に、Delta Share 資格情報を使用して config.share ファイルを作成する必要があります。ファイルはJSON形式である必要があります。

    {

    "shareCredentialsVersion":1、
    "bearerToken": "xxxxxxxxxxxxx",
    "エンドポイント": "xxxxxx"

    }

  • 必須フィールド:
    • ShareCredentialsVersion: バージョン番号 (現在は 1)。
    • BearerToken: Delta Share アクセス トークン。
    • エンドポイント: Delta Share エンドポイント URL。
    • これらの詳細は、Procore Web UI から取得できます。
  • config.shareを作成する手順:
    • config.share という名前の新しいファイルを作成します。
    • 上記の JSON テンプレートをコピーします。
    • プレースホルダーの値を実際の資格情報に置き換えます。
    • ファイルを安全な場所に保存します。
    • 構成時に、このファイルへのパスを指定する必要があります。データ ソースを構成するときに、次の情報を提供するように求められます。
      • テーブルのリスト (カンマ区切り)。
      • すべてのテーブルを同期するには、空白のままにします。
      • 例: table1、table2、table3。
  • config.share ファイルへのパス。

S3 設定

次の S3 の詳細を指定する必要があります。

  • 認証:
    • アクセスキー
    • 秘密鍵
    • s3:// を含まないバケット名
    • key - ディレクトリ

スケジュール オプション

このツールには、自動データ同期をスケジュールする機能があります。

  • cronジョブの構成
    • 日次ジョブを設定するかどうかを選択します。
    • 「はい」の場合は、cron スケジュールを指定します。
    • 形式: * * * * * (分、時間、日、月、日、曜日)。
    • 毎日午前 2 時の例: 0 2 * * *
    • スケジュールログを確認するために、スケジュールが設定されるとすぐにファイル 「procore_scheduling.log」が作成されます。

ターミナルコマンドで実行してスケジュールを確認することもできます

LinuxおよびMacOSの場合:

編集/削除 - 以下を使用してスケジューリングcronを編集します。

'''bash
EDITOR=nano crontab -e
```

  • 上記のコマンドを実行すると、次のようなものが表示されます。
  • 2 * * * * /ユーザー/your_user/スノーフレーク/venv/bin/python /ユーザー/your_user/スノーフレーク/sql_server_python/connection_config.py 2>&1 |行を読み取っている間。do echo "$(日付) - $line";完了 >> /ユーザー/your_user/snowflake/sql_server_python/procore_scheduling.log # procore-data-import
  • また、schedule cron を調整したり、行全体を削除したりして、スケジュールによる実行を停止することもできます。

Windowsの場合:

  • スケジュール タスクが作成されたことを確認します。
    '''PowerShell
    schtasks /query /tn "ProcoreDeltaShareScheduling" /fo LIST /v

    ```
  • 編集/削除 - タスクのスケジュール設定:
    タスクスケジューラを開きます。
    • Win + Rを押し、taskschd.mscと入力し、と入力し、Enter キーを押します。
    • スケジュールされたタスクに移動します。
    • 左側のウィンドウで、[タスク スケジューラ ライブラリ] を展開します。
    • タスクが保存されているフォルダを探します (例: タスク スケジューラ ライブラリまたはカスタム フォルダ)。
  • タスクを見つける:
    • タスク名 ProcoreDeltaShareScheduling を探します。
    • それをクリックすると、下部のペインに詳細が表示されます。
  • スケジュールを確認します。
    • [トリガー] タブをチェックして、タスクがいつ実行されるかを確認します。
    • [履歴] タブをチェックして、最近の実行を確認します。
  • タスクを削除するには:
    • GUI からタスクを削除します。
  • 即時実行 
    • delta_share_to_s3_.pyを実行するオプションファイル 構造
  • 解除

    ├── requirements.txt# 依存関係
    ├── user_exp.py# 設定ユーティリティ
    ├── delta_share_to_s3.py# データ同期スクリプト
    ├── config.yaml# 生成された設定
    ├── config.share# Delta Share 構成ファイル
    ├── procore_scheduling.log# スケジューリング実行のログ


    使用例
    • ステップ 1: 依存関係をインストールする
      $ pip install -r requirements.txt
    • ステップ2:構成ユーティリティを実行する
      $ python user_exp.py 
    • Procore アナリティクス クラウド コネクトへのアクセス 
      • この CLI は、Procore データを S3 にアクセス/書き込みするためのソースと宛先ストアを選択するのに役立ちます。
      • [Enter]を押して続行します。
      • テーブルのリストを (コンマ区切りで) 入力し、すべてのテーブル (projects、users、tasks) を空白のままにします。
      • config.shareへのパスを入力します。/path/to/config.shareです。
      • 「access key: s3 key」と入力します。
      • 「secret: secret」と入力します。
      • bucket: bucket name を入力します。
      • これをcronの日常のジョブとして構成しますか?(はい/いいえ):はい
      • スケジュールを cron 形式で入力します (例: * * * * * ): 0 2 * * *
      • ジョブを今すぐ実行しますか?(はい/いいえ):はい
    • ステップ 3: 手動実行 (必要な場合)
      $ pythonのdelta_share_to_s3.py 
  • 設定の再利用
    このツールは、構成を config.yaml ファイルに保存し、以前に保存した設定を再利用することを提案します。
    • ソース構成は再利用できます。
    • ターゲット(S3)構成は再利用できます。
    • いずれかの構成を個別に更新することを選択できます。

トラブルシューティング

一般的な問題と解決策:

  • cronジョブのセットアップ
    • システム権限が正しく設定されていることを確認します。
    • ジョブの実行に失敗した場合は、システムログを確認します。
    • スクリプトを確認する (delta_share_to_s3.py) 実行権限。
  • 構成ファイル
    • config.yaml ファイルがスクリプトと同じディレクトリにあることを確認します。
    • 変更を加える前にバックアップしてください。
  • サポート
    • スクリプト ログで詳細なエラー メッセージを確認します。
    • config.yaml ファイルの設定ミスを確認します。
    • 権限関連の問題については、システム管理者に問い合わせてください。
    • Delta Share アクセスの問題について、Procore サポートにお問い合わせください。
    • システムログをチェックしてcronジョブの設定を確認します:「 procore_scheduling_log」 ファイルを参照してください。

筆記:

  1. 変更を加える前に、必ず設定をバックアップしてください。
  2. まず、非運用環境で新しい構成をテストします。