チュートリアル:地震解析スケジュールの管理とレポートのダウンロード

Important

この機能は現在プレビューの段階です。 ベータ版、プレビュー版、または他の方法で一般公開されていない Azure の機能に適用される法的条件については、Microsoft Azure プレビューの追加利用規約を参照してください。

このチュートリアルでは、Azure Data Manager for Energy の Seismic DDMS Analytics 操作を使って、地震データの定期的な分析スケジュールを作成し、生成されたレポートを一覧表示してダウンロードし、不要になったスケジュールを削除する方法を実演します。 スケジュール分析は、サブプロジェクトやテナント全体にわたるストレージ消費量やデータアクセスパターンを時間とともに追跡し、カスタムレポートパイプラインを構築しなくても容量計画やストレージコストの最適化を可能にします。 バックグラウンドジョブは、要求された統計を定期的に計算し、各レポートをAzure Blob Storageに書き込みます。 レポートデータはストレージから直接ダウンロードし、サービスを経由することはない。

このチュートリアルでは、以下の内容を学習します。

  • サブプロジェクトやテナント向けに分析スケジュールを作成します
  • 分析スケジュールと生成されたレポートを一覧表示
  • 有効期限が短い SAS URL 付きのレポートをダウンロードする
  • 分析スケジュールを削除してください

Prerequisites

開始する前に、次の前提条件を満たしていることを確認してください。

  • Azure サブスクリプション。
  • Seismic DDMS が構成されたエネルギー リソースのAzure データ マネージャー。
  • Seismic DDMS サービスに登録された tenant および subproject 。
  • ユーザーアカウントには、スコープに応じてsubproject.admin、datamanager、またはtenant.adminの役割が割り当てられます。
  • API 認証のベアラー トークン。 DefaultAzureCredentialを使う場合は、https://energy.azure.com/.defaultスコープをリクエストしてください。 認証トークンを生成する方法を参照してください。
  • テナントの data-partition-id 値がない場合は 400 BAD_REQUEST を返します。

分析の範囲を理解する

アナリティクスのジョブは2つのスコープのいずれかで実行されます。 スコープは、どのデータセットが対象となるか、そしてどの役割が必要かを決定します。

Scope 測定対象 それをターゲティングする方法 必要な役割
Subproject パーティション内の単一のサブプロジェクト リクエスト本文(作成)内のname、またはURLパス内のsubprojectid subproject.admin、 datamanager、または tenant.admin
テナント データパーティション全体 空または省略された name (作成)、または /tenant/... ルート datamanager または tenant.admin

各スケジュールには3つの設定が格納されます: 計算する statistics、最初の実行の曜日(first_execution)、そして日数での繰り返しの頻度(freq_execution)。 APIはスケジュール操作に /job エンドポイントを使用します。 バックグラウンド ジョブは、スケジュールを読み取り、パス レイアウト <subproject>/YYYY/MM/DD/ を使用して sdms-analytics-reports コンテナーにレポートを書き込みます。

分析スケジュールを提出してください

単一のスケジュール オブジェクトを含む JSON 配列で PUT リクエストを送信する。 テナント全体のスケジュールを作成する場合は name を省略するか空文字列を送信し、スケジュールの対象をそのサブプロジェクトに限定するにはサブプロジェクト name を指定します。

リクエストボディは以下のフィールドをサポートしています:

フィールド Required タイプ Description
name No 文字列 サブプロジェクト名。 空欄または省略された場合、スケジュールはテナント スコープで作成され、デフォルトでは data-partition-id になります。
statistics イエス 文字列 計算すべき統計量のカンマ区切りリスト。 空白は削除され、保存前に値は小文字にされます。
first_execution No 整数 (1–7) 最初の実行の曜日。 デフォルトでは現在の日になります。 1–7以外の値は400 BAD_REQUESTを返します。
freq_execution No 整数 (>0) 実行頻度は日単位です。 既定値は 7 です。
  1. 要求を送信します。 サブプロジェクトのスケジュールについては、サブプロジェクト name を記載してください:

    PUT https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/job
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    Content-Type: application/json
    
    [
      {
        "name": "{subproject_name}",
        "statistics": "count,size",
        "first_execution": 1,
        "freq_execution": 7
      }
    ]
    

    テナント全体のスケジュールについては、 nameを省略してください:

    PUT https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/job
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    Content-Type: application/json
    
    [
      {
        "statistics": "count,size",
        "freq_execution": 7
      }
    ]
    
  2. 返答で返された正規化されたスケジュールを確認してください。 typeフィールドは、サブプロジェクトのスケジュールではsubproject、テナント全体のスケジュールではpartitionです。 first_executionフィールドは次回の予定された実行のタイムスタンプとして返されます。

    [
      {
        "name": "{subproject_name}",
        "type": "subproject",
        "statistics": "count,size",
        "first_execution": 1743552000000,
        "freq_execution": 7
      }
    ]
    

サービスは選択した範囲に対して定期的な分析スケジュールを作成します。 必要な統計だけをリクエストし、レポートをどのくらいの頻度で閲覧するかに合わせて freq_execution を設定しましょう。

分析スケジュールの取得

スケジュールエンドポイントを呼び出して、表示できるスケジュールを確認してください。 tenant.admin または datamanager のロールを持つユーザーには、完全なリストが表示されます。 subproject.admin ロールを持つユーザーには、自分が管理できるサブプロジェクトのスケジュールのみが表示されます。

  1. 要求を送信します。

    GET https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/job
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    
  2. 返送されたスケジュールを確認しましょう。

    [
      {
        "name": "{subproject_name}",
        "type": "subproject",
        "statistics": "count,size",
        "first_execution": 1743552000000,
        "freq_execution": 7
      }
    ]
    

レスポンスには、割り当てられた役割が閲覧できる分析スケジュールが含まれています。

生成されたレポートを取得

レポートは最初のスケジュールされた実行の完了後に利用可能になります。 単一のサブプロジェクトまたはテナント全体のレポートを取得し、日付で結果を絞り込むことも可能です。

以下のクエリパラメータがレポートリストおよびSASのURLリクエストを制御します:

Parameter Required タイプ Description
filter-date No 文字列 結果を日付で制限します。 YYYY、YYYY-MM、または YYYY-MM-DD にする必要があります。 それ以外のフォーマットは 400 BAD_REQUEST を返します。
extension No 文字列 代替レポートコンテナを sdms-analytics-reports-<extension>として選択します。 小文字の英数字とハイフンのみで構成され、連続したハイフンは禁止、コンテナ名の合計は63文字を超えてはなりません。
  1. サブプロジェクトのレポートを一覧表示するには、サブプロジェクトのエンドポイントを呼び出します:

    GET https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/job/{subprojectid}?filter-date=2026-09
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    

    テナント全体のレポートをリストアップするには、テナント ルートを呼び出します:

    GET https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/tenant/job?filter-date=2026
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    
  2. レスポンスの報告ブロブパス一覧を確認してください:

    [
      "{subproject_name}/2026/09/15/{report_file_name}",
      "{subproject_name}/2026/09/22/{report_file_name}"
    ]
    

レスポンスには、選択したスコープと日付フィルターに一致するレポートのブロブパスが含まれています。 自分のニーズに合った最も具体的な filter-date を使って、返されるパスの数を減らしましょう。

SAS URL 付きのレポートをダウンロードしてください

レポートデータはサービスを通じて流れません。 代わりに、/connection-stringエンドポイントから短命なSAS認証情報を要求し、返されたSAS URLを使って、Azure Blob Storageからレポートのブロブを直接読み取る方法があります。 指定する filter-date はストレージ パスに付加されるため、より具体的な日付を指定すると、認証情報の対象はより狭い blob の範囲に限定されます。 また、前節で説明した extension パラメータを使って、代替レポートコンテナをターゲットにすることもできます。

  1. サブプロジェクトレポートのSAS URLを要求するには、サブプロジェクトルートを呼び出します:

    GET https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/job/{subprojectid}/connection-string?filter-date=2026-09-15
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    

    テナントレポートのSAS URLを要求するには、テナントルートを呼び出してください:

    GET https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/tenant/job/connection-string?filter-date=2026-09
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    
  2. 応答を確認します。 access_tokenにはSASのURLが含まれています:

    {
      "access_token": "https://<account>.blob.core.windows.net/sdms-analytics-reports/...&sig=...",
      "expires_in": 3599,
      "token_type": "SasUrl"
    }
    
  3. Azure Storage SDKまたはREST APIでSAS URLを使って、前述で選択したレポートパスをダウンロードしてください。

返されたSAS URLは選択したパスのレポート ブロブへの一時的なアクセスを提供し、1時間弱で期限切れになります。 URLは秘密として扱い、ログや永続化はせず、期限切れ後に新しいURLをリクエストしてください。

分析スケジュールを削除してください

その範囲で繰り返しレポートを生成したくない場合は、分析スケジュールを削除してください。

  1. サブプロジェクトスケジュールを削除するには、サブプロジェクトエンドポイントを呼び出してください:

    DELETE https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/job/{subprojectid}
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    

    テナントスケジュールを削除するには、テナント エンドポイントを呼び出してください:

    DELETE https://<instance>.energy.azure.com/seistore-svc/api/v3/analytics/tenant/job
    Authorization: Bearer {access_token}
    data-partition-id: {data_partition_id}
    
  2. リクエストが 200 OK を返すことを確認しましょう。 存在しないスケジュールを削除しても成功するため、操作は安全に再挑戦できます。

分析スケジュールは削除され、サービスはその範囲の定期的なレポートを生成しなくなりました。

リソースをクリーンアップする

このチュートリアルでは新しい Azure リソースはプロビジョニングされません。 今後レポートが生成されないようにするには、「分析スケジュールを削除する」に記載されているとおりに分析スケジュールを削除してください。