场景1:清理某租户下的实例数据
操作场景
一般情况下,应用开发完成后需要测试人员对应用进行功能检查。而在测试期间,测试人员会在应用中编造出很多测试数据。如果您希望完成测试后可以一键清理这些无效数据,您可以通过调用“数据清理与重置”的“tenant-clean-task”接口,将“type”参数设置为“TENANT_RESET”,并指定“tenant_id”和“name”参数值,清理指定租户下的所有实例数据。
本章节以清理租户“TestUser”下的实例数据为例,如需了解更多数据清理与重置的API,请参见全量数据服务的 。
- 清理某租户下的实例数据,将导致数据不可恢复,请谨慎操作。
- 如果您已将数据模型及其实例数据同步至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_RESET" } }
- 响应示例:
{ "result": "SUCCESS", "data": [ { "id": "576798761137737728", "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "createTime": "2023-12-14T15:52:21.058+0800", "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "lastUpdateTime": "2023-12-14T15:52:21.058+0800", "rdmVersion": 1, "rdmDeleteFlag": 0, "className": null, "rdmExtensionType": "TenantCleanTask", "hibernateVersion": 1, "tenant": { "id": "-1", "clazz": "Tenant" }, "name": "TestUser", "applicationTaskId": null, "cleanTaskTenantId": 12, "type": "TENANT_RESET", "taskStatus": "ONGOING", "retryTimes": 0, "fileStatus": "AWAIT_START", "ddsStatus": "AWAIT_START", "cssStatus": "AWAIT_START", "rdsStatus": "AWAIT_START", "metadataStatus": "AWAIT_START", "failMessage": null } ], "errors": [] }
- 记录响应中“data”的“id”,例如“576798761137737728”。
- 查询任务执行结果。
- 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/576798761137737728 X-AUTH-TOKEN: ABCDEFJ....
- 响应示例:
{ "result": "SUCCESS", "data": [ { "id": "576798761137737728", "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "createTime": "2023-12-14T15:53:30.420+0800", "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "lastUpdateTime": "2023-12-14T15:53:30.420+0800", "rdmVersion": 5, "rdmDeleteFlag": 0, "className": null, "rdmExtensionType": "TenantCleanTask", "hibernateVersion": 8, "tenant": { "id": "-1", "clazz": "Tenant" }, "name": "TestUser", "applicationTaskId": null, "cleanTaskTenantId": 12, "type": "TENANT_RESET", "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次后仍清理失败,则任务结束。
即,当响应的“retryTimes”<3时,您可以直接调用重试清理数据任务接口进行手动重试,也可以等待系统触发重试机制自动重试(系统会在凌晨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/576798761137737728 X-AUTH-TOKEN: ABCDEFJ....
- 响应示例:
{ "result": "SUCCESS", "data": [ { "id": "576798761137737728", "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "createTime": "2023-12-14T15:53:30.420+0800", "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f", "lastUpdateTime": "2023-12-14T15:53:30.420+0800", "rdmVersion": 5, "rdmDeleteFlag": 0, "className": null, "rdmExtensionType": "TenantCleanTask", "hibernateVersion": 8, "tenant": { "id": "-1", "clazz": "Tenant" }, "name": "TestUser", "applicationTaskId": null, "cleanTaskTenantId": 12, "type": "TENANT_RESET", "taskStatus": "ONGOING", "retryTimes": 1, "fileStatus": "SUCCESS", "ddsStatus": "SUCCESS", "cssStatus": "SUCCESS", "rdsStatus": "FAIL", "metadataStatus": "AWAIT_START", "failMessage": "生命周期状态[Start]已存在" } ], "errors": [] }