Azure cosmos DB Медленно при наличии документов размером около 30 КБ - PullRequest
0 голосов
/ 04 февраля 2019

У нас есть база данных Azure Cosmos со следующими характеристиками:

  1. О 2М документах.

  2. Каждый документ около 30 КБ.

Когда мы запрашиваем базу данных cosmos с использованием Java mongo API (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 секунд для извлечения каждой партии

Какие у меня есть варианты, чтобы она работала быстрее?Спасибо

...