如何批量删除数据

在表格存储中,您可以根据主键信息直接批量删除数据,或者通过配置数据生命周期(TTL)的方式自动删除过期数据。

重要

数据删除后将不可恢复,请谨慎操作。

根据主键直接删除数据

表格存储支持根据主键信息批量删除数据。您可以在查询到待删除数据的主键信息后,通过调用 BatchWriteRow 接口批量删除数据。具体步骤如下:

  1. 根据实际情况选择合适的方式查询待删除数据的主键信息。

    • 如果要删除指定主键范围内的数据,请调用 GetRange 接口,查询指定主键范围内的数据,并获取待删除数据的主键信息。具体操作,请参见读取数据

    • 如果要删除满足指定条件的数据,并且该数据表存在多元索引,请使用多元索引查询满足条件的数据,并获取待删除数据的主键信息。具体操作,请参见基础查询

    • 如果要删除数据表中所有数据,推荐您直接删除该数据表,然后重新创建一张配置相同的数据表。

      您也可以调用 GetRange 接口,通过设置完整主键范围均为虚拟点INF_MIN(无穷小)和INF_MAX(无穷大)进行全表数据扫描,获取所有数据的主键信息。但是执行此操作会消耗较多计算资源,请谨慎使用。

  2. 调用 BatchWriteRow 接口,根据主键信息批量删除数据。具体操作,请参见写入数据

    说明

    虽然 BatchWriteRow 限制单次只能写入 200 行数据,但是您可以使用 TableStoreWriter 进行并发写操作。同时 SDK 支持异步删除,数据删除速度与用户业务侧的 CPU 和网络能力相关。关于并发写的更多信息,请参见使用 TableStoreWriter 进行高并发、高吞吐的数据写入

配置TTL自动删除过期数据

数据生命周期是数据表的一个属性,即数据的保存时间。当属性列中数据的保留时间超过设置的TTL时,系统将自动异步清理该属性列中超过保留时间的数据。如果一行中所有属性列数据的保留时间均超过了TTL,则系统将自动异步清理该行数据。

具体步骤如下:

  1. 调用 UpdateTable 接口,修改数据表的TTL。

    重要

    如果数据表已经创建多元索引或二级索引了,则要求索引的TTL值必须小于或等于数据表的TTL值。在修改数据表的TTL时,请确保新设置的TTL值符合此约束条件。

  2. 超过TTL的过期数据为无效数据,系统将自动执行异步清理操作。

    即使系统还未删除数据,用户也无法读取对应数据。

    OSZAR »