Поделиться через


Возможности REST API для конвейеров в Фабрике данных Fabric

Фабрика данных Fabric предлагает мощный набор API,которые упрощают автоматизацию конвейеров и управление ими. Вы можете подключаться к разным источникам данных и службам, а также создавать, обновлять или отслеживать рабочие процессы с помощью нескольких строк кода. API-интерфейсы охватывают все аспекты — от создания и редактирования конвейеров до их планирования и отслеживания, чтобы обеспечить бесперебойный поток данных без лишних хлопот.

Варианты использования API для конвейеров

API для конвейеров в Фабрике данных Fabric можно использовать в различных сценариях:

  • Автоматическое развертывание. Автоматизация развертывания конвейеров данных в разных средах (разработка, тестирование, производство) с помощью методик CI/CD.
  • Мониторинг и оповещения. Настройка автоматизированных систем мониторинга и оповещений для отслеживания состояния конвейеров данных и получения уведомлений о сбоях или проблемах с производительностью.
  • Интеграция данных: интеграция данных из нескольких источников, таких как базы данных, озера данных и облачные службы, в единый конвейер данных для обработки и анализа.
  • Обработка ошибок. Реализуйте пользовательские механизмы обработки ошибок и повторных попыток, чтобы обеспечить плавное выполнение конвейеров данных и восстановление после сбоев.

Общие сведения об API

Чтобы эффективно использовать API для конвейеров в Фабрике данных Fabric, важно понимать основные понятия и компоненты:

  • Конечные точки: конечные точки API предоставляют доступ к различным операциям конвейера, таким как создание, обновление и удаление конвейеров.
  • Проверка подлинности: безопасный доступ к API с помощью таких механизмов проверки подлинности, как OAuth или ключи API.
  • Запросы и ответы. Понимание структуры запросов и ответов API, включая необходимые параметры и ожидаемые выходные данные.
  • Ограничения скорости. Учитывайте ограничения скорости, введенные для использования API, чтобы избежать превышения допустимого количества запросов.

Поддержка CRUD

CRUD обозначает создание, чтение, обновление и удаление, которые являются четырьмя основными операциями, которые можно выполнять с данными. В Фабрике данных Fabric операции CRUD поддерживаются через API Fabric для фабрики данных. Эти API позволяют пользователям программно управлять конвейерами. Ниже приведены некоторые ключевые моменты поддержки CRUD:

  • Создать: Создайте новые потоки данных с помощью API. Это включает определение структуры конвейера, указание источников данных, преобразований и назначений.
  • Чтение: Получение сведений о существующих потоках данных. Сюда входят сведения о конфигурации, состоянии и журнале выполнения.
  • Обновление: обновление существующих конвейеров. Это может включать изменение структуры конвейера, изменение источников данных или обновление логики преобразования.
  • Удаление: удаление конвейеров, которые больше не нужны. Это помогает управлять ресурсами и очищать их.

Основную справочную документацию по REST API Microsoft Fabric можно найти в документации по REST API Microsoft Fabric.

Начало работы с REST API для конвейеров данных

В следующих примерах показано, как создавать, обновлять и управлять конвейерами с помощью API Фабрики данных Fabric.

Получение токена авторизации

Прежде чем использовать другие API REST, вам нужно получить токен доступа.

Это важно

В следующих примерах убедитесь, что слово "Носитель" (с пробелом) предшествует самому маркеру доступа. При использовании клиента API и выборе токена типа Bearer в качестве типа аутентификации, 'Bearer ' автоматически добавляется, и требуется предоставить только токен доступа.

Вариант 1. Использование MSAL.Net

Обратитесь к разделу "Получение токена" в кратком руководстве API Fabric, чтобы ознакомиться с примером получения токена авторизации MSAL.

Используйте MSAL.Net для получения токена Microsoft Entra ID для службы Fabric с следующими допусками: Workspace.ReadWrite.All, Item.ReadWrite.All. Дополнительные сведения о получении токенов с помощью MSAL.Net см. в статье «Получение токенов» — библиотека аутентификации Microsoft для .NET.

Скопируйте токен из свойства AccessToken и замените <заполнитель токена доступа> в следующих примерах токеном.

Вариант 2. Использование портала Fabric

Войдите на портал Fabric для арендатора, которого вы хотите протестировать, и нажмите клавишу F12, чтобы перейти в режим разработчика браузера. В консоли выполните следующие действия:

powerBIAccessToken

Скопируйте токен и замените заполнитель <access-token> в следующих примерах токеном.

Создание конвейера

Создайте конвейер в указанной рабочей области.

Пример запроса:

URI: POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items

Заголовки:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Наполнение:

{
  "displayName": "My pipeline",
  "description": "My pipeline description",
  "type": "pipeline"
}

Пример ответа:

{
    "id": "<artifactId>",
    "type": "pipeline",
    "displayName": "My pipeline",
    "description": "My pipeline description",
    "workspaceId": "<workspaceId>"
}

Создание конвейера с определением

Создайте конвейер с определением base64 в указанной рабочей области.

Пример запроса:

URI: POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items

Заголовки:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Наполнение:

{
  "displayName": " My pipeline",
  "description": "My pipeline description",

  "type": "pipeline",
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "<Your Base64 encoded JSON payload>"
        "payloadType": "InlineBase64" 
      } 
    ] 
  }
}

Пример ответа:

{
    "id": "<Your artifactId>",
    "type": "pipeline",
    "displayName": "My pipeline",
    "description": "My pipeline description",
    "workspaceId": "<Your workspaceId>"
}

Получить конвейер

Возвращает свойства указанного конвейера.

Пример запроса:

URI: GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

Заголовки:

{
  "Authorization": "Bearer <access-token>"
}

Пример ответа:

{
    "id": "<Your artifactId>",
    "type": "pipeline",
    "displayName": "My pipeline",
    "description": "My pipeline description",
    "workspaceId": "<Your workspaceId>"
}

Получить поток с определением

Возвращает определение элемента конвейера.

Пример запроса:

URI: POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/getDefinition

Заголовки:

{
  "Authorization": "Bearer <access-token>"
}

Пример ответа:

{
    "definition": {
        "parts": [
            {
                "path": "pipeline-content.json",
                "payload": "<Base64 encoded payload>"
                "payloadType": "InlineBase64"
            },
            {
                "path": ".platform",
                "payload": "<Base64 encoded payload>",
                "payloadType": "InlineBase64"
            }
        ]
    }
}

Обновление конвейера

Обновляет свойства конвейера.

Пример запроса:

URI: PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

Заголовки:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Наполнение:

{
  "displayName": "My pipeline updated",
  "description": "My pipeline description updated",
  "type": "pipeline"
}

Пример ответа:

{
    "id": "<Your artifactId>",
    "type": "pipeline",
    "displayName": "My pipeline updated",
    "description": "My pipeline description updated",
    "workspaceId": "<Your workspaceId>"
}

Обновление определения конвейера

Обновляет определение элемента конвейера.

Пример запроса:

URI: POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/updateDefinition

Заголовки:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Наполнение:

{
  "displayName": " My pipeline ",
  "type": "pipeline",
  "definition": {
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "<Your Base64 encoded payload>", 
        "payloadType": "InlineBase64" 
      }
    ]
  }
}

Пример ответа:

200 OK

Удаление конвейера

Удаляет указанный конвейер.

Пример запроса:

URI: DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

Заголовки:

{
  "Authorization": "Bearer <access-token>"
}

Пример ответа:

200 OK

Выполнение задания в конвейере по требованию

Выполняет экземпляр конвейерного задания по требованию.

Пример запроса:

URI: POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/jobs/instances?jobType=Pipeline

Заголовки:

{
  "Authorization": "Bearer <access-token>"
}

Наполнение:

{
    "executionData": {
        "pipelineName": "pipeline",
        "OwnerUserPrincipalName": "<[email protected]>",
        "OwnerUserObjectId": "<Your ObjectId>"
    }
}

Пример ответа:

202 Accepted

Получить экземпляр задачи конвейера

Возвращает экземпляр задания сингулярным конвейером.

Пример запроса:

URI: GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/jobs/instances/{jobInstanceId}

Заголовки:

{
  "Authorization": "Bearer <access-token>"
}

Пример ответа:

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

Отменить экземпляр конвейерного задания

Отменить выполнение задачи конвейера.

Пример запроса:

URI: POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/jobs/instances/{jobInstanceId}/cancel

Заголовки:

{
  "Authorization": "Bearer <access-token>"
}

Пример ответа:

* Расположение: https://api.fabric.microsoft.com/v1/workspaces/<worksapceId>/items/<itemId>/jobs/instances/<jobInstanceId>повторная попытка:60

Запуск активности запроса

Пример:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns

Тело:

{
  "filters":[],
  "orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
  "lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
  "lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}

Заметка

"Идентификатор задания" — это тот же идентификатор, который создается и используется в общедоступных API планировщика заданий

Ответ 200:

[
    {
        "pipelineName": "ca91f97e-5bdd-4fe1-b39a-1f134f26a701",
        "pipelineRunId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "activityName": "Wait1",
        "activityType": "Wait",
        "activityRunId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
        "linkedServiceName": "",
        "status": "Succeeded",
        "activityRunStart": "2024-05-23T13:43:03.6397566Z",
        "activityRunEnd": "2024-05-23T13:43:31.3906179Z",
        "durationInMs": 27750,
        "input": {
            "waitTimeInSeconds": 27
        },
        "output": {},
        "error": {
            "errorCode": "",
            "message": "",
            "failureType": "",
            "target": "Wait1",
            "details": ""
        },
        "retryAttempt": null,
        "iterationHash": "",
        "userProperties": {},
        "recoveryStatus": "None",
        "integrationRuntimeNames": null,
        "executionDetails": null,
        "id": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/pipelineruns/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/activityruns/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a"
    }
]

Поддержка имени служебного принципала (SPN)

Имя субъекта-службы (SPN) — это функция идентификации безопасности, используемая приложениями или службами для доступа к определенным ресурсам. В Фабрике данных Fabric поддержка учетной записи службы критически важна для обеспечения безопасного и автоматического доступа к источникам данных. Ниже приведены некоторые ключевые моменты поддержки SPN:

  • Аутентификация: SPN используются для проверки подлинности приложений или служб при доступе к источникам данных. Это гарантирует, что только авторизованные сущности могут получить доступ к данным.
  • Конфигурация: Чтобы использовать SPNs, необходимо создать учетную запись службы в Azure и предоставить ей необходимые разрешения для доступа к источнику данных. Например, если вы используете хранилище данных, служебному принципалу необходим доступ на чтение данных из BLOB-объектов в хранилище.
  • Подключение: При настройке подключения к данным в Fabric Data Factory можно выбрать аутентификацию через сервисный принципал. Это включает в себя предоставление идентификатора арендатора, идентификатора клиента и секрета клиента служебного принципала.
  • Безопасность: Использование SPN повышает безопасность, избегая использования жестко закодированных учетных данных в процессе передачи данных. Кроме того, он обеспечивает более эффективное управление разрешениями доступа и аудит действий доступа.

Дополнительные сведения о настройке и использовании SPN в Fabric Data Factory см. в разделе "Поддержка SPN в Data Factory".

Текущие ограничения

  • Ограничение ЗАДАНИЯ: API запуска можно вызвать, но фактический запуск никогда не удается (так же, как при запуске/обновлении через пользовательский интерфейс).
  • Элементы, отличные от Power BI Fabric: рабочая область должна размещаться в поддерживаемой емкости Fabric.
  • Создание элемента: используйте creationPayload или определение, но не используйте оба одновременно.

Дополнительные сведения о REST API для конвейеров данных в Фабрике данных Fabric см. в следующем содержимом:

Документация

Обучающие материалы