Microsoft Purview - REST API를 사용하여 사용자 지정 계보 빌드
이 문서에서는 Microsoft Purview 데이터 카탈로그 REST API를 사용하여 데이터 계보 항목을 만드는 단계를 제공합니다. Microsoft Purview에서 자동으로 생성된 계보가 불완전하거나 누락된 시나리오에서 계보는 Microsoft Purview 포털에서 수동으로 빌드하거나 REST API를 사용하여 사용자 지정할 수 있습니다. 이 문서에서는 수동 계보 알려진 제한을 극복하고 더 많은 옵션을 제공할 수 있는 REST API를 사용하는 데 중점을 둡니다.
배경
데이터 세트 간의 계보를 표시하는 기능은 Microsoft Purview의 중요한 플랫폼 기능 중 하나입니다. Data Factory, Data Share 및 Power BI와 같은 시스템은 이동하면서 데이터의 계보를 캡처합니다. 특정 상황에서 Microsoft Purview의 자동으로 생성된 계보는 실제 시각화 및 엔터프라이즈 보고 목적으로 불완전하거나 누락됩니다. 이러한 시나리오에서 사용자 지정 계보 보고는 Apache Atlas 후크 및 REST API에서 지원됩니다.
REST API를 사용하여 사용자 지정 계보를 빌드하면 다음 문서에 설명된 대로 수동 계보의 몇 가지 제한 사항을 극복할 수 있습니다.
이 문서의 나머지 부분에는 Microsoft Purview REST API를 사용하여 Microsoft Purview에서 사용자 지정 계보를 빌드하고 보고하는 방법을 설명합니다.
필수 구성 요소
- Purview Python SDK 패키지를 사용하는 방법에 대한 단계별 지침은 Purview Python SDK 자습서 및 Python을 사용하여 Purview의 REST API 탐색을 참조하세요.
- Purview REST API를 사용하는 방법에 대한 단계별 지침은 Purview Python SDK 자습서를 참조하세요.
시나리오
사용자 지정 계보를 빌드해야 하는 경우 두 가지 사용 사례가 있습니다.
B. 기존 엔터티 또는 계보를 다른 기존 엔터티 또는 계보에 연결
대답. 새 엔터티를 만들고 계보와 연결
예를 들어 엔터티 A & B 간에 계보를 보고해야 하지만 A & B는 현재 존재하지 않습니다.
엔터티 A & B를 만들려면 Microsoft Purview REST API: 엔터티 - 대량 만들기 또는 업데이트 - REST API를 호출합니다.
POST https://{accountname}.purview.azure.com/datamap/api/atlas/v2/entity/bulk?api-version=2023-09-01
sample_entity_json = '{"entity": {"status": "ACTIVE","version": 0,"name": ENTITY_A"}.......{"entity": ........}}'
#Send POST JSON containing entities to be created
CreateOrUpdateEntitesUrl = 'https://<purview_account_name>.purview.azure.com/datamap/api/atlas/v2/entity/bulk'
EntitiesResponse = requests.post(CreateOrUpdateEntitesUrl, json = json.loads(sample_entity_json) ,headers=headers)
entitiesRes = json.loads(EntitiesResponse.text)
API 응답 "201 생성됨"은 엔터티가 성공적으로 생성되고 해당 GUID가 출력 JSON에 포함되어 있음을 나타냅니다.
이제 엔터티 A & B가 만들어졌으므로 B단계로 이동하여 동일한 REST API를 사용하여 계보 체인의 엔터티를 연결합니다.
B. 기존 엔터티 또는 계보를 다른 기존 엔터티 또는 계보에 연결
- 연결할 엔터티 수가 시간 또는 리소스 집약적(예: 20~30개 미만 엔터티)이 아닌 경우 Microsoft Purview 포털에서 계보를 수동으로 연결할 수 있습니다. 계보 연결을 수동으로 만드는 단계는 수동 계보 사용자 가이드 를 따릅니다.
- 많은 계보 연결을 만들려면 프로세스를 자동화해야 합니다. 또는 Microsoft Purview 포털을 사용하는 수동 계보를 사용할 수 없는 경우 사용자 지정 계보를 연결하고 빌드하는 API 프로세스를 진행합니다.
사용자 지정 계보 JSON 페이로드:
그림과 같이 페이로드를 사용하여 POST /entity/bulkEntity - 대량 만들기 또는 업데이트 - REST API 를 실행합니다.
POST https://{accountname}.purview.azure.com/datamap/api/atlas/v2/entity/bulk?api-version=2023-09-01
sample_entity_json = '{
"entities": [
{
"status": "ACTIVE",
"version": 1,
"typeName": "Process",
"attributes": {
"inputs": [
{
"guid": "24558fd8-9cdc-47de-9310-56a58108bab0",
“guid”: “27163581-9aca-212a-782a-213612639abc”
}
],
"outputs": [
{
"guid": "e33c694a-2c4f-4cae-8c27-06f6f6f60000"
}
],
"qualifiedName": "cassandra://query",
"name": "query"
}
}
]
}'
#In this code snippet, we send the JSON as POST request containing the two GUIDs as input and "output" GUID as output. This creates lineage with 2 directional inputs and 1 directional output.
#Note: using the same API and SDK code you can create lineage with any number of inputs, any number of processes in between, any number of typedefs and any number of outputs.
#The API/SDK method is the most flexible and versatile menthod of creating lineage.
CreateLineageEntitesUrl = 'https://<purview_account_name>.purview.azure.com/datamap/api/atlas/v2/entity/bulk'
EntitiesResponse = requests.post(CreateLineageEntitesUrl, json = json.loads(sample_entity_json),headers=headers)
entitiesRes = json.loads(EntitiesResponse.text)
이 JSON 페이로드는 사용자 지정 계보를 만듭니다. GUID가 "입력" JSON에 제공된 기존 자산에 대해 작동합니다. 예: "guid": "24558fd8-9cdc-47de-9310-56a58108bab0" 및 "27163581-9aca-212a-782a-213612639abc"는 계보의 방향 입력 및 "guid"를 나타냅니다. "e33c694a-2c4f-4cae-8c27-06f6f6f6f60000"은 Purview에서 자동으로 검사한 기존 자산이었던 계보의 방향 출력을 나타냅니다. 방금 두 자산 간의 계보를 만들었습니다.
참고
자산이 아직 없는 경우 계보 관계를 만들기 전에 이 단계 전에 대량 엔터티 만들기 API를 실행하여 해당 엔터티를 만들어야 합니다. POST /entity/bulk API 및 Python 코드 조각을 사용하는 대량 엔터티 만들기 프로세스는 A단계에서 설명합니다.
시나리오 결과
API 응답 "201 생성됨"은 계보 그래프 링크 생성에 성공했으며 생성된 GUID가 출력 JSON에 포함되어 있음을 나타냅니다. 계보는 Microsoft Purview 포털에 표시됩니다.