数据回收站容量达到上限处理方案

1. 表单定位与方案简介

1.1 定位需要调整的表单

使用企业创建者或系统管理员账号进入「管理后台 > 版本信息 > 基础数据」;找到「单表数据上限」,点击查看详情,即可查看各表单的「回收站总数据量」,定位回收站数据量接近或达到上限的表单。

注:若数据量未更新,可手动点击对应表单右侧的「刷新」;

1.2 选择处理方案

当回收站数据量达到容量上限后,继续删除数据将会报错失败。本文介绍三种处理方案,实现在不占用回收站容量的前提下正常完成数据删除。

序号

方案名称

介绍

适用场景

1

改用硬删除API

将原调用API接口中的「删除数据」接口替换为「硬删除数据」接口,替换后删除数据不进入回收站、直接彻底删除。

无需恢复数据的删除场景

2

改用同步表

将外部系统的数据同步至简道云,不产生表单删除操作。

外部系统定时同步数据的场景

3

彻底删除回收站数据

在数据回收站中彻底删除保留的数据,释放回收站容量,彻底删除后数据无法恢复。

临时解决触达上限导致的业务操作受阻

2. 方案1:改用硬删除API

「批量硬删除数据」接口将随 V11.11.0(10.28) 版本与回收站容量规则同步上线。

如果您通过 API 批量删除表单数据,并且确认删除后的数据不需要恢复,可以将原来的「批量删除数据」接口替换为「批量硬删除数据」接口。

改用后,后续删除的数据不会进入数据回收站,也不会占用回收站容量,但数据删除后无法恢复。

2.1 配置 API Key 接口授权范围

在调用硬删除API前,需要确认「硬删除多条数据接口」在使用的API Key的接口授权范围内。

2.2 替换API接口

如果目前使用的是 v5 批量删除接口,请保持原有的请求方法、鉴权方式、请求体及其他业务参数不变,仅替换接口路径:

需要修改的内容如下:

- /api/v5/app/entry/data/batch_delete
+ /api/v5/app/entry/data/batch_hard_delete

使用旧版本删除接口的用户,需要先按照 v5 接口要求调整请求路径及请求体结构,再进行接口替换。

接口对比表:

对比项

原批量删除接口

批量硬删除接口

请求方法

POST

POST

接口路径

/api/v5/app/entry/data/batch_delete

/api/v5/app/entry/data/batch_hard_delete

删除后是否可恢复

可在回收站保留期限内恢复

无法通过回收站恢复

是否占用回收站容量

是

否

单次删除数量

最多 100 条

最多 100 条

返回字段

status、success_count

status、success_count

2.3 Python 调用示例

下面以 Python 的 requests 库为例,演示如何调用批量硬删除接口。

请将代码中的占位符替换为实际值,并先使用少量测试数据验证。

import requests


def batch_hard_delete(api_base, api_key, app_id, entry_id, data_ids):
    """批量硬删除表单数据。删除后无法通过回收站恢复。"""

    # 单次最多硬删除 100 条数据
    if not isinstance(data_ids, list) or not 1 <= len(data_ids) <= 100:
        raise ValueError("data_ids 必须为数组,每次需要传入 1~100 条数据 ID")

    # 将原批量删除接口替换为批量硬删除接口
    url = (
        api_base.rstrip("/")
        + "/api/v5/app/entry/data/batch_hard_delete"
    )

    response = requests.post(
        url,
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
        },
        json={
            "app_id": app_id,
            "entry_id": entry_id,
            "data_ids": data_ids,
        },
        timeout=30,
    )
    response.raise_for_status()

    result = response.json()

    if result.get("status") != "success":
        raise RuntimeError(f"硬删除失败:{result}")

    return result.get("success_count", 0)


# 请将以下占位符替换为实际值
api_base = "YOUR_API_BASE"
api_key = "YOUR_API_KEY"
app_id = "YOUR_APP_ID"
entry_id = "YOUR_ENTRY_ID"

# 建议先使用少量无需保留的数据进行测试
data_ids = [
    "DATA_ID_1",
    "DATA_ID_2",
]

deleted_count = batch_hard_delete(
    api_base=api_base,
    api_key=api_key,
    app_id=app_id,
    entry_id=entry_id,
    data_ids=data_ids,
)

print(f"本次实际删除 {deleted_count} 条数据")

参数说明:

api_base  当前环境使用的 API 域名
api_key   具备目标应用、表单及硬删除接口权限的 API Key
app_id    应用 ID
entry_id  表单 ID
data_ids  待删除的表单数据 ID 数组,单次最多 100 条

如果一次需要删除超过100条数据,请按照每批不超过100条的规则进行分批调用。

2.4 返回结果

调用成功后,接口返回本次实际删除的数据条数。

{
  "status": "success",
  "success_count": 2
}

返回字段说明:

status         接口调用结果,success 表示调用成功
success_count  本次实际成功删除的数据条数

success_count 不一定等于请求中提交的 data_ids 数量。建议记录接口实际返回结果,不要直接将请求条数作为成功删除条数。

2.5 验证与注意事项

完成 API Key 授权配置及接口替换后,请先进行小范围验证,再切换正式业务。

验证步骤:

  1. 选择少量确认无需恢复的数据,调用批量硬删除接口;
  2. 确认接口返回 status: success,并核对 success_count 与实际删除数量;
  3. 确认目标数据已从表单中删除,且未进入数据回收站;
  4. 检查原有 ETL、BPA、数据日志等业务处理是否符合预期;
  5. 验证无误后,再将正式业务切换至批量硬删除接口。

注意事项:

  1. 网络请求超时不代表服务端一定未执行。重新调用前,请先核实目标数据状态,避免重复操作。
  2. 接口返回成功表示数据已从表单的有效数据中移除,不代表所有关联资源及后台任务都已处理完成。
  3. 改用硬删除 API 后,后续通过该接口删除的数据不会进入回收站,但回收站中的存量数据不会被自动清理。
  4. 如果仍需进行手动删除或软删除,而回收站已达到容量上限,请使用“方案3:彻底删除回收站数据”释放容量。

3. 方案2:改用同步表

如果您的实际需求是将外部系统数据定期同步至简道云,并且目前通过调用API实现每日清空表单数据后重新写入,建议改用同步表。

同步表通过数据集成承接外部系统数据,支持手动或定时同步,并可在简道云应用内被表单、页面等功能直接使用。

与自行调用 API 同步数据相比,使用同步表主要有以下优势:

  • 大规模数据同步更加稳定:同步任务由数据集成统一执行,可根据业务场景选择全量或增量同步,减少自行处理数据分批、接口限流、异常重试等问题,更适合数据量较大或需要周期性同步的场景。
  • 降低接口维护成本:通过页面配置数据连接和同步规则,无需自行开发并长期维护数据读取、清空、写入和异常处理等接口代码。
  • 避免占用回收站容量:改用同步表后,无需再通过API反复删除并重新写入表单数据,可以避免同步过程中持续产生回收站数据。

3.1 参与「数据集成」内测

「数据集成」可实现从外部平台定时/手动获取数据同步至简道云应用内,高效整合业务数据。

同步表是数据集成中承接外部系统数据的表单。后续同步表中的数据可在应用内被表单和页面直接调用,替代原先通过API将外部数据同步至表单的方式。

「数据集成」当前处于内测阶段,需先报名参与内测,内测开通后按「授权连接 → 配置同步 → 业务调用」三步完成配置,即可将原先通过API写入表单的外部数据,改由同步表承接。

仅支持同步已支持的数据源范围,请先确认您的外部数据源在支持目录内。

3.2 授权连接外部数据源

数据连接是同步表的数据来源,由系统管理员在开放平台配置。

操作步骤:

  1. 进入开放平台 >> 数据集成 >> 数据连接管理,点击「新建数据连接」;
  2. 在数据源市场中,选择您的外部系统(如金蝶云星空(企业版)、飞书表格等);
  3. 按界面提示填写该系统的授权信息,完成授权;
  4. 保存后,在「数据连接管理」列表中确认连接状态正常。

详细说明见帮助文档:https://hc.jiandaoyun.com/open/23679

3.3 配置同步表

操作步骤:

  1. 进入开放平台 >> 数据集成 >> 同步表管理,点击「新建同步表」;
  2. 配置来源:选择已配置好的数据连接,点击「下一步」;
  3. 配置去向:选择数据要同步至的应用;
  4. 配置同步细节:点击「添加表」,勾选需要同步的数据表,并在右侧逐表配置取数起点(仅增量表)、同步模式、定时同步;
    1. 若您原先通过「调用API清空旧数据再写入新数据」实现每日快照式同步外部数据,推荐您选择全量表作为同步模式;
  5. 配置完成后,同步表将展示在「同步表管理」列表中。首次可点击右侧「同步数据」手动同步验证,确认数据正常后再依赖定时同步。

详细说明见帮助文档:https://hc.jiandaoyun.com/open/23683

3.4 业务调用

同步表配置完成后,数据即可在应用内直接调用,主要包含两类调用方式:

使用问题、缺少数据源/数据表/字段,以及功能改进建议,欢迎通过反馈表提交👏:https://t6ixa9nyl6.jiandaoyun.com/f/695f2207d0477d9dfb6370a5

4. 方案3:彻底删除回收站数据

当删除数据因回收站容量超限而失败时,进入对应表单的数据回收站页面,筛选出无需恢复的数据并点击「彻底删除」,释放容量后即可恢复正常删除。

操作步骤:

  1. 进入对应表单的数据回收站页面;
  2. 按需筛选目标数据;
  3. 点击「彻底删除」并确认,所选数据被彻底删除后回收站容量即释放;
  4. 当数据回收站剩余容量不小于本次要删除的表单数据量时,删除操作即可成功执行。

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验