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

分析モデルをダウンロードして Procore データを接続する

目的

Analytics モデルをプログラムでダウンロードして、Procore データを BI システムに接続すること。

検討事項

  • 要件:
    • Python 3.6 以降がシステムにインストールされていること。
    • Procore から受信した「config.share」ファイル。
    • システムにインストールされている必要な Python パッケージ。
    • このスクリプトは、PySpark と Python の両方をサポートしています。
    • PySparkを使用している場合は、Spark 3.5.1以降、Javaをインストールし、SPARK_HOME環境変数を構成していることを確認してください。
    • Python を使用していて、ターゲットの場所が MSSQL DB の場合は、SQL Server 用の ODBC ドライバー 17 をシステムにインストールします。

ステップ

 
この接続方法は、通常、データの専門家によって使用されます。

資格情報ファイルの作成

まず、Procore Web アプリケーション内でデータ トークンを生成する必要があります。「アクセストークンの生成」を参照してください。

  1. config.share というファイルを作成します。
  2. 以下のフィールドを追加します。
    {
    "shareCredentialsVersion":1、
    "bearerToken": "",
    "エンドポイント": "",
    "expirationTime": ""
    }
  3. Procore から受け取った [ベアラー トークン]、[エンドポイント]、[共有資格情報のバージョン]、および [有効期限] の値を config.share ファイルに追加します。

スクリプトuser_exp.pyを実行する

次のスクリプトを使用して、必要な構成で config.yaml ファイルを作成できます。

  • Azure Storage の場合:
    cron_job: #true/false
    run_as: #pyspark/python
    source_config:
    config_path: config.share ファイルへの #path
    テーブル:
    - '' # 特定のテーブルをダウンロードする場合はテーブル名。すべてのテーブルをダウンロードする場合は、空のままにします
    source_type:delta_share
    target_config:
    auth_type:service_principal
    client_id:#client_id
    secret_id: #secret_id
    storage_account: #storage アカウント名
    storage_path: #<container> <storage-account>@.dfs.core.windows.net/<directory>
    enant_id:#tenant_id
    target_type:azure_storage
     
  • MSSQL DBの場合:
    cron_job: #true/false
    run_as: #pyspark/python
    source_config:
    config_path: config.share ファイルへの #path
    テーブル:
    - '' # 特定のテーブルをダウンロードする場合はテーブル名。すべてのテーブルをダウンロードする場合は、空のままにします
    source_type:delta_share
    target_config:
    database: #target データベース
    host: #target ホスト名:ポート
    パスワード:#password
    schema: #target スキーマ (既定値は procore_analytics)
    ユーザー名:#username
    target_type:sql_server

PySpark として実行

環境が既に Spark で設定されている場合は、要求されたときに "pyspark" オプションを選択するか、"config.yaml" が生成されたら、次のコマンドを実行してレポートをデータ ディレクトリにダウンロードできます。

  • ADLS Gen2 ストレージに書き込む場合:
    spark-submit --packages io.delta:delta-sharing-spark_2.12:3.1.0,org.apache.hadoop:hadoop-azure:3.4.0,com.microsoft.azure:azure-storage:8.6.6,org.apache.hadoop:hadoop-common:3.4.0 --exclude-packages com.sun.xml.bind:jaxb-impldelta_share_to_sql_spark.py
  • MSSQL DBに書き込む場合:
    spark-submit --packages io.delta:delta-sharing-spark_2.12:3.1.0--jars <mssql-jdbc jar の場所> delta_share_to_sql_spark.py

Python として実行

  1. コマンドラインから、「cd <path to the folder>」 コマンドを入力してフォルダに移動します。
  2. 「pip install -r requirements.txt」を使用して必要なパッケージをインストールしますまたは 「python -m pip install -r requirements.txt」。
  3. python delta_share_to_azure_pandy.py コマンドを実行します。

SSIS の使用

  1. SSIS を開き、新しいプロジェクトを作成します。
  2. [SSIS ツールボックス] から [ プロセス タスクの実行] をドラッグ アンド ドロップします。
  3. プロセス・タスクの実行」をダブルクリックします。
  4. [プロセス] タブに移動します。
  5. [実行可能ファイル] の横に、Python インストール フォルダー内のpython.exeへのパスを入力します。
  6. [WorkingDirectory] に、実行するスクリプトを含むフォルダーへのパスを入力します (スクリプト ファイル名は含みません)。
  7. [引数] に、.pyで実行するスクリプトdelta_share_to_azure_panda.pyの名前を入力します拡張子を右クリックし 、[保存] をクリックします。
  8. 上部のリボン メニューで [ 開始 ] をクリックします。
  9. タスクの実行中に、Python コンソールの出力が外部コンソール ウィンドウに表示されます。
  10. タスクが完了すると、チェックマークが表示されます。

独自の方法を選択してください

Delta Sharing は、安全なデータ共有のためのオープン プロトコルです。Delta Sharing のパブリック GitHub リポジトリは 、https://github.com/delta-io/delta-sharing にあります。リポジトリには、Python や Spark コネクタ (SQL、Python、Scala、Java、R) などのさまざまな言語を使用して共有データにアクセスするための例とドキュメントが含まれています。

 
必要なファイルをダウンロードし、システム上でDockerコンテナを実行するための適切な権限とアクセス権があることを確認してください。機密データと認証情報を取り扱うときは、Procore が提供するセキュリティのベスト プラクティスとガイドラインに常に従ってください。