文件大小约为30KB的Azure Cosmos DB Slow

时间:2019-02-04 11:09:12

标签: azure azure-cosmosdb azure-cosmosdb-mongoapi

我们有一个具有以下特征的天蓝色宇宙数据库:

  1. 大约200万个文档。

  2. 每个文档大约30KB。

当我们使用Java mongo API查询cosmos DB时 (org.mongodb:mongodb-driver-sync:3.9.1

使用分片键(据我所知应该是最快的)检索4000个文档需要2分钟以上的时间。

这很常见吗?

我应该从API获得这些时间吗?

示例代码:

collection = <... init the collection>

final Bson filters = Filters.or(Filters.eq("shardKey", "key1"), Filters.eq("shardKey", "key2"));

long pre = System.currentTimeMillis();

logger.info("filter {}", filters);
List<Document> documents = new ArrayList<>();
FindIterable<Document> iterator = collection.find(filters);
try (MongoCursor<Document> cursor = iterator.iterator()) {
    while (cursor.hasNext()) {
        Document e = cursor.next();
        documents.add(e);
    }
}

logger.info("Got {}, time: {}", documents.size(), (System.currentTimeMillis() - pre));

似乎客户以大约100个项目的批次检索文档。 有没有增加批量大小的方法?

使用Azure门户时,门户中的界面将对呼叫进行分页并仅检索前100个文档,然后您必须单击“带来更多”以获取更多文档。似乎对于azure界面,还需要大约2秒钟才能检索到每个批次

我有什么选择可以使其更快地工作? 谢谢

0 个答案:

没有答案