问题标签 [azure-cosmosdb-tables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

azure-cosmosdb - 当我们没有获得相应函数的指标时,如何记录 Cosmos DB CountAsync 和 MaxAsync 操作的 RequestCharge?

Cosmos DB 的 CountAsync 和 MaxAsync 操作似乎没有指标。有谁知道记录这些操作的请求费用的更好方法?

0 投票
2 回答
2258 浏览

azure - 嵌套 Java 对象/Json (Spring Boot) 的 CosmosDb 分区键

我正在尝试根据嵌套的 Java 对象和相应的 Json 对集合进行分区。我知道这样做可能看起来不合理,但我正在从事一个远未开发的项目,而我们的客户团队所期望的布局目前并不灵活。例如)一个名为receiptItem的对象的等效Json如下所示:

是否可以使用“/item.itemId”行的语法在 Azure 中创建分区键?在使用 itemId 作为receiptItem 集合的分区键时,还有其他方法可以解决这个问题吗?

如果有关于如何在 Azure 中执行此操作的答案,我也会有兴趣弄清楚相应的 Java 代码是什么样的。与 C# 不同,@PartitionKey注解似乎没有指定嵌套对象的属性(如 中[ParitionKey(item.id)]),而且我在我的配置中(在 Spring 引导中)也看不到执行此操作的方法。

在 Java 中,看起来像:

0 投票
1 回答
64 浏览

azure-cosmosdb - CosmosDB 创建表无限期挂起

我已经尝试了创建表的方法的所有四种变体:

Azure 存储资源管理器立即创建了一个表。

没有超时或其他异常,只是挂起。

有任何想法吗?我正在努力思考如何调试它。

我已经在 ASP.NET 应用程序和控制台应用程序中尝试过。我已经尝试过方法的异步和同步形式。我尝试使用async/await并明确等待异步表单返回的任务。

注意与https://github.com/Azure-Samples/azure-cosmos-table-dotnet-core-getting-started.git 上的演示应用程序的行为相同

0 投票
1 回答
1451 浏览

python - 如何使用 python 连接到 CosmosDB Emulator 的表存储?

我在本地运行 Azure CosmosDB 模拟器,我希望使用 Python 中的 Table 接口。Microsoft 提供了用于连接到 Table API [1] 的 azure-cosmosdb-table python sdk。即使我能够连接到云中的实际 CosmosDB 帐户,我也无法成功连接到模拟器。

版本号等:

  • 视窗 10
  • Python 3.6 (CPython)
  • 天蓝色 cosmosdb 表 1.0.5

我用于尝试访问模拟器的代码:

no_ssl_verification上下文管理器禁用 SDK 使用的请求库中的所有 SSL 验证。它是从 Stack Overflow [5] 上的答案复制而来的。

上面的示例代码产生以下错误:

我无法在任何地方找到正确记录的用于仿真器的连接参数。模拟器的 Web 界面提供帐户名称和帐户密钥。剩下的就是一些猜测,这是我通过实验得出的。如果没有这些额外参数,我可以从日志输出中看到 SDK 正在尝试联系远程主机(可能是基于云的 Cosmos 服务的一部分),这当然会失败。is_emulated旗帜也是如此;时False,连接到远程主机。

为了查看模拟器是否有问题,我尝试使用 azure-cosmos SDK for the SQL/document interface for cosmosdb 来访问模拟器。使用以下代码效果很好:

这完全没有问题,我可以在模拟器的数据浏览器中看到数据库已经创建。

有没有人参考 CosmosDB 模拟器的表接口的正确连接字符串?

[1] https://docs.microsoft.com/en-us/python/api/azure-cosmosdb-table/?view=azure-python

[2] https://docs.microsoft.com/en-us/python/api/azure-cosmos/?view=azure-python

[3] https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator-export-ssl-certificates

[4] https://bugs.python.org/issue28547

[5]如何在 Python 请求中禁用安全证书检查

0 投票
1 回答
776 浏览

azure - Microsoft.Azure.Cosmos.Table - 如果使用 insertOrMergeOperation 插入或合并项目操作状态,我如何检索它?

我最近在使用 Microsoft.Azure.Cosmos.Table API,我注意到有一个很棒的方法称为InsertOrMergeOperation,但是,我想知道返回结果是否可以告诉我我的实体是否只是插入或合并/更新操作。我检查了 TableResult 对象,但它没有返回任何有用的信息。

有谁知道这次行动能否给我想要的东西?如果没有,是否有任何其他操作可以执行相同的工作流程?

0 投票
0 回答
29 浏览

azure - Azure CosmosDb UpsertDocumentAsync 提交与传播

我有两个端点暴露给客户端,一个创建 CosmosDb 文档,另一个读取同一个文档。也许数百次中有 2-3 次,我会从第二个端点收到异常,因为客户端正在尝试访问不存在的文档。

我可以从日志中看到,第一个端点(创建文档)被调用,返回一个成功代码,然后第二个端点被调用,但是直到初始端点调用后 45-60 秒才真正创建文档。

我怀疑创建文档操作已成功完成,但可能没有立即提交数据?或者它可能没有立即传播?

我应该分析任何 Upsert 返回值吗?

0 投票
1 回答
200 浏览

azure - 通过批处理 Azure Cosmos DB 中的表从同一分区获取不同的行键

我的表中有一些基于时间的数据,其架构如下:

  • 时间戳表示一年中每周某天举行考试的数据。示例:每年 5 个学生的 5 个考试周对于同一组学生将有 5 个时间戳。
  • id 是与每个学生关联的唯一键。
  • 我已使用分区键作为时间戳(因为我有兴趣了解特定周内考试的班级表现。
  • 我使用 id 作为行键(在我的情况下并不重要,因为我不使用它来过滤)现在,在客户端应用程序中,我通过分区键(时间戳)获取数据并添加一个附加层来处理详细信息每个学生。我必须为大学里的每个学生(学生人数众多)都这样做。

我想知道是否有更好的方法来获取这些结果(基本上减少调用次数),方法是在每次调用中批处理行键以按分区键进行过滤?

示例:由于我一次查找一周的数据,因此它只有一个 date 。那个日期就是分区键。假设今天有 10000 名学生参加了考试。我不想给 Cosmos DB 打 10K 电话给我他们的分数。相反,由于我们正在查看同一个分区,有没有办法通过过滤掉不需要的行来进行 <10K 调用?

0 投票
1 回答
294 浏览

azure - Azure Table 获得下一个功能?

查询 Cosmos DB(表存储 API)以获取存储中的“下一个”项目的好策略是什么?“下一个”定义为上次调用未返回的前 1 项。上次调用返回的项目正在内存中。使用 .NET 框架、C#。表预计将容纳大约 200 万个条目,因此不首选表扫描。:)

表存储如下所示:分区键(多个值的组合):“0000/00/01/2020-01-11”。例如,行键单个 int 值 1。行包含其他字符串数据。

所以键值对(分区键和行键)如下所示。该应用程序读取量很大,但不一定使用 Log Tail Pattern ( https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-design-guide#log-tail-pattern ) .

(注意底部的两个实体将位于不同的分区中,因此“aaa,x”存在于两个分区中)。

所以我认为查询只得到一个项目是

如果那是代码是正确的,并返回“aaa,x”如何确保后续查询将获得“aaa,y”,下一个将获得“aaa,z”,下一个将获得“bbb,x”和下一个将在同一个分区中再次获得“aaa,x”?

如果制作丰富的对象没有意义,而是直接查询 REST API 并可能保留上次在另一个表中使用的项目以及两个表之间的外连接或其他过滤条件,我愿意在而是那个方向。

谢谢!

0 投票
1 回答
585 浏览

azure - 如何将 Microsoft.WindowsAzure.Storage.Table.TableEntity 转换为 Microsoft.Azure.Cosmos.Table.TableEntity

我正在尝试使用 Azure 表 API 从经典 Azure 表存储迁移到 Cosmos DB。从特定数据开始,我想在写入现有 Azure 表存储的同时开始将当前传入的 Microsoft.WindowsAzure.Storage.Table.TableEntity 对象复制到 Cosmos DB。

有没有办法将 Microsoft.WindowsAzure.Storage.Table.TableEntity 转换为 Microsoft.Azure.Cosmos.Table.TableEntity?

0 投票
1 回答
206 浏览

azure - 如何调试/故障排除 Azure Cosmos DB(表 API)上的元数据 DTU 限制?

我们使用 Azure cosmos DB 来保存作业处理管道的状态信息。为此,我们使用表 API 和相应的 SDK。最近发现系统经常出现429-Request rate is too large错误。我们的事务 DTU 利用率远低于表上配置的最大值,但我们注意到在指标选项卡下,枚举表等操作使用的系统 DTU 已用尽,因此为 429。

我们最初修复了删除“CreateIfNotExists”方法调用,帮助修复了一段时间,但最近我们又开始遇到这个问题(尽管不像以前那么频繁)。很难调试/解决这个问题,因为我找不到足够的文档来说明哪个 SDK 方法调用耗尽了这个不可扩展的资源。我已在 CosmosDB 实例上启用日志记录,但我不确定要在日志中查找什么来解决此问题

这是我们用于与 Azure Cosmos DB 交互的单例类

以下片段列出了我们正在使用的不同查询 -

下面最后一个方法中的过滤器,包含一个分区键和一个自定义列