从 Azure 数据资源管理器中删除数据

Azure 数据资源管理器支持多种从表中删除数据的方法。 以下信息可帮助你选择最适合你的用例的删除方法。

使用案例 注意事项 方法
删除表中的所有数据 使用 .clear table data 命令
定期删除旧数据 需要自动删除解决方案时使用 使用保留策略
按分片批量删除特定数据 仅在你是专家用户时使用 使用 .drop extents 命令
根据内容删除记录 - 不一定删除包含已删除记录的存储项目
- 已删除的记录无法恢复(无论使用哪种保留或可恢复性设置)
- 需要快速删除记录时使用
使用软删除
根据内容删除记录 - 删除包含已删除记录的存储项目
- 已删除的记录无法恢复(无论使用哪种保留或可恢复性设置)
- 需要大量系统资源和时间才能完成
使用清除

以下部分介绍不同的删除方法。

删除表中的所有数据

若要删除表中的所有数据,请使用 .clear table data 命令。 这是从表中删除所有数据最高效的方法。

语法:

.clear table <TableName> data

使用保留策略删除数据

根据保留策略自动删除数据。 可以在数据库或表级别设置保留策略。 无法保证删除发生的时间,但在保留期之前不会删除数据。 这是一种非常高效且便捷的删除旧数据的方法。

假设某个数据库或表的保留期设置为 90 天。 如果只需要 60 天的数据,请如下所述删除更旧的数据:

.alter-merge database <DatabaseName> policy retention softdelete = 60d

.alter-merge table <TableName> policy retention softdelete = 60d

通过删除盘区来删除数据

盘区(数据分片)是数据存储在其中的内部结构。 每个盘区可容纳多达数百万条记录。 可以使用删除盘区命令逐个或者按组删除盘区。

示例

你可以删除表中的所有行或只删除特定盘区。

  • 删除表中的所有行:

    .drop extents from TestTable
    
  • 删除特定盘区:

    .drop extent e9fac0d2-b6d5-4ce3-bdb4-dea052d13b42
    

删除单个行

清除和软删除都可用于删除单个行,但是,软删除不一定删除包含要删除的记录的存储项目,而清除会删除所有此类存储项目。

无论使用哪种保留或可恢复性设置,这两种方法都会阻止恢复已删除的记录。 “删除”过程是最终的且不可逆的。

软删除

使用软删除时,不一定会从存储项目中删除数据。 此方法将所有匹配的记录标记为已删除,以便在查询中将它们筛选掉,这样就不需要占用大量系统资源。

清除

使用清除时,包含一条或多条待删除记录的分片将替换为不存在这些记录的新分片。 此删除过程不会立即完成,它需要使用大量系统资源,可能需要一整天才能完成。