教學:將地震資料集還原到先前的某個時間點

Important

此功能目前處於預覽階段,並可依需求在標準 SKU 上使用。 要啟用它,請建立一個 Azure 支援 請求。 關於說明,請參見「我該如何提出 Azure 能源資料管理員的支援請求?」請參閱 Microsoft Azure 預覽補充使用條款,了解適用於 beta、預覽或尚未正式發布的 Azure 功能。

在 Azure Data Manager for Energy 中使用地震 DDMS 還原操作,將一個地震資料集恢復到較早的時間點。 這個操作會將資料集的元資料及其相關的 blob 資料恢復到你指定的時間戳記時存在的狀態。 此操作能協助在非預期更新或刪除後恢復資料集,前提是該版本仍在固定的 30 天保留期內可用。

在這個教學中,你會學到如何:

  • 選擇一個有效的還原點
  • 對單一資料集啟動還原操作
  • 監控還原操作狀態
  • 了解恢復限制

Prerequisites

開始之前,請確定您符合下列必要條件:

  • 一個啟用 Seismic DDMS 還原預覽的 Azure Data Manager for Energy Standard SKU 資源。
  • 在 Seismic DDMS 服務中已註冊的 tenant 和 subproject。
  • 分配給你使用者帳號的 subproject.admin 角色。
  • API 認證的承載憑證。 請參考 如何產生認證令牌。
  • 你 sdPath 想要恢復的地震資料集。
  • 在固定的 30 天保留期內還原點。 保留期限無法設定。

還原 API 操作

還原工作流程使用兩種 API 操作:

運算 方法與終點 Purpose
開始還原 POST /seistore-svc/api/v3/operation/restore 開始對由 識別 sdPath的資料集進行非同步還原。 請求體包含 restorePointInTime,指定要還原的歷史狀態。
取得恢復狀態 GET /seistore-svc/api/v3/operation/restore/{operation_id} 回傳還原的當前狀態。 使用 operation_id 啟動時返回的操作。

選擇還原點

該 restorePointInTime 值用以識別要恢復的狀態。 例如,將值指定為 ISO 8601 UTC 時間戳記。 2026-07-10T08:30:00.000Z

還原點必須符合以下所有要求:

  • 那已經是過去的事了。
  • 這是在固定的 30 天恢復保留期內。
  • 這比資料集建立時間晚。

請選擇在非預期更新或刪除前立即設定時間戳記。 還原狀態不包含選定時間戳後資料集的任何變更。

啟動還原操作

在提交請求前,先停止對資料集的寫入和刪除操作。 還原操作會鎖定資料集,同時還原元資料和 blob 資料。

  1. 向還原端點提交 POST 請求。 必須 sdPath 識別一個資料集,而非目錄:

    POST <instance>.energy.azure.com/seistore-svc/api/v3/operation/restore
    Authorization: Bearer <access_token>
    data-partition-id: <data_partition_id>
    Content-Type: application/json
    
    {
      "sdPath": "sd://<tenant>/<subproject>/<path>/<dataset_name>",
      "restorePointInTime": "2026-07-10T08:30:00.000Z"
    }
    
  2. 請將回覆中的 202 Accepted or statusUrl 保留operation_id。 你需要以下其中一個值來監控操作:

    {
      "operation_id": "c3d282e6-e7d1-40d8-8ac2-edc15b6d174c",
      "statusUrl": "/seistore-svc/api/v3/operation/restore/c3d282e6-e7d1-40d8-8ac2-edc15b6d174c"
    }
    

Note

回應 202 Accepted 表示請求通過初始驗證並被排隊。 這並不代表還原成功完成。 持續輪詢狀態端點,直到操作達到終端狀態。

監控還原操作

輪詢狀態端點以追蹤非同步還原。

  1. 請發送包含以下內容 operation_id的 GET 申請:

    GET <instance>.energy.azure.com/seistore-svc/api/v3/operation/restore/<operation_id>
    Authorization: Bearer <access_token>
    data-partition-id: <data_partition_id>
    
  2. 請檢查 status 回覆中的欄位。 操作可以進行到終 Enqueued 點狀態,甚至 InProgress 在達到終端狀態之前。

    {
      "operationId": "c3d282e6-e7d1-40d8-8ac2-edc15b6d174c",
      "status": "InProgress",
      "sdPath": "sd://opendes/test-subproject/surveys/dataset1",
      "restorePointInTime": "2026-07-10T08:30:00.000Z",
      "tenant": "opendes",
      "subproject": "test-subproject",
      "createdBy": "00000000-0000-0000-0000-000000000000",
      "startedAt": "2026-07-15T10:00:00.000Z",
      "lastUpdatedAt": "2026-07-15T10:00:05.000Z"
    }
    
  3. 停止輪詢時 status 是以下終端值之一:

    現況 說明
    Succeeded 資料集的元資料和 blob 資料會被還原到選定的時間點。
    Failed 還原開始了,但無法完成。 為這個原因做檢討 errorDetails 。
    Rejected 例如,服務無法啟動還原,例如資料集被鎖定或沒有可還原的狀態。 為這個原因做檢討 errorDetails 。

    以下範例展示了被拒絕的還原:

    {
      "operationId": "c3d282e6-e7d1-40d8-8ac2-edc15b6d174c",
      "status": "Rejected",
      "sdPath": "sd://opendes/test-subproject/surveys/dataset1",
      "restorePointInTime": "2026-07-10T08:30:00.000Z",
      "createdBy": "00000000-0000-0000-0000-000000000000",
      "errorDetails": "Restore rejected: the dataset is currently locked by another in-progress write operation. Wait for that operation to finish and release the lock, then retry this restore.",
      "lastUpdatedAt": "2026-07-15T10:00:07.000Z",
      "completedAt": "2026-07-15T10:00:07.000Z"
    }
    

操作成功後,取回或下載資料集,確認其元資料與內容是否符合預期狀態。

限制與考量

在啟動恢復前,請考慮以下限制事項:

  • 僅單一資料集——每次請求還原一個資料集。 你無法指定目錄、還原路徑下的每個資料集,或一次提交多個資料集。
  • 固定保留期限適用——你無法在 30 天保留期之外恢復到時間戳記。 保留期限無法設定,也無法在請求中覆寫。
  • 每個資料分割區一次還原——同一資料分割區同時只能執行一次還原操作,即使其他請求針對不同的資料集。 同時請求返回 409 Conflict。
  • 還原是非同步的——回應 202 Accepted 不代表成功。 你必須輪詢狀態端點。
  • 寫入必須暫停——主動寫入鎖可能導致操作被拒絕。 在還原達到終端狀態前,不要更新或刪除資料集。
  • 目前狀態會被替換——成功還原後,所選的歷史版本即為目前資料集狀態。 還原點之後的更新在還原後的版本中並不存在。
  • 功能可用性有限——還原操作是預覽功能,必須啟用於標準 SKU 實例。 如果沒有啟用,服務就會回傳 403 Forbidden。

清理資源

這個教學不會建立任何可計費的 Azure 資源。 如果你為了測試做了還原,請在繼續寫入操作前先驗證資料集狀態。