我们有访问 CosmosDB 表(链接服务)的 Pyspark 脚本。我们从 CosmosDB 表中删除了所有记录(通过减少 TTL)。但我仍然看到从 Pyspark 作业中删除的记录,但我没有从 Azure 门户的数据资源管理器中看到这些记录。
我希望当我从 Azure Synapse 工作区中的 Pyspark 查询时不会显示已删除的记录..
如果您希望记录被视为从分析存储中逻辑删除,您需要在事务存储中实际删除它们(不依赖于事务存储 ttl)。
(即使如此,它们也没有真正删除,可以使用
spark.cosmos.keepAllRecordVersions
标志和/或时间旅行功能读取,但默认情况下它们不会显示在您的查询结果中)
为了同步事务性存储和分析存储中的 ttl 删除,需要将 ttl 和 attl 设置为相同的值(并保持静态)。减少 ttl 来删除文档,然后再次将其备份,无法在分析存储中进行镜像,因为基础文档不会在那里删除,并且会在 attl 增加时再次重新出现。
现在你处于这个位置,但是解决起来会很棘手。无法从事务存储中删除文档并将其传播到分析存储,因为文档已经从事务存储中消失。
您可能只需要在分析存储查询中的
>
上包含 _ts
过滤器,以仅包含您希望被视为“重新开始”点之后的文档。