共用方式為


Microsoft Purview - 使用 REST API 建置自定義譜系

本文提供在 Microsoft Purview 資料目錄 中使用 REST API 建立數據譜系專案的步驟。 在 Purview 中自動產生的歷程Microsoft不完整或遺失的情況下,可以 手動在 Microsoft Purview 入口網站或使用 REST API 來自定義譜系。 本文著重於使用可克服手動譜系已知限制並提供更多選項的 REST API。

Background

顯示數據集間譜系的能力,是 Purview 的重要平臺功能之一Microsoft。 Data Factory、Data Share 和 Power BI 等系統會在數據移動時擷取數據譜系。 在某些情況下,Microsoft Purview 自動產生的譜系不完整或遺失,以供實際視覺效果和企業報告之用。 在這些案例中,Apache Atlas 攔截和 REST API 支援自定義譜系報告。

使用 REST API 來建置自定義譜系,可讓您克服手動譜系的一些限制,如下列文章所述:

本文的其餘部分說明如何使用 Microsoft Purview REST API 在 Microsoft Purview 上建置和報告自定義譜系。

必要條件

案例

當建置自定義譜系變得必要時,有兩個使用案例:

答: 建立新建立的實體,並將其與譜系連結

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 連結譜系鏈中的實體。

  • 例如,如果要鏈接的實體數目不是時間或資源密集的 (,) 少於 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-21361263 9abc” 是指歷程的方向輸入和 「guid」:「e33c694a-2c4f-4cae-8c27-06f6f6f6f6f60000“ 是指譜系的方向輸出,這是 Purview 自動掃描的現有資產。 我們剛剛建立了這兩個資產之間的譜系。

注意事項

如果資產不存在,您必須在此步驟之前執行大量實體建立 API,才能建立譜系關聯性。 步驟 A 說明使用 POST /entity/bulk API 和 Python 代碼段的大量實體建立程式。

案例結果

API 回應「201 已建立」表示成功建立譜系圖形連結,且已建立的 GUID 包含在輸出 JSON 中。 歷程會出現在 Microsoft Purview 入口網站中:

  • 案例 A:從透過 API 建立的資產自定義建置譜系:

    顯示案例 A:從透過 API 建立的資產自定義建置譜系的螢幕快照。

  • 案例 B:從透過 API 連結的既存資產自定義建置譜系。

    注意事項

    如果是從既有的實體建立譜系,請觀察預先存在的譜系圖形會保持不變,並建立新的連結並另外顯示。

    顯示案例 B:來自透過 API 連結之既有資產的自定義建置譜系的螢幕快照。