场景2:删除某租户及其所有数据
操作场景
在使用应用运行态时,如果您创建的某个逻辑租户后续不再使用,您可以通过调用“数据清理与重置”的“tenant-clean-task”接口,将“type”参数设置为“TENANT_DELETE”,并指定“tenant_id”和“name”参数值,删除指定租户及该租户下的所有实例数据。
- 删除租户时,会删除该租户下的所有数据,请谨慎操作。
- 如果您已将数据模型及其实例数据同步至LinkX-F系统,进行此操作后,将无法在LinkX-F系统进行数据模型及其实例数据的更新。
- 不支持删除唯一编码为“-1”的租户。
- 执行删除非“-1”的租户操作后,该租户不能再使用。
前提条件
已获取租户的唯一编码。
涉及接口
- 创建并执行清理数据任务
URI格式:POST http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task
- 查询任务执行结果
URI格式:GET http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task/{id}
- 重试清理数据任务
URI格式:PUT http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task/{id}
其中,{endpoint}表示承载REST服务端点的服务器域名或IP地址,{appID}表示应用ID,{id}表示清理数据任务ID。
操作步骤
- 创建并执行清理数据任务。
如果存在响应参数“taskStatus”为“await_start”、“ongoing”或“fail_awai_retry”的任务,则不能对该任务中的租户创建新的清理数据任务。
- URI格式:POST http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task
- 参数说明请参见全量数据服务的 。
- 请求示例:
POST https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task X-AUTH-TOKEN: ABCDEFJ.... { "params": { "tenant_id": "123456789", "name": "TestUser", "type": "TENANT_DELETE" } }
- 响应示例:
{ "result": "SUCCESS", "data": [ { "id": "576804608546967552", "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "createTime": "2023-12-14T16:15:35.189+0800", "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "lastUpdateTime": "2023-12-14T16:15:35.189+0800", "rdmVersion": 1, "rdmDeleteFlag": 0, "className": null, "rdmExtensionType": "TenantCleanTask", "hibernateVersion": 1, "tenant": { "id": "-1", "clazz": "Tenant" }, "name": "TestUser", "applicationTaskId": null, "cleanTaskTenantId": 12, "type": "TENANT_DELETE", "taskStatus": "ONGOING", "retryTimes": 0, "fileStatus": "AWAIT_START", "ddsStatus": "AWAIT_START", "cssStatus": "AWAIT_START", "rdsStatus": "AWAIT_START", "metadataStatus": "AWAIT_START", "failMessage": null } ], "errors": [] }
- 记录响应中“data”的“id”,例如“576804608546967552”。
- 查询任务执行结果。
- URI格式:GET http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task/{id}
- 参数说明请参见全量数据服务的 。
- 请求示例:
GET https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task/576804608546967552 X-AUTH-TOKEN: ABCDEFJ....
- 响应示例:
{ "result": "SUCCESS", "data": [ { "id": "576804608546967552", "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "createTime": "2023-12-14T16:15:35.189+0800", "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "lastUpdateTime": "2023-12-14T16:15:35.189+0800", "rdmVersion": 5, "rdmDeleteFlag": 0, "className": null, "rdmExtensionType": "TenantCleanTask", "hibernateVersion": 8, "tenant": { "id": "-1", "clazz": "Tenant" }, "name": "TestUser", "applicationTaskId": null, "cleanTaskTenantId": 12, "type": "TENANT_DELETE", "taskStatus": "SUCCESS", "retryTimes": 0, "fileStatus": "SUCCESS", "ddsStatus": "SUCCESS", "cssStatus": "SUCCESS", "rdsStatus": "SUCCESS", "metadataStatus": "SUCCESS", "failMessage": null } ], "errors": [] }
- (可选)手动重试清理数据任务。
- 如果响应的“taskStatus”为“success”或“fail”,不允许调用重试接口。
- 如果响应的“taskStatus”为“fail_awai_retry”,则表示清理失败,正在等待重试。系统会连续3天在凌晨3点自动重试,如果重试3次后仍清理失败,则任务结束。您也可以通过此步骤手动重试。
- 一个“taskStatus”为“fail_awai_retry”的任务仅支持重试3次。
- URI格式:PUT http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task/{id}
- 参数说明请参见全量数据服务的 。
- 请求示例:
PUT https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task/576804608546967552 X-AUTH-TOKEN: ABCDEFJ....
- 响应示例:
{ "result": "SUCCESS", "data": [ { "id": "576804608546967552", "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "createTime": "2023-12-14T16:15:35.189+0800", "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "lastUpdateTime": "2023-12-14T16:15:35.189+0800", "rdmVersion": 5, "rdmDeleteFlag": 0, "className": null, "rdmExtensionType": "TenantCleanTask", "hibernateVersion": 8, "tenant": { "id": "-1", "clazz": "Tenant" }, "name": "TestUser", "applicationTaskId": null, "cleanTaskTenantId": 12, "type": "TENANT_DELETE", "taskStatus": "ONGOING", "retryTimes": 1, "fileStatus": "SUCCESS", "ddsStatus": "SUCCESS", "cssStatus": "SUCCESS", "rdsStatus": "SUCCESS", "metadataStatus": "SUCCESS", "failMessage": null } ], "errors": [] }