Extremo de trabajos del sistema de perfil (solicitudes de eliminación)
Adobe Experience Platform le permite introducir datos de varias fuentes y crear perfiles sólidos para clientes individuales. Los datos ingeridos en Platform se almacenan en Data Lake, y si los conjuntos de datos se han habilitado para el perfil, esos datos también se almacenan en el almacén de datos Real-Time Customer Profile. En ocasiones, puede ser necesario eliminar datos de perfil asociados con un conjunto de datos del almacén de perfiles para eliminar datos que ya no son necesarios o que se añadieron por error. Esto requiere el uso de la API Real-Time Customer Profile para crear un trabajo del sistema Profile o delete request
que también se pueda modificar, supervisar o eliminar si es necesario.
Introducción
El extremo de API utilizado en esta guía forma parte de Real-Time Customer Profile API. Antes de continuar, revisa la guía de introducción para ver vínculos a documentación relacionada, una guía para leer las llamadas de API de ejemplo en este documento e información importante sobre los encabezados necesarios para realizar correctamente llamadas a cualquier API de Experience Platform.
Ver solicitudes de eliminación
Una solicitud de eliminación es un proceso asincrónico de larga duración, lo que significa que su organización puede estar ejecutando varias solicitudes de eliminación a la vez. Para ver todas las solicitudes de eliminación que su organización está ejecutando actualmente, puede realizar una solicitud de GET al extremo /system/jobs
.
También puede utilizar parámetros de consulta opcionales para filtrar la lista de solicitudes de eliminación devueltas en la respuesta. Para usar varios parámetros, separe cada parámetro con un signo & (&
).
Formato de API
GET /system/jobs
GET /system/jobs?{QUERY_PARAMETERS}
start
start=4
limit
limit=10
page
page=2
sort
asc
) o descendente (desc
). El parámetro sort no funciona cuando se devuelven varias páginas de resultados. Ejemplo: sort=batchId:asc
Solicitud
curl -X GET \
https://platform.adobe.io/data/core/ups/system/jobs \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Respuesta
La respuesta incluye una matriz "children" con un objeto para cada solicitud de eliminación que contiene los detalles de esa solicitud.
{
"_page": {
"count": 100,
"next": "K1JJRDpFaWc5QUwyZFgtMEpBQUFBQUFBQUFBPT0jUlQ6MSNUUkM6MiNGUEM6QWdFQUFBQVFBQWZBQUg0Ly9yL25PcmpmZndEZUR3QT0="
},
"children": [
{
"id": "9c2018e2-cd04-46a4-b38e-89ef7b1fcdf4",
"imsOrgId": "{ORG_ID}",
"batchId": "8d075b5a178e48389126b9289dcfd0ac",
"jobType": "DELETE",
"status": "COMPLETED",
"metrics": "{\"recordsProcessed\":5,\"timeTakenInSec\":1}",
"createEpoch": 1559026134,
"updateEpoch": 1559026137
},
{
"id": "3f225e7e-ac8c-4904-b1d5-0ce79e03c2ec",
"imsOrgId": "{ORG_ID}",
"dataSetId": "5c802d3cd83fc114b741c4b5",
"jobType": "DELETE",
"status": "PROCESSING",
"metrics": "{\"recordsProcessed\":0,\"timeTakenInSec\":15}",
"createEpoch": 1559025404,
"updateEpoch": 1559025406
}
]
}
_page.count
_page.next
"next"
proporcionado.jobType
"DELETE"
.status
"NEW"
, "PROCESSING"
, "COMPLETED"
, "ERROR"
.metrics
"recordsProcessed"
) y el tiempo en segundos que la solicitud se ha estado procesando, o cuánto tiempo tardó la solicitud en completarse ("timeTakenInSec"
).Crear una solicitud de eliminación create-a-delete-request
El inicio de una nueva solicitud de eliminación se realiza mediante una solicitud de POST al extremo /systems/jobs
, donde el identificador del conjunto de datos o del lote que se va a eliminar se proporciona en el cuerpo de la solicitud.
Eliminar un conjunto de datos y los datos de perfil asociados
Para eliminar un conjunto de datos y todos los datos de perfil asociados con él del almacén de perfiles, el ID del conjunto de datos debe incluirse en el cuerpo de la solicitud del POST. Esta acción eliminará TODOS los datos de un conjunto de datos determinado. Experience Platform le permite eliminar conjuntos de datos basados en esquemas de registros y series temporales.
Formato de API
POST /system/jobs
Solicitud
curl -X POST \
https://platform.adobe.io/data/core/ups/system/jobs \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"dataSetId": "5c802d3cd83fc114b741c4b5"
}'
dataSetId
Respuesta
Una respuesta correcta devuelve los detalles de la solicitud de eliminación recién creada, incluido un ID único, generado por el sistema y de solo lectura para la solicitud. Se puede utilizar para buscar la solicitud y comprobar su estado. status
para la solicitud en el momento de la creación es "NEW"
hasta que comience a procesarse. El dataSetId
de la respuesta debe coincidir con el dataSetId
enviado en la solicitud.
{
"id": "3f225e7e-ac8c-4904-b1d5-0ce79e03c2ec",
"imsOrgId": "{ORG_ID}",
"dataSetId": "5c802d3cd83fc114b741c4b5",
"jobType": "DELETE",
"status": "NEW",
"createEpoch": 1559025404,
"updateEpoch": 1559025406
}
id
dataSetId
Eliminar un lote
Para eliminar un lote, se debe incluir el ID del lote en el cuerpo de la solicitud del POST. Tenga en cuenta que no puede eliminar lotes para conjuntos de datos basados en esquemas de registros. Solo se pueden eliminar los lotes de conjuntos de datos basados en esquemas de series temporales.
Para obtener más información sobre el comportamiento de registros y series temporales, consulte la sección sobre comportamientos de datos XDM en la descripción general de XDM System.
Formato de API
POST /system/jobs
Solicitud
curl -X POST \
https://platform.adobe.io/data/core/ups/system/jobs \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"batchId": "8d075b5a178e48389126b9289dcfd0ac"
}'
batchId
Respuesta
Una respuesta correcta devuelve los detalles de la solicitud de eliminación recién creada, incluido un ID único, generado por el sistema y de solo lectura para la solicitud. Se puede utilizar para buscar la solicitud y comprobar su estado. "status"
para la solicitud en el momento de la creación es "NEW"
hasta que comience a procesarse. El valor "batchId"
de la respuesta debe coincidir con el valor "batchId"
enviado en la solicitud.
{
"id": "9c2018e2-cd04-46a4-b38e-89ef7b1fcdf4",
"imsOrgId": "{ORG_ID}",
"batchId": "8d075b5a178e48389126b9289dcfd0ac",
"jobType": "DELETE",
"status": "NEW",
"createEpoch": 1559026131,
"updateEpoch": 1559026132
}
id
batchId
Si intenta iniciar una solicitud de eliminación para un lote del conjunto de datos de Record, se producirá un error de nivel 400, similar al siguiente:
{
"requestId": "bc4eb29f-63a8-4653-9133-71238884bb81",
"errors": {
"400": [
{
"code": "500",
"message": "Batch can only be specified for EE type 'a294e36d382649dab2cc6ad64a41b674'"
}
]
}
}
Ver una solicitud de eliminación específica view-a-specific-delete-request
Para ver una solicitud de eliminación específica, incluidos detalles como su estado, puede realizar una solicitud de búsqueda (GET) al extremo /system/jobs
e incluir el ID de la solicitud de eliminación en la ruta.
Formato de API
GET /system/jobs/{DELETE_REQUEST_ID}
{DELETE_REQUEST_ID}
Solicitud
curl -X GET \
https://platform.adobe.io/data/core/ups/system/jobs/9c2018e2-cd04-46a4-b38e-89ef7b1fcdf4 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Respuesta
La respuesta proporciona los detalles de la solicitud de eliminación, incluido su estado actualizado. El identificador de la solicitud de eliminación en la respuesta (el valor "id"
) debe coincidir con el identificador enviado en la ruta de solicitud.
{
"id": "9c2018e2-cd04-46a4-b38e-89ef7b1fcdf4",
"imsOrgId": "{ORG_ID}",
"batchId": "8d075b5a178e48389126b9289dcfd0ac",
"jobType": "DELETE",
"status": "COMPLETED",
"metrics": "{\"recordsProcessed\":5,\"timeTakenInSec\":1}",
"createEpoch": 1559026134,
"updateEpoch": 1559026137
}
jobType
"DELETE"
.status
"NEW"
, "PROCESSING"
, "COMPLETED"
, "ERROR"
.metrics
"recordsProcessed"
) y el tiempo en segundos que la solicitud se ha estado procesando, o el tiempo que tardó la solicitud en completarse ("timeTakenInSec"
).Una vez que el estado de la solicitud de eliminación sea "COMPLETED"
, puede confirmar que los datos se han eliminado intentando acceder a los datos eliminados mediante la API de acceso a datos. Para obtener instrucciones sobre cómo usar la API de acceso a datos para acceder a conjuntos de datos y lotes, consulte la documentación de acceso a datos.
Eliminar una solicitud de eliminación
Experience Platform le permite eliminar una solicitud anterior, lo que puede resultar útil por varios motivos, incluso si el trabajo de eliminación no se completó o se quedó atascado en la fase de procesamiento. Para quitar una solicitud de eliminación, puede realizar una solicitud de DELETE al extremo /system/jobs
e incluir el identificador de la solicitud de eliminación que desea quitar en la ruta de acceso de la solicitud.
Formato de API
DELETE /system/jobs/{DELETE_REQUEST_ID}
Solicitud
curl -X POST \
https://platform.adobe.io/data/core/ups/system/jobs/9c2018e2-cd04-46a4-b38e-89ef7b1fcdf4 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Respuesta
Una solicitud de eliminación correcta devuelve el estado HTTP 200 (OK) y un cuerpo de respuesta vacío. Puede confirmar que la solicitud se eliminó realizando una solicitud de GET para ver la solicitud de eliminación por su ID. Esto debería devolver un estado HTTP 404 (no encontrado), que indica que se eliminó la solicitud de eliminación.
Pasos siguientes
Ahora que conoce los pasos involucrados en la eliminación de conjuntos de datos y lotes de Profile store dentro de Experience Platform, puede eliminar de manera segura los datos que se agregaron erróneamente o que su organización ya no necesita. Tenga en cuenta que una solicitud de eliminación no se puede deshacer, por lo tanto, solo debe eliminar datos que esté seguro de que no necesita ahora y que no necesitará en el futuro.