【Azure 存储服务】存储在Azure Storage Table中的数据,如何按照条件进行删除呢?

简介: 【Azure 存储服务】存储在Azure Storage Table中的数据,如何按照条件进行删除呢?

问题描述

如何按条件删除 Storage Table 中的数据,如果Table中有大量的条记录需要删除,Java代码如何按条件删除 Table中的数据(Entity)?

(通过Azure Storage Explorer工具是可以删除,但是由于数据量太大,人工操作耗时太久,所以需要使用Java代码完成)

 

问题解答

删除Table

删除表的操作可以通过 Storage Explorer工具或者REST API接口(https://learn.microsoft.com/zh-cn/rest/api/storageservices/delete-table)完成。成功删除表时,会立即将其标记为要删除,并且客户端不再可访问。 稍后,在垃圾回收期间,该表将从表存储中删除。

请注意,删除表可能需要至少 40 秒才能完成。 如果在删除表时尝试对表执行操作,服务将返回状态代码 409 (Conflict) 。 该服务返回其他错误信息,指示正在删除表。

 

删除Table中的Entity

当需要根据某些条件删除表中数据的时候,可以参考Table的实例代码:https://docs.azure.cn/zh-cn/cosmos-db/table/how-to-use-java, 调用 TableClient.deleteEntity  即可根据 partition key 和 row key 来删除数据。 也可以先查找需要删除的Entity后,调用 deleteEntity 方法删除

  • deleteEntity(TableEntity entity) : Deletes an TableEntity from the table.
  • deleteEntity(String partitionKey, String rowKey) : Deletes an TableEntity from the table.

(可以在红色箭头处 forEach 中调用 tableClient.deleteEntity(tableEntity) 来删除它)

 

其他方式

当然也可以使用RESTAPI的方式执行实体组事务 (REST API) - https://learn.microsoft.com/zh-cn/rest/api/storageservices/performing-entity-group-transactions#requirements-for-entity-group-transactions

需要注意的是批量操作需要满足以下要求:

• 要作为事务部分操作的所有实体都必须具有相同的 PartitionKey 值。
• 一个实体在事务中只能出现一次,对其只能执行一项操作。
• 事务可以包含最多 100 个实体,其总有效负载大小不能超过 4 MiB。

 

 

 

 

 

【END】

相关文章
|
5天前
|
存储 大数据 开发工具
【Azure ADLS】Storage Account使用Data Lake模式的问题讨论
在使用Azure Storage Account的时候,有两种模式账号,一种是普通的Stroage Account,另外一种是大数据存储模式 Data Lake模式,而这两种模式的启用与 Hierarchical Namespace设置有关:
|
27天前
|
容器
【Azure ADLS】为Azure Data Lake Storage的Container赋予了操作权限后创建子文件夹遇见403报错
ADLS "This request is not authorized to perform this operation using this permission" 403
41 13
|
4月前
|
存储 容器
【Azure 存储服务】如何查看Storage Account的删除记录,有没有接口可以下载近1天删除的Blob文件信息呢?
【Azure 存储服务】如何查看Storage Account的删除记录,有没有接口可以下载近1天删除的Blob文件信息呢?
|
4月前
|
存储 C++ Windows
【Azure Data Lake Storage】如何才能保留Blob中的文件目录结构(即使文件夹中文件数量为0的情况下)?
【Azure Data Lake Storage】如何才能保留Blob中的文件目录结构(即使文件夹中文件数量为0的情况下)?
【Azure Data Lake Storage】如何才能保留Blob中的文件目录结构(即使文件夹中文件数量为0的情况下)?
|
4月前
|
存储 JSON API
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
|
4月前
|
存储 NoSQL API
【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例
【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例
|
4月前
|
存储 JSON Java
【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内不在可见的问题
【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内不在可见的问题
|
4月前
|
存储 SQL 关系型数据库
【Azure 存储服务】Azure Storage Account 下的 Table 查询的性能调优
【Azure 存储服务】Azure Storage Account 下的 Table 查询的性能调优
|
4月前
|
存储 容器
【Azure 存储服务】多设备并发往 Azure Storage Blob 的 Container 存数据是否可以
【Azure 存储服务】多设备并发往 Azure Storage Blob 的 Container 存数据是否可以
|
4月前
|
存储 C# Python
【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的PowerShell代码
【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的PowerShell代码