本文整理汇总了Java中com.amazonaws.services.dynamodbv2.model.ScanRequest类的典型用法代码示例。如果您正苦于以下问题:Java ScanRequest类的具体用法?Java ScanRequest怎么用?Java ScanRequest使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ScanRequest类属于com.amazonaws.services.dynamodbv2.model包,在下文中一共展示了ScanRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: dumpTables
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
private void dumpTables() {
for (String table : client.listTables().getTableNames()) {
ScanResult scanResult;
Map<String, AttributeValue> lastKey = null;
do {
scanResult = client.scan(new ScanRequest().withTableName(table).withExclusiveStartKey(lastKey));
lastKey = scanResult.getLastEvaluatedKey();
for (Map<String, AttributeValue> map : scanResult.getItems()) {
for (Map.Entry<String, AttributeValue> item : map.entrySet()) {
System.out.print("item.put(\"");
System.out.print(item.getKey());
System.out.print("\", b642Av(\"");
System.out.print(Base64.encodeAsString(AttributeValueMarshaller.marshall(item.getValue()).array()));
System.out.println("\"));");
}
System.out.print("ddb.putItem(new PutItemRequest(\"");
System.out.print(table);
System.out.println("\", item));");
System.out.println("item.clear();");
System.out.println();
}
} while (lastKey != null);
}
}
示例2: getAll
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* Gets all.
*
* @return the all
*/
public Collection<Ticket> getAll() {
final Collection<Ticket> tickets = new ArrayList<>();
final Collection<TicketDefinition> metadata = this.ticketCatalog.findAll();
metadata.forEach(r -> {
final ScanRequest scan = new ScanRequest(r.getProperties().getStorageName());
LOGGER.debug("Scanning table with request [{}]", scan);
final ScanResult result = this.amazonDynamoDBClient.scan(scan);
LOGGER.debug("Scanned table with result [{}]", scan);
tickets.addAll(result.getItems()
.stream()
.map(DynamoDbTicketRegistryFacilitator::deserializeTicket)
.collect(Collectors.toList()));
});
return tickets;
}
示例3: locate
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
@Override
public PropertySource<?> locate(final Environment environment) {
final AmazonDynamoDBClient amazonDynamoDBClient = getAmazonDynamoDbClient(environment);
createSettingsTable(amazonDynamoDBClient, false);
final ScanRequest scan = new ScanRequest(TABLE_NAME);
LOGGER.debug("Scanning table with request [{}]", scan);
final ScanResult result = amazonDynamoDBClient.scan(scan);
LOGGER.debug("Scanned table with result [{}]", scan);
final Properties props = new Properties();
result.getItems()
.stream()
.map(DynamoDbCloudConfigBootstrapConfiguration::retrieveSetting)
.forEach(p -> props.put(p.getKey(), p.getValue()));
return new PropertiesPropertySource(getClass().getSimpleName(), props);
}
示例4: scanTable
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
public RetryResult<ScanResult> scanTable(
String tableName, DynamoDBQueryFilter dynamoDBQueryFilter, Integer segment, Integer
totalSegments, Map<String, AttributeValue> exclusiveStartKey, long limit, Reporter reporter) {
final ScanRequest scanRequest = new ScanRequest(tableName)
.withExclusiveStartKey(exclusiveStartKey)
.withLimit(Ints.checkedCast(limit))
.withSegment(segment)
.withTotalSegments(totalSegments)
.withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL);
if (dynamoDBQueryFilter != null) {
Map<String, Condition> scanFilter = dynamoDBQueryFilter.getScanFilter();
if (!scanFilter.isEmpty()) {
scanRequest.setScanFilter(scanFilter);
}
}
RetryResult<ScanResult> retryResult = getRetryDriver().runWithRetry(new Callable<ScanResult>() {
@Override
public ScanResult call() {
log.debug("Executing DynamoDB scan: " + scanRequest);
return dynamoDB.scan(scanRequest);
}
}, reporter, PrintCounter.DynamoDBReadThrottle);
return retryResult;
}
示例5: scan
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
public ScanResult scan(final ScanRequest request, final int permitsToConsume) throws BackendException {
setUserAgent(request);
ScanResult result;
timedReadThrottle(SCAN, request.getTableName(), permitsToConsume);
final Timer.Context apiTimerContext = getTimerContext(SCAN, request.getTableName());
try {
result = client.scan(request);
} catch (Exception e) {
throw processDynamoDbApiException(e, SCAN, request.getTableName());
} finally {
apiTimerContext.stop();
}
meterConsumedCapacity(SCAN, result.getConsumedCapacity());
measureItemCount(SCAN, request.getTableName(), result.getCount());
return result;
}
示例6: getKeys
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
@Override
public KeyIterator getKeys(final SliceQuery query, final StoreTransaction txh) throws BackendException {
log.debug("Entering getKeys table:{} query:{} txh:{}", getTableName(), encodeForLog(query), txh);
final ScanRequest scanRequest = super.createScanRequest();
final Scanner scanner;
if (client.isEnableParallelScan()) {
scanner = client.getDelegate().getParallelScanCompletionService(scanRequest);
} else {
scanner = new SequentialScanner(client.getDelegate(), scanRequest);
}
// Because SINGLE records cannot be split across scan results, we can use the same interpreter for both
// sequential and parallel scans.
final KeyIterator result = new ScanBackedKeyIterator(scanner, new SingleRowScanInterpreter(query));
log.debug("Exiting getKeys table:{} query:{} txh:{} returning:{}", getTableName(), encodeForLog(query), txh, result);
return result;
}
示例7: getKeys
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
@Override
public KeyIterator getKeys(final SliceQuery query, final StoreTransaction txh) throws BackendException {
log.debug("Entering getKeys table:{} query:{} txh:{}", getTableName(), encodeForLog(query), txh);
final Expression filterExpression = new FilterExpressionBuilder().rangeKey()
.range(query)
.build();
final ScanRequest scanRequest = super.createScanRequest()
.withFilterExpression(filterExpression.getConditionExpression())
.withExpressionAttributeValues(filterExpression.getAttributeValues());
final Scanner scanner;
final ScanContextInterpreter interpreter;
if (client.isEnableParallelScan()) {
scanner = client.getDelegate().getParallelScanCompletionService(scanRequest);
interpreter = new MultiRowParallelScanInterpreter(this, query);
} else {
scanner = new SequentialScanner(client.getDelegate(), scanRequest);
interpreter = new MultiRowSequentialScanInterpreter(this, query);
}
final KeyIterator result = new ScanBackedKeyIterator(scanner, interpreter);
log.debug("Exiting getKeys table:{} query:{} txh:{} returning:{}", getTableName(), encodeForLog(query), txh, result);
return result;
}
示例8: grab
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* This method gets a segmentedScanResult and submits the next scan request for that segment, if there is one.
* @return the next available ScanResult
* @throws ExecutionException if one of the segment pages threw while executing
* @throws InterruptedException if one of the segment pages was interrupted while executing.
*/
private ScanContext grab() throws ExecutionException, InterruptedException {
final Future<ScanContext> ret = exec.take();
final ScanRequest originalRequest = ret.get().getScanRequest();
final int segment = originalRequest.getSegment();
final ScanSegmentWorker sw = workers[segment];
if (sw.hasNext()) {
currentFutures[segment] = exec.submit(sw);
} else {
finishSegment(segment);
currentFutures[segment] = null;
}
return ret.get(); //This might block if nothing is available.
}
示例9: listUsers
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* Returns the list of usernames stored in the identity table.
*
* @return list of existing usernames in DynamoDB table
*/
public List<String> listUsers() {
List<String> users = new ArrayList<String>(1000);
ScanResult result = ddb.scan(new ScanRequest().withTableName(USER_TABLE).withLimit(1000));
for (Map<String, AttributeValue> item : result.getItems()) {
String s = "";
for (Entry<String, AttributeValue> entry : item.entrySet()) {
s += " ** " + entry.getKey() + " = " + entry.getValue().getS();
}
users.add(s);
}
return users;
}
开发者ID:awslabs,项目名称:amazon-cognito-developer-authentication-sample,代码行数:23,代码来源:UserAuthentication.java
示例10: listDevices
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* @return the list of device ID (UID) stored in the identity table.
*/
public List<String> listDevices() {
List<String> devices = new ArrayList<String>(1000);
ScanResult result = ddb.scan(new ScanRequest().withTableName(DEVICE_TABLE).withLimit(1000));
for (Map<String, AttributeValue> item : result.getItems()) {
String s = "";
for (Entry<String, AttributeValue> entry : item.entrySet()) {
s += " ** " + entry.getKey() + " = " + entry.getValue().getS();
}
devices.add(s);
}
return devices;
}
开发者ID:awslabs,项目名称:amazon-cognito-developer-authentication-sample,代码行数:21,代码来源:DeviceAuthentication.java
示例11: pipe
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* Begins to pipe the log results by parallel scanning the table and the
* consumer writing the results.
*/
public void pipe(final AbstractLogConsumer consumer)
throws ExecutionException, InterruptedException {
final DynamoDBTableScan scanner = new DynamoDBTableScan(rateLimit,
client);
final ScanRequest request = new ScanRequest().withTableName(tableName)
.withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL)
.withLimit(BootstrapConstants.SCAN_LIMIT)
.withConsistentRead(consistentScan);
final ParallelScanExecutor scanService = scanner
.getParallelScanCompletionService(request, numSegments,
threadPool, section, totalSections);
while (!scanService.finished()) {
SegmentedScanResult result = scanService.grab();
consumer.writeResult(result);
}
shutdown(true);
consumer.shutdown(true);
}
示例12: getParallelScanCompletionService
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* This function copies a scan request for the number of segments and then
* adds those workers to the executor service to begin scanning.
*
* @param totalSections
* @param section
*
* @return <ParallelScanExecutor> the parallel scan executor to grab results
* when a segment is finished.
*/
public ParallelScanExecutor getParallelScanCompletionService(
ScanRequest initialRequest, int numSegments, Executor executor,
int section, int totalSections) {
final int segments = Math.max(1, numSegments);
final ParallelScanExecutor completion = new ParallelScanExecutor(
executor, segments);
int sectionSize = segments / totalSections;
int start = sectionSize * section;
int end = start + sectionSize;
if (section + 1 == totalSections) {
end = segments;
}
for (int segment = start; segment < end; segment++) {
ScanRequest scanSegment = copyScanRequest(initialRequest)
.withTotalSegments(segments).withSegment(segment);
completion.addWorker(new ScanSegmentWorker(this.client,
this.rateLimiter, scanSegment), segment);
}
return completion;
}
示例13: getLandUnits
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
@Override
public List<LandUnit> getLandUnits(Long userId) {
List<LandUnit> retval = new ArrayList<LandUnit>();
try {
/*
* Scan items for movies with user id attribute.
*/
Map<String, Condition> scanFilter = new HashMap<String, Condition>();
Condition condition = new Condition()
.withComparisonOperator(ComparisonOperator.EQ.toString())
.withAttributeValueList(new AttributeValue().withN(userId.toString()));
scanFilter.put(LandUnit.USER_ID_ATTR_NAME, condition);
ScanRequest scanRequest =
new ScanRequest(LANDUNIT_DYNAMO_DB_TABLE_NAME).withScanFilter(scanFilter);
ScanResult scanResult = dynamoDB.scan(scanRequest);
LOG.debug("DDB Scan Result: " + scanResult);
retval = mapItemsToLandUnit(scanResult.getItems());
} catch (Exception e) {
LOG.error("Unable to retrieve land units from DDB " + e.getMessage());
}
return retval;
}
示例14: getDictionaryEntry
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* Generate a list of attribute names found in the Aggregator's dynamo
* table. Assumes that all Items in the Aggregator table are of the same
* structure.
*
* @param dynamoClient
* Dynamo DB Client to use for connection to Dynamo DB.
* @param dynamoTable
* The Dynamo Table for the Aggregator
* @return A list of attribute names from the Dynamo table
* @throws Exception
*/
public static List<String> getDictionaryEntry(
final AmazonDynamoDB dynamoClient, final String dynamoTable)
throws Exception {
// get a list of all columns in the table, with keys first
List<String> columns = new ArrayList<>();
List<KeySchemaElement> keys = dynamoClient.describeTable(dynamoTable)
.getTable().getKeySchema();
for (KeySchemaElement key : keys) {
columns.add(key.getAttributeName());
}
ScanResult scan = dynamoClient.scan(new ScanRequest()
.withTableName(dynamoTable).withSelect(Select.ALL_ATTRIBUTES)
.withLimit(1));
List<Map<String, AttributeValue>> scannedItems = scan.getItems();
for (Map<String, AttributeValue> map : scannedItems) {
for (String s : map.keySet()) {
if (!columns.contains(s))
columns.add(s);
}
}
return columns;
}
示例15: getDictionaryEntry
import com.amazonaws.services.dynamodbv2.model.ScanRequest; //导入依赖的package包/类
/**
* Generate a list of attribute names found in the Aggregator's dynamo
* table. Assumes that all Items in the Aggregator table are of the same
* structure.
*
* @param dynamoClient Dynamo DB Client to use for connection to Dynamo DB.
* @param dynamoTable The Dynamo Table for the Aggregator
* @return A list of attribute names from the Dynamo table
* @throws Exception
*/
protected List<String> getDictionaryEntry() throws Exception {
// get a list of all columns in the table, with keys first
List<String> columns = new ArrayList<>();
List<KeySchemaElement> keys = dynamoClient.describeTable(this.tableName).getTable().getKeySchema();
for (KeySchemaElement key : keys) {
columns.add(key.getAttributeName());
}
ScanResult scan = dynamoClient.scan(new ScanRequest().withTableName(this.tableName).withSelect(
Select.ALL_ATTRIBUTES).withLimit(1));
List<Map<String, AttributeValue>> scannedItems = scan.getItems();
for (Map<String, AttributeValue> map : scannedItems) {
for (String s : map.keySet()) {
if (!columns.contains(s))
columns.add(s);
}
}
return columns;
}