Edit

Share via


Manage and refresh materialized lake views in Fabric with APIs

Microsoft Fabric REST APIs provide service endpoints to manage Fabric items. This article describes the public REST APIs available for materialized lake views and how to use them.

Note

Materialized lake views are currently in preview. Materialized lake views are currently not available in the South Central US region.

With materialized lake view APIs, data engineers and citizen developers can automate lineage operations and integrate them with other tools and systems.

The following job scheduler actions are available for materialized lake views with user authentication.

Action Description
Create Item Schedule Create a new schedule to refresh materialized lake views lineage in a lakehouse.
Get Item Schedule Get details for an existing schedule to refresh materialized lake views lineage in a lakehouse.
List Item Schedules List schedules created for refresh of materialized lake views lineage in a lakehouse.
Update Item Schedule Update an existing schedule for refreshing materialized lake views lineage.
Delete Item Schedule Delete a schedule for refresh of materialized lake views lineage in a lakehouse.
Run On Demand Item Job Refresh materialized lake views lineage in a lakehouse as an on-demand job.
List Item Job Instances List all job instances created for refresh of materialized lake views lineage in a lakehouse.
Get Item Job Instance Get details for a completed materialized lake views lineage refresh in a lakehouse, such as status.
Cancel Item Job Instance Cancel an ongoing materialized lake views lineage refresh in a lakehouse.

For more information, see job scheduler with {jobType} as 'RefreshMaterializedLakeViews'.

Note

These scenarios cover usage examples specific to materialized lake views. Examples for common Fabric item APIs aren't included.

Prerequisites

Before you use the materialized lake views REST APIs, complete these prerequisites:

Examples of REST API usage with materialized lake views

Use the following Fabric REST APIs to schedule, run, retrieve, and manage refresh jobs and schedules for materialized lake views lineage in a lakehouse. Each example shows the HTTP method, endpoint URL, and sample request/response payloads.

Create Schedule for MLV in Lakehouse

Create a new schedule to periodically refresh materialized lake views lineage in a lakehouse. For more information, see job scheduler. Currently, materialized lake views support only one active refresh schedule per lineage. Use Update Schedule to update an existing schedule.

Sample request:

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
  }
}

Sample response:

Status code: 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"
  }
}

Get Schedule for MLV in Lakehouse

Get details of an existing materialized lake views lineage refresh schedule in a lakehouse. For more information, see job scheduler.

Sample request:

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

Sample response:

Status code: 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
  },
  "owner": {
    "id": "<ownerId>",
    "type": "User"
  }
}

List Schedules for MLV in Lakehouse

List all refresh schedules created for materialized lake views lineage in a lakehouse. For more information, see job scheduler.

Sample request:

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

Sample response:

Status code: 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"
      }
    }
  ]
}

Update Schedule for MLV in Lakehouse

Update an existing refresh schedule for materialized lake views lineage in a lakehouse. For more information, see job scheduler. Currently, materialized lake views support only one active schedule per lineage.

Sample request:

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
  }
}

Sample response:

Status code: 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
  },
  "owner": {
    "id": "<ownerId>",
    "type": "User"
  }
}

Delete Schedule for MLV in Lakehouse

Delete an existing refresh schedule for materialized lake views lineage in a lakehouse. For more information, see job scheduler.

Sample request:

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

Sample response:

Status code: 200 OK

Run On Demand Job for MLV in Lakehouse

Trigger an immediate refresh of materialized lake views lineage in a lakehouse using an on-demand job. The Spark job starts executing after a successful request. For more information, see job scheduler.

Sample request:

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

Note

Official Job Scheduler documentation supports a {jobType} path parameter for run-on-demand requests. The API maintains query-parameter jobType patterns for backward compatibility.

Sample response:

Status code: 202 Accepted

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

With location, you can use Get Item Job Instance to view job status or use Cancel Item Job Instance to cancel the current lineage run.

List Job Instances for MLV in Lakehouse

List job instances executed for materialized lake views lineage refresh in a lakehouse. For more information, see job scheduler. The job status returned reflects the status shown in Monitoring hub.

Sample request:

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

Sample response:

Status code: 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
    }
  ]
}

Get job instance details for MLV in Lakehouse

Get execution details such as status and ID for a specific materialized lake views lineage refresh job instance in a lakehouse. For more information, see job scheduler. The job status returned reflects the status shown in Monitoring hub.

Sample request:

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

Sample response:

Status code: 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
}

Cancel Job Instance for MLV in Lakehouse

Cancel an ongoing materialized lake views lineage refresh job in a lakehouse. For more information, see job scheduler.

Sample request:

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

Sample response:

Status code: 202 Accepted

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

Known limitations

The following limitations apply to the materialized lake views REST APIs:

  • Service principal authentication: Materialized lake views (MLV) don't support authentication through service principals.
  • Schedule limits per lakehouse: The job scheduler enforces limits on how many schedules can be configured per lakehouse.
  • Single schedule per lineage: MLV supports only one active refresh schedule per lineage. Creating more than one refresh schedule for a lineage might cause UI instability.
  • Job status display: The status returned by list item job instances and get item job instance reflects Monitoring hub status. It might differ from materialized lake views run history status (for example, Skipped can appear as Canceled in Monitoring hub).
  • Entity display limits: The job scheduler interface displays a limited number of completed and active jobs, which can affect visibility into historical or concurrent executions.