API を使用して Fabric の具体化されたレイク ビューを管理および更新する

Microsoft Fabric REST APIは、プログラマティックにマテリアライズドレイクビュー(MLV)を管理・更新することを可能にします。 系譜の更新操作を自動化し、他のツールやシステムと統合できます。

[前提条件]

具体化されたレイク ビュー REST API を使用する前に、次の前提条件を満たす必要があります。

  • 適切なIDMicrosoft Entra IDでアプリケーションを登録します。 適切な スコープ を持つアクセストークンを取得し、すべてのリクエストの Authorization ヘッダーに渡します。
  • {WORKSPACE_ID}{LAKEHOUSE_ID}などのプレースホルダーは適切なWorkspaceIdLakehouseIdに置き換えてください。 これらのIDを見つけるには、Fabricポータルで湖の家を開いてください。URLにはhttps://app.fabric.microsoft.com/groups/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}が含まれています。 あるいは、Fabric REST APIを使ってワークスペースやレイクハウスをリストアップし、プログラム的にアクセスすることもできます。

以下の ジョブスケジューラー アクションは、実体化した湖のビューに対して利用可能です。

アクション Description
MLVの更新スケジュールを作成する MLVの定期的な更新スケジュールを作成しましょう。
MLVのスケジュールを入手 既存のリフレッシュスケジュールの詳細を入手しましょう。
MLVのスケジュール一覧 すべての更新スケジュールをリストアップしてください。
MLVの更新スケジュール 既存の更新スケジュールを更新してください。
MLVのリフレッシュスケジュールを削除 リフレッシュスケジュールを削除してください。
MLV向けのRun On Demand Refresh MLVを即座に更新してください。
MLVのジョブインスタンス一覧 すべてのジョブ刷新インスタンスをリストアップしてください。
MLVのジョブインスタンス詳細を取得する 特定のリフレッシュジョブの詳細、例えばステータスを取得しましょう。
MLVのジョブインスタンスをキャンセルする 進行中のリフレッシュジョブをキャンセルしてください。

詳細は ジョブスケジューラーをご覧ください。 {item} がLakehouse、 {jobType}RefreshMaterializedLakeViewsです。

MLV実行定義は、どの実体化された湖のビューをリフレッシュするか、どの上流のレイクハウスを含めるか、どのリフレッシュモードとSpark環境を使うかを指定する保存済みの設定です。 これは、独立してリフレッシュ可能な 系譜 のサブセットを定義します。

MLV実行定義のために利用可能なアクションは以下の通りです。

アクション Description
MLV実行定義を作成する 新しいMLV実行定義を作成します。
MLV実行定義一覧 すべてのMLV実行定義を一覧にしてください。
MLV実行定義を取得する 既存のMLV実行定義の詳細を取得しましょう。
MLV実行定義の更新 既存のMLV実行定義を更新します。
MLV実行定義を削除 MLV実行定義を削除してください。

詳細は「 実体化した湖の眺め」をご覧ください。

以下の図は、MLV実行定義の有無にかかわらず、物質化された湖のビューをリフレッシュする方法を示しています。

ユースケース1:レイクハウス内のすべてのMLVをリフレッシュ(デフォルト)

すべてのMLVの更新用のシーケンス図のスクリーンショットです。

ユースケース2:特定のMLVや系譜の一部を更新する

特定のMLVの更新用のシーケンス図のスクリーンショットです。

これらのシナリオでは、具体化された湖のビューに固有の使用例について説明します。 一般的な Fabric 項目 API の例は含まれません。

APIを使った物質化された湖ビューの刷新例

各例では、HTTP メソッド、エンドポイント URL、サンプルの要求/応答ペイロードを示します。

MLVの更新スケジュールを作成する

定期的な系譜更新のスケジュールを作成しましょう。 系譜の一部だけを更新するには、 executionDataに「mlvExecutionDefinitionId」を提供します。 詳細については、「 Refresh Materialized Lake View Schedule 」および「 Get MLV Execution Definition」をご覧ください。

MLV実行定義なしのサンプルリクエスト:

POST https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules

{
  "enabled": true,
  "configuration": {
    "startDateTime": "YYYY-MM-DDTHH:mm:ss",
    "endDateTime": "YYYY-MM-DDTHH:mm:ss",
    "localTimeZoneId": "Central Standard Time",
    "type": "Cron",
    "interval": 10
  }
}

MLV実行定義付きのサンプルリクエスト:

POST https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules

{
  "enabled": true,
  "configuration": {
    "startDateTime": "YYYY-MM-DDTHH:mm:ss",
    "endDateTime": "YYYY-MM-DDTHH:mm:ss",
    "localTimeZoneId": "Central Standard Time",
    "type": "Cron",
    "interval": 10
  },
  "executionData": {
    "mlvExecutionDefinitionId": "<mlvExecutionDefinitionId>"
  }
}

応答の例:

状態コード: 201 Created

Location: https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules/<scheduleId>
{
  "id": "<scheduleId>",
  "enabled": true,
  "createdDateTime": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "configuration": {
    "startDateTime": "YYYY-MM-DDTHH:mm:ss",
    "endDateTime": "YYYY-MM-DDTHH:mm:ss",
    "localTimeZoneId": "Central Standard Time",
    "type": "Cron",
    "interval": 10
  },
  "owner": {
    "id": "<ownerId>",
    "type": "User"
  }
}

MLVのスケジュールを入手

既存のリフレッシュスケジュールの詳細を入手しましょう。 詳細については、Lakehouseを{item}{jobType}にしたRefreshMaterializedLakeViewsをご覧ください。

要求のサンプル:

GET https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules/{scheduleId}

応答の例:

状態コード: 200 OK

{
  "id": "<scheduleId>",
  "enabled": true,
  "createdDateTime": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "configuration": {
    "startDateTime": "YYYY-MM-DDTHH:mm:ss",
    "endDateTime": "YYYY-MM-DDTHH:mm:ss",
    "localTimeZoneId": "Central Standard Time",
    "type": "Cron",
    "interval": 10
  },
  "executionData": {
    "mlvExecutionDefinitionId": "<mlvExecutionDefinitionId>"
  },
  "owner": {
    "id": "<ownerId>",
    "type": "User"
  }
}

MLVのスケジュール一覧

すべての更新スケジュールをリストアップしてください。 詳細については、を湖の家、{item}{jobType}とするRefreshMaterializedLakeViewsスケジュールをご覧ください。

要求のサンプル:

GET https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules

応答の例:

状態コード: 200 OK

{
  "value": [
    {
      "id": "<scheduleId_1>",
      "enabled": true,
      "createdDateTime": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
      "configuration": {
        "startDateTime": "YYYY-MM-DDTHH:mm:ss",
        "endDateTime": "YYYY-MM-DDTHH:mm:ss",
        "localTimeZoneId": "Central Standard Time",
        "type": "Weekly",
        "weekdays": [
          "Monday",
          "Tuesday"
        ],
        "times": [
          "HH:mm",
          "HH:mm"
        ]
      },
      "owner": {
        "id": "<ownerId>",
        "type": "User"
      }
    },
    {
      "id": "<scheduleId_2>",
      "enabled": true,
      "createdDateTime": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
      "configuration": {
        "startDateTime": "YYYY-MM-DDTHH:mm:ss",
        "endDateTime": "YYYY-MM-DDTHH:mm:ss",
        "localTimeZoneId": "Central Standard Time",
        "type": "Daily",
        "times": [
          "HH:mm",
          "HH:mm"
        ]
      },
      "owner": {
        "id": "<ownerId>",
        "type": "User"
      }
    }
  ]
}

MLVの更新スケジュール

既存の更新スケジュールを更新してください。 詳細は「 Materialized Lake View Scheduleの更新」をご覧ください。

要求のサンプル:

PATCH https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules/{scheduleId}

{
  "enabled": true,
  "configuration": {
    "startDateTime": "YYYY-MM-DDTHH:mm:ss",
    "endDateTime": "YYYY-MM-DDTHH:mm:ss",
    "localTimeZoneId": "Central Standard Time",
    "type": "Cron",
    "interval": 10
  },
  "executionData": {
    "mlvExecutionDefinitionId": "<mlvExecutionDefinitionId>"
  }
}

応答の例:

状態コード: 200 OK

{
  "id": "<scheduleId>",
  "enabled": true,
  "createdDateTime": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "configuration": {
    "startDateTime": "YYYY-MM-DDTHH:mm:ss",
    "endDateTime": "YYYY-MM-DDTHH:mm:ss",
    "localTimeZoneId": "Central Standard Time",
    "type": "Cron",
    "interval": 10
  },
  "executionData": {
    "mlvExecutionDefinitionId": "<mlvExecutionDefinitionId>"
  },
  "owner": {
    "id": "<ownerId>",
    "type": "User"
  }
}

MLVのリフレッシュスケジュールを削除

リフレッシュスケジュールを削除してください。 詳細については、「 Delete Refresh Materialized Lake View Schedule」をご覧ください。

要求のサンプル:

DELETE https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/schedules/{scheduleId}

応答の例:

状態コード: 200 OK

MLV向けのRun On Demand Refresh

すぐに血統の更新を実行してください。 系譜の一部だけを更新するには、 executionDataに「mlvExecutionDefinitionId」を提供します。 詳細については、「 Run On Demand Refresh Materialized Lake Views 」および「 Get MLV Execution Definition」をご覧ください。

MLV実行定義なしのサンプルリクエスト:

POST https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/instances

MLV実行定義付きのサンプルリクエスト:

POST https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/instances

{
  "executionData": {
    "mlvExecutionDefinitionId": "<mlvExecutionDefinitionId>"
  }
}

応答の例:

状態コード: 202 承認されました

Location: https://api.fabric.microsoft.com/v1/workspaces/<WORKSPACE_ID>/lakehouses/<LAKEHOUSE_ID>/jobs/instances/<jobInstanceId>
Retry-After: 60

Locationヘッダーを使うと、ジョブステータスを確認するために「アイテムジョブインスタンスを取得」や「アイテムジョブインスタンスのキャンセル」で実行をキャンセルできます。

MLVのジョブインスタンス一覧

すべてのジョブ刷新インスタンスをリストアップしてください。 詳細については、Lakehouseおよび{item}として{jobType}したRefreshMaterializedLakeViewsをご覧ください。 ジョブステータスはMonitorハブのステータスを反映しています。

要求のサンプル:

GET https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/RefreshMaterializedLakeViews/instances

応答の例:

状態コード: 200 OK

{
  "value": [
    {
      "id": "<jobInstanceId_1>",
      "itemId": "<LAKEHOUSE_ID>",
      "jobType": "RefreshMaterializedLakeViews",
      "invokeType": "Manual",
      "status": "<status>",
      "rootActivityId": "<rootActivityId_1>",
      "startTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
      "endTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
      "failureReason": null
    },
    {
      "id": "<jobInstanceId_2>",
      "itemId": "<LAKEHOUSE_ID>",
      "jobType": "RefreshMaterializedLakeViews",
      "invokeType": "Scheduled",
      "status": "<status>",
      "rootActivityId": "rootActivityId_2",
      "startTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
      "endTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
      "failureReason": null
    }
  ]
}

MLVのジョブインスタンス詳細を取得する

特定のリフレッシュジョブインスタンスのステータスと詳細を取得しましょう。 詳細については、「Lakehouseでアイテム{item}を取得する」をご覧ください。 ジョブステータスはMonitorハブのステータスを反映しています。

要求のサンプル:

GET https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/instances/{jobInstanceId}

応答の例:

状態コード: 200 OK

{
  "id": "<id>",
  "itemId": "<itemId>",
  "jobType": "RefreshMaterializedLakeViews",
  "invokeType": "<invokeType>",
  "status": "<status>",
  "rootActivityId": "<rootActivityId>",
  "startTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "endTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "failureReason": null
}

MLVのジョブインスタンスをキャンセルする

進行中のリフレッシュジョブをキャンセルしてください。 詳細については、「Lakehouseとしてアイテム{item}する」をご覧ください。

要求のサンプル:

POST https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/jobs/instances/{jobInstanceId}/cancel

応答の例:

状態コード: 202 承認されました

Location: https://api.fabric.microsoft.com/v1/workspaces/<WORKSPACE_ID>/lakehouses/<LAKEHOUSE_ID>/jobs/instances/<jobInstanceId>
Retry-After: 60

MLV実行定義APIの使用例

各例では、HTTP メソッド、エンドポイント URL、サンプルの要求/応答ペイロードを示します。

MLV実行定義を作成する

新しいMLV実行定義を作成し、どのMLVや上流の湖のハウスを含めるか、リフレッシュモードとSpark環境を指定します。 詳細については、「 マルチラベル実行定義の作成」をご覧ください。

要求のサンプル:

POST https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/mlvexecutiondefinitions

{
  "displayName": "Gold Chain – Sales",
  "description": "Nightly refresh for the Sales gold-layer views",
  "settings": {
    "environment": {
      "referenceType": "ById",
      "itemId": "<ENVIRONMENT_ID>",
      "workspaceId": "<ENVIRONMENT_WORKSPACE_ID>"
    },
    "refreshMode": "Optimal"
  },
  "currentLakehouseExecutionContext": {
    "mode": "Selected",
    "selectedMlvs": [
      "dbo.gold_sales_summary",
      "dbo.gold_sales_daily"
    ]
  },
  "extendedLineageExecutionContext": {
    "mode": "All"
  }
}

応答の例:

状態コード: 201 Created

Location: https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/mlvexecutiondefinitions/<mlvExecutionDefinitionId>
{
  "id": "<mlvExecutionDefinitionId>",
  "displayName": "Gold Chain – Sales",
  "description": "Nightly refresh for the Sales gold-layer views",
  "settings": {
    "environment": {
      "referenceType": "ById",
      "itemId": "<ENVIRONMENT_ID>",
      "workspaceId": "<ENVIRONMENT_WORKSPACE_ID>"
    },
    "refreshMode": "Optimal"
  },
  "currentLakehouseExecutionContext": {
    "mode": "Selected",
    "selectedMlvs": [
      "dbo.gold_sales_summary",
      "dbo.gold_sales_daily"
    ]
  },
  "extendedLineageExecutionContext": {
    "mode": "All"
  }
}

MLV実行定義一覧

すべてのMLV実行定義を一覧にしてください。 詳細については、 List Mlv実行定義を参照してください。

要求のサンプル:

GET https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/mlvexecutiondefinitions

応答の例:

状態コード: 200 OK

{
  "value": [
    {
      "id": "<mlvExecutionDefinitionId_1>",
      "displayName": "Gold Chain – Sales",
      "description": "Nightly refresh for the Sales gold-layer views",
      "settings": {
        "environment": {
          "referenceType": "ById",
          "itemId": "<ENVIRONMENT_ID>",
          "workspaceId": "<ENVIRONMENT_WORKSPACE_ID>"
        },
        "refreshMode": "Optimal"
      },
      "currentLakehouseExecutionContext": {
        "mode": "Selected",
        "selectedMlvs": [
          "dbo.gold_sales_summary",
          "dbo.gold_sales_daily"
        ]
      },
      "extendedLineageExecutionContext": {
        "mode": "All"
      }
    },
    {
      "id": "<mlvExecutionDefinitionId_2>",
      "displayName": "Silver Chain – Customers",
      "currentLakehouseExecutionContext": {
        "mode": "All"
      }
    }
  ]
}

MLV実行定義を取得する

既存のMLV実行定義の詳細を入手してください。更新すべきMLV、含まれる上流のレイクハウス、リフレッシュモード、Spark環境などです。 詳細は「 Mlv実行定義を取得する」をご覧ください。

要求のサンプル:

GET https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/mlvexecutiondefinitions/{mlvExecutionDefinitionId}

応答の例:

状態コード: 200 OK

{
  "id": "<mlvExecutionDefinitionId>",
  "displayName": "Gold Chain – Sales",
  "description": "Nightly refresh for the Sales gold-layer views",
  "settings": {
    "environment": {
      "referenceType": "ById",
      "itemId": "<ENVIRONMENT_ID>",
      "workspaceId": "<ENVIRONMENT_WORKSPACE_ID>"
    },
    "refreshMode": "Optimal"
  },
  "currentLakehouseExecutionContext": {
    "mode": "Selected",
    "selectedMlvs": [
      "dbo.gold_sales_summary",
      "dbo.gold_sales_daily"
    ]
  },
  "extendedLineageExecutionContext": {
    "mode": "All"
  }
}

MLV実行定義の更新

既存のMLV実行定義を更新します。 要求本文で指定されたフィールドのみが更新されます。省略されたフィールドは、既存の値を保持します。 詳細は「 Update Mlv Execution Definition(マルチラベル実行定義更新)」をご覧ください。

要求のサンプル:

PATCH https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/mlvexecutiondefinitions/{mlvExecutionDefinitionId}

{
  "displayName": "Updated Gold Chain – Sales",
  "settings": {
    "refreshMode": "Full"
  },
  "currentLakehouseExecutionContext": {
    "mode": "All"
  },
  "extendedLineageExecutionContext": {
    "mode": "Selected",
    "selectedLakehouses": [
      {
        "referenceType": "ById",
        "itemId": "<UPSTREAM_LAKEHOUSE_ID>",
        "workspaceId": "<UPSTREAM_WORKSPACE_ID>"
      }
    ]
  }
}

応答の例:

状態コード: 200 OK

{
  "id": "<mlvExecutionDefinitionId>",
  "displayName": "Updated Gold Chain – Sales",
  "description": "Nightly refresh for the Sales gold-layer views",
  "settings": {
    "environment": {
      "referenceType": "ById",
      "itemId": "<ENVIRONMENT_ID>",
      "workspaceId": "<ENVIRONMENT_WORKSPACE_ID>"
    },
    "refreshMode": "Full"
  },
  "currentLakehouseExecutionContext": {
    "mode": "All"
  },
  "extendedLineageExecutionContext": {
    "mode": "Selected",
    "selectedLakehouses": [
      {
        "referenceType": "ById",
        "itemId": "<UPSTREAM_LAKEHOUSE_ID>",
        "workspaceId": "<UPSTREAM_WORKSPACE_ID>"
      }
    ]
  }
}

MLV実行定義を削除

MLV実行定義を削除してください。 それに紐づいたスケジュールも削除されます。 詳細は「 Delete Mlv Execution Definition」をご覧ください。

要求のサンプル:

DELETE https://api.fabric.microsoft.com/v1/workspaces/{WORKSPACE_ID}/lakehouses/{LAKEHOUSE_ID}/mlvexecutiondefinitions/{mlvExecutionDefinitionId}

応答の例:

状態コード: 200 OK

既知の制限事項

具体化されたレイク ビュー REST API には、次の制限事項が適用されます。

  • ジョブスケジューラAPIの限界:
    • ジョブスケジューラーは、1つのレイクハウスで設定できるスケジュール数の制限を強制します。
    • ジョブスケジューラAPIは完了済みおよびアクティブなジョブ数に限られており、これが過去または同時実行の可視性に影響を与えることがあります。
    • FabricのパブリックAPIの制限は、Materialized Lake View APIにも適用されます。
  • 求人状況表示:リストアイテムジョブインスタンスget item jobインスタンスから返されるステータスは、Monitorハブのステータスを反映しています。 これは、Materialized Lake Views のラン履歴 ステータス(例えば、 MonitorhubでSkippedキャンセル されたと表示される)とは異なる場合があります。
  • リフレッシュ制限: リフレッシュ制約については、 権限と制限を参照してください。