다음을 통해 공유


Microsoft Fabric 데이터 파이프라인 공용 REST API(프리뷰)

Important

Data Factory용 Microsoft Fabric API는 현재 공개 미리 보기로 제공됩니다. 이 정보는 릴리스하기 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보와 관련하여 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다.

Microsoft Fabric에서 Data Factory API는 파이프라인 및 데이터 흐름에 대한 CRUD 작업으로만 구성됩니다. 현재는 데이터 파이프라인만 지원됩니다. 데이터 흐름 API는 아직 사용할 수 없습니다. 데이터 통합 프로젝트에 대한 다른 공통 영역은 별도의 API에 있습니다. 일정, 모니터링, 연결은 패브릭에 자체 API가 있습니다. Microsoft Fabric REST API에 대한 기본 온라인 참조 설명서는 Microsoft Fabric REST API 참조에서 찾을 수 있습니다. 또한 핵심 항목 APIJob Scheduler를 참조하세요.

payload base64가 인코딩된 항목 정의

  • Base64 인코딩 및 디코딩을 사용하여 JSON을 인코딩합니다.
  • URL 안전 인코딩 수행 상자가 선택되어 있지 않은지 확인합니다.
  • 패브릭 사용자 인터페이스에서 보기 -->JSON 코드 보기 탭을 통해 파이프라인 정의를 가져올 수 있습니다.
{ 
    "name": "Pipeline_1_updated", 
    "objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "properties": { 
        "description": "this is the description", 
        "activities": [ 
            { 
                "name": "Wait1", 
                "type": "Wait", 
                "dependsOn": [], 
                "typeProperties": { 
                    "waitTimeInSeconds": 240 
                } 
            } 
        ], 
        "annotations": [], 
        "lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
        "lastPublishTime": "2024-02-01T17:28:02Z" 
    } 
}

속성 개체를 가져와서 중괄호 - { }로 묶습니다. REST 항목 정의 페이로드는 다음과 같습니다.

{
    "properties": { 
        "description": "this is the description", 
        "activities": [ 
            { 
                "name": "Wait1", 
                "type": "Wait", 
                "dependsOn": [], 
                "typeProperties": { 
                    "waitTimeInSeconds": 240 
                } 
            } 
        ], 
        "annotations": [], 
        "lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
        "lastPublishTime": "2024-02-01T17:28:02Z" 
    } 
} 

항목 만들기

REST API - 항목 - 항목 만들기

예제 - CreateDataPipeline:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

본문:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline" 
} 

참고 항목

설명서에 따르면 필수 속성은 displayNametype 2개뿐입니다. 현재 Workload-DI는 정의 없이는 생성 또한 지원하지 않습니다. 이 잘못된 요구 사항에 대한 수정 사항은 현재 배포 중입니다. 지금은 Fabric 사용자 인터페이스에서 사용하는 것과 동일한 기본 정의를 보낼 수 있습니다. ‘{"properties":{"activities":[]}}’

정의를 포함하여 수정된 JSON:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline", 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
} 

응답 201:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "description": "", 
    "workspaceId": "<Your WS Id>" 
} 

항목 삭제

REST API - 항목 - 항목 삭제

예시:

DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

응답 200: (본문 없음)

항목 가져오기

REST API - 항목 - 항목 가져오기

예시:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

응답 200:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "workspaceId": "<your WS Id>" 
} 

항목 정의 가져오기

REST API - 항목 - 항목 정의 가져오기

예시:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition

응답 200:

{ 
    "definition": { 
        "parts":[ 
            { 
                "path": "pipeline-content.json", 
                "payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==", 
                "payloadType": "InlineBase64" 
            } 
        ] 
    } 
} 

항목 나열

REST API - 항목 - 항목 나열

예시:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

응답 200:

{ 
    "value": [ 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "SemanticModel", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "SQLEndpoint", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "Lakehouse", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "DataPipeline", 
            "displayName": "Pipeline_1", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        } 
    ] 
} 

항목 업데이트

REST API - 항목 - 항목 업데이트

예시:

PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

본문:

{ 
  "displayName": "Pipeline_1_updated", 
  "description": "This is the description." 
}

응답 200:

{ 
    "id": "<pipeline id>", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1_updated", 
    "description": "This is the description.", 
    "workspaceId": "<Your WS id>" 
}

항목 정의 업데이트

REST API - 항목 - 항목 정의 업데이트

예시:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition

본문:

{ 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}

응답 200: (본문 없음)

주문형 항목 작업 실행

REST API - 항목 - 주문형 항목 작업 실행

예시:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

응답 202: (본문 없음)

매개 변수 값이 두 개인 예제:

여기에는 대기할 시간(초)을 지정하는 param_waitsec 매개 변수가 있는 Wait 활동이 있습니다.

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

본문:

{ 
  "executionData": { 
    "parameters": {
      "param_waitsec": "10" 
    } 
  } 
}

응답 202: (본문 없음)

참고 항목

현재 응답 데이터는 없지만, 작업 ID는 반환되어야 합니다. 미리 보기 중에 반환된 헤더의 Location 속성에서 찾을 수 있습니다.

항목 작업 인스턴스 가져오기

REST API - 항목 - 항목 작업 인스턴스 가져오기

예시:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>

응답 200:

{ 
    "id": "4511ffcd-a9f6-4f75-91a9-9ceab08d7539", 
    "itemId": "2bb9fe4a-0a84-4725-a01f-7ac4e6850259", 
    "jobType": "Pipeline", 
    "invokeType": "Manual", 
    "status": "Completed", 
    "failureReason": null, 
    "rootActivityId": "f14bdd95-2cff-4451-b839-bea81509126d", 
    "startTimeUtc": "2024-02-01T03:03:19.8361605", 
    "endTimeUtc": "2024-02-01T03:05:00.3433333" 
} 

항목 작업 인스턴스 취소

REST API - 항목 - 항목 작업 인스턴스 취소

예시:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel

응답 202: (본문 없음)

참고 항목

작업을 취소한 후 항목 가져오기 작업 인스턴스 호출하거나 Fabric 사용자 인터페이스에서 보기 실행 기록 확인하여 상태를 확인할 수 있습니다.

활동 실행 쿼리

예시:

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

참고 항목

"작업 ID"는 Job Scheduler 공용 API에서 만들어지고 사용되는 것과 동일한 ID입니다.

응답 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(서비스 주체 인증)은 현재 지원되지 않습니다.