共用方式為


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

注意事項

Microsoft Purview 資料目錄 (傳統) 和 Data Health Insights (傳統) 不再接受新客戶,而且這些服務 (先前為 Azure Purview) 現在處於客戶支援模式。

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

Background

顯示資料集之間譜系的能力是 Microsoft Purview 的重要平臺功能之一。 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 Created” 表示實體已成功建立,且其各自的 GUID 包含在輸出 JSON 中。

現在已建立實體 A & B,請移至步驟 B,以使用相同的 REST API 連結譜系鏈中的實體。

  • 如果要連結的實體數目不是時間或資源密集的 (,例如,) 少於 20-30 個實體,您可以在 Microsoft Purview 入口網站中手動連線譜系。 請遵循 手動譜系使用者指南 ,以取得手動建立譜系連線的步驟。
  • 如果您有大量譜系連線要建立,則必須將程式自動化,或者如果無法使用 Microsoft Purview 入口網站手動譜系,請繼續連結和建置自定義譜系的 API 程式。

自訂沿襲 JSON 承載:

使用承載執行 POST /entity/bulkEntity - Bulk Create Or Update - 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,以建立這些實體,然後再建立譜系關係。 步驟 A說明使用POST /entity/bulk API和Python程式碼片段的大量實體建立程式。

場景結果

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

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

    顯示案例 A:透過 API 建立的資產自訂建置譜系的螢幕擷取畫面。

  • 案例 B:從透過 API 連結的預先存在資產自訂建置譜系。

    注意事項

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

    螢幕擷取畫面顯示案例 B:透過 API 連結的預先存在資產的自訂建置譜系。