in azure-documentdb-benchmark/src/main/java/com/microsoft/azure/documentdb/benchmark/SimpleTests.java [402:442]
private void readIds() throws IOException {
ConnectionPolicy connectionPolicy = new ConnectionPolicy();
connectionPolicy.setConnectionMode(ConnectionMode.valueOf(connectionMode));
List<String> regions = Arrays.asList(preferredRegions.split(";"));
connectionPolicy.setPreferredLocations(regions);
client = new DocumentClient(endpoint, key, connectionPolicy, ConsistencyLevel.valueOf(consistencyLevel));
final String collectionLink = String.format("dbs/%s/colls/%s", dbName, collectionName);
List<PartitionKeyRange> partitionKeyRanges = client.readPartitionKeyRanges(collectionLink, (FeedOptions) null)
.getQueryIterable().toList();
List<String> ids = new ArrayList<>();
for (PartitionKeyRange r : partitionKeyRanges) {
FeedOptions feedOptions = new FeedOptions();
feedOptions.setPartitionKeyRangeIdInternal(r.getId());
feedOptions.setPageSize(1);
try {
List<Document> docs = client.readDocuments(collectionLink, feedOptions).getQueryIterable().fetchNextBlock();
for (Document doc : docs) {
ids.add(doc.getId());
}
} catch (DocumentClientException e) {
logger.error("Failed to read documents from partition {}", r.getId());
}
}
if (StringUtils.isEmpty(docIdFilePath)) {
logger.error("IDs file path is empty");
return;
}
PrintWriter writer = new PrintWriter(new FileWriter(docIdFilePath));
for (String idString : ids) {
writer.println(idString);
}
writer.close();
}