有没有办法利用表(azure-storage)客户端 API 使用 CosmosDb 设置项目级别 TTL(生存时间)?

Posted

技术标签:

【中文标题】有没有办法利用表(azure-storage)客户端 API 使用 CosmosDb 设置项目级别 TTL(生存时间)?【英文标题】:Is there a way to set item level TTL(Time-To-Live) with CosmosDb utilizing the Table (azure-storage) client API? 【发布时间】:2019-06-04 13:47:49 【问题描述】:

我正在将 CosmosDb 用于一个项目,并且首先尝试使用 Document-db java SQL API。使用该 API,我可以在 Document 本身上设置项目级 TTL。例如。

Document document = new Document(new Gson().toJson(testObject));
    document.setTimeToLive(10); // Time to live 10 seconds
    documentClient.createDocument(documentCollection.getSelfLink(), document, null,
        false).getResource();

不过,我也对使用 Table API 感兴趣。我在文档中找不到有关设置项目级 TTL 的任何内容。 https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-how-to-use-java 我正在使用https://github.com/Azure/azure-storage-java 8.0.0 版 https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage

是否可以这样做,或者至少为表中的所有项目设置服务器端 TTL?谢谢!

【问题讨论】:

可以跨所有 Cosmos DB API 在 Azure 门户中的容器级别启用/禁用 TTL。文档级别 TTL 取决于您使用的 SDK。您能否详细说明您正在使用的 SDK。 只要 SDK 支持 Java 和 .NET 支持的 TTL,您就可以在文档级别使用这些方法。我在 NodeJS 和 Python SDK 中都找不到这个功能。 【参考方案1】:

今天,Table API 没有公开任何 TTL 功能,所以很遗憾,您不能将 TTL 与 Table API 一起使用,即使 Cosmos 支持它。

【讨论】:

谢谢克里斯,我就是这么想的。 @chris-anderson-msft 你知道表 API 现在是否支持 TTL?我知道你可以在 UI 中进行设置,但是如何通过 SDK 来设置呢?

以上是关于有没有办法利用表(azure-storage)客户端 API 使用 CosmosDb 设置项目级别 TTL(生存时间)?的主要内容,如果未能解决你的问题,请参考以下文章

Python Anaconda 和 azure-storage 模块

如何在 vaadin 框架中实现 azure-storage

具有 NPM azure-storage 的 Azure 文件不返回访问令牌

有没有办法让父表上的触发器也监听 Postgres 中的所有子表?

有没有办法将所有现有的表数据转换为 UTF8 排序规则?

使用 Java 客户端库在 BigQuery 中获取按标签过滤的表列表