Microsoft Fabric REST APIは、プログラマティックにマテリアライズドレイクビュー(MLV)を管理・更新することを可能にします。 系譜の更新操作を自動化し、他のツールやシステムと統合できます。
[前提条件]
具体化されたレイク ビュー REST API を使用する前に、次の前提条件を満たす必要があります。
- 適切なIDでMicrosoft Entra IDでアプリケーションを登録します。 適切な スコープ を持つアクセストークンを取得し、すべてのリクエストの
Authorizationヘッダーに渡します。 -
{WORKSPACE_ID}や{LAKEHOUSE_ID}などのプレースホルダーは適切なWorkspaceIdとLakehouseIdに置き換えてください。 これらの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をリフレッシュ(デフォルト)
ユースケース2:特定の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 が キャンセル されたと表示される)とは異なる場合があります。
- リフレッシュ制限: リフレッシュ制約については、 権限と制限を参照してください。