Microsoft Purview: compilación de linaje personalizado con las API REST
En este artículo se proporcionan los pasos para crear entradas de linaje de datos mediante la API REST en el Catálogo de datos de Microsoft Purview. En escenarios en los que el linaje generado automáticamente en Microsoft Purview está incompleto o falta, el linaje se puede crear manualmente en el portal de Microsoft Purview o mediante las API REST. Este artículo se centra en el uso de API REST que pueden superar las limitaciones conocidas del linaje manual y proporcionar más opciones.
Información previa
La capacidad de mostrar el linaje entre conjuntos de datos es una de las características importantes de la plataforma de Microsoft Purview. Sistemas como Data Factory, Data Share y Power BI capturan el linaje de datos a medida que se mueven. En determinadas situaciones, el linaje generado automáticamente por Microsoft Purview está incompleto o falta para fines prácticos de visualización e informes empresariales. En esos escenarios, los enlaces de Apache Atlas y la API REST admiten informes de linaje personalizados.
El uso de las API REST para compilar linaje personalizado permite superar algunas de las limitaciones del linaje manual, como se describe en los artículos siguientes:
- Linaje de Power BI en Microsoft Purview
- Guía del usuario del linaje manual de Microsoft Purview
- Linaje: limitaciones conocidas
En el resto de este artículo se explica el uso de las API REST de Microsoft Purview para compilar e informar del linaje personalizado en Microsoft Purview.
Requisitos previos
- Para obtener instrucciones paso a paso sobre cómo usar los paquetes del SDK de Python de Purview, consulte Tutorial del SDK de Python de Purview y Exploración de la API REST de Purview con Python.
- Para obtener instrucciones paso a paso sobre cómo usar las API REST de Purview, consulte el Tutorial del SDK de Python de Purview.
Escenarios
Hay dos casos de uso cuando se hace necesario crear linaje personalizado:
R. Crear nuevas entidades creadas y vincularlas con linaje
B. Vinculación de entidades o linaje existentes a otra entidad o linaje existente
R. Crear nuevas entidades y vincularlas con linaje
Por ejemplo, el linaje debe notificarse entre las entidades A & B, pero A & B no existen actualmente.
Para crear las entidades A & B, invoque la API REST de Microsoft Purview: Entity - 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 = '{"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)
La respuesta de API "201 Creado" indica que las entidades se crean correctamente y que sus GUID respectivos están incluidos en el JSON de salida.
Ahora que se crean las entidades A & B, vaya al paso B para vincular las entidades de la cadena de linaje mediante la misma API REST.
B. Vinculación de entidades o linaje existentes a otra entidad o linaje existente
- Si el número de entidades que se van a vincular no es el tiempo o el uso intensivo de recursos (por ejemplo, menos de 20-30 entidades), puede conectar el linaje manualmente en el portal de Microsoft Purview. Siga la guía manual del usuario de linaje para conocer los pasos para crear manualmente conexiones de linaje.
- Si tiene que realizar un gran número de conexiones de linaje, el proceso debe automatizarse o, si el linaje manual mediante el portal de Microsoft Purview no es factible, continúe con el proceso de API de vinculación y creación de linaje personalizado.
Carga JSON de linaje personalizado:
Ejecute la API DE REST POST /entity/bulkEntity - Bulk Create Or Update mediante la carga, tal como se muestra:
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)
Esta carga JSON crea el linaje personalizado. Funciona para los recursos ya existentes cuyos GUID se proporcionan en el JSON de "entradas". Por ejemplo"guid": "24558fd8-9cdc-47de-9310-56a58108bab0" y "27163581-9aca-212a-782a-213612639abc" hace referencia a la entrada direccional del linaje y "guid": "e33c694a-2c4f-4cae-8c27-06f6f6f60000" hace referencia a la salida direccional del linaje, que era un recurso existente examinado automáticamente por Purview. Acabamos de crear el linaje entre los dos recursos.
Nota:
Si los recursos aún no existen, debe ejecutar bulk Entity create API antes de este paso para crear esas entidades antes de crear la relación de linaje. El proceso de creación masiva de entidades mediante post /entity/bulk API y el fragmento de código de Python se describe en el paso A.
Resultados del escenario
La respuesta de API "201 Creado" indica que la creación correcta de vínculos de gráficos de linaje y los GUID creados se encuentran en el JSON de salida. Linaje aparece en el portal de Microsoft Purview:
Escenario A: Linaje personalizado creado a partir de recursos creados a través de la API:
Escenario B: Linaje personalizado creado a partir de recursos preexistedos vinculados a través de la API.
Nota:
Si el linaje se crea a partir de entidades preexistencias, observe que el gráfico de linaje preexistente permanece intacto y que la nueva vinculación se crea y se muestra de forma adicional.