本文整理汇总了Java中com.amazonaws.services.dynamodbv2.model.KeysAndAttributes类的典型用法代码示例。如果您正苦于以下问题:Java KeysAndAttributes类的具体用法?Java KeysAndAttributes怎么用?Java KeysAndAttributes使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
KeysAndAttributes类属于com.amazonaws.services.dynamodbv2.model包,在下文中一共展示了KeysAndAttributes类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: execute
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
@Test
public void execute() {
Map<String, AttributeValue> key = new HashMap<String, AttributeValue>();
key.put("1", new AttributeValue("Key_1"));
Map<String, AttributeValue> unprocessedKey = new HashMap<String, AttributeValue>();
unprocessedKey.put("1", new AttributeValue("UNPROCESSED_KEY"));
Map<String, KeysAndAttributes> keysAndAttributesMap = new HashMap<String, KeysAndAttributes>();
KeysAndAttributes keysAndAttributes = new KeysAndAttributes().withKeys(key);
keysAndAttributesMap.put("DOMAIN1", keysAndAttributes);
exchange.getIn().setHeader(DdbConstants.BATCH_ITEMS, keysAndAttributesMap);
command.execute();
assertEquals(keysAndAttributesMap, ddbClient.batchGetItemRequest.getRequestItems());
List<Map<String, AttributeValue>> batchResponse = (List<Map<String, AttributeValue>>)exchange.getIn().getHeader(DdbConstants.BATCH_RESPONSE, Map.class).get("DOMAIN1");
AttributeValue value = batchResponse.get(0).get("attrName");
KeysAndAttributes unProcessedAttributes = (KeysAndAttributes)exchange.getIn().getHeader(
DdbConstants.UNPROCESSED_KEYS, Map.class).get("DOMAIN1");
Map<String, AttributeValue> next = unProcessedAttributes.getKeys().iterator().next();
assertEquals(new AttributeValue("attrValue"), value);
assertEquals(unprocessedKey, next);
}
开发者ID:HydAu,项目名称:Camel,代码行数:27,代码来源:BatchGetItemsCommandTest.java
示例2: batchGetItem
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public BatchGetItemResult batchGetItem(BatchGetItemRequest batchGetItemRequest) {
this.batchGetItemRequest = batchGetItemRequest;
Map<String, List<Map<String, AttributeValue>>> responseMap = new HashMap<String, List<Map<String, AttributeValue>>>();
List<Map<String, AttributeValue>> p = new ArrayList<Map<String, AttributeValue>>();
p.add(getAttributes());
responseMap.put("DOMAIN1", p);
Map<String, AttributeValue> keysMap = new HashMap<String, AttributeValue>();
keysMap.put("1", new AttributeValue("UNPROCESSED_KEY"));
Map<String, KeysAndAttributes> unprocessedKeys = new HashMap<String, KeysAndAttributes>();
unprocessedKeys.put("DOMAIN1", new KeysAndAttributes().withKeys(keysMap));
return new BatchGetItemResult()
.withResponses(responseMap)
.withUnprocessedKeys(unprocessedKeys);
}
开发者ID:HydAu,项目名称:Camel,代码行数:18,代码来源:AmazonDDBClientMock.java
示例3: convertResultKeys
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
private KeysAndAttributes convertResultKeys(
Map<String, Set<String>> resultKeys) {
KeysAndAttributes keys = new KeysAndAttributes();
for (final String s : resultKeys.keySet()) {
for (final String value : resultKeys.get(s)) {
keys.withKeys(new HashMap<String, AttributeValue>() {
{
put(labelAttribute, new AttributeValue().withS(s));
put(dateAttribute, new AttributeValue().withS(value));
}
});
}
}
return keys;
}
开发者ID:awslabs,项目名称:amazon-kinesis-aggregators,代码行数:18,代码来源:DynamoQueryEngine.java
示例4: batchGetDataByKeys
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
private List<Map<String, AttributeValue>> batchGetDataByKeys(
final String tableName, final KeysAndAttributes keys) {
Map<String, KeysAndAttributes> requestMap = new HashMap<>();
keys.setConsistentRead(true);
requestMap.put(tableName, keys);
BatchGetItemResult result = null;
try {
result = dynamoClient.batchGetItem(new BatchGetItemRequest(
requestMap));
} catch (AmazonServiceException e) {
LOG.error(e);
throw e;
}
return result.getResponses().get(this.tableName);
}
开发者ID:awslabs,项目名称:amazon-kinesis-aggregators,代码行数:18,代码来源:DynamoQueryEngine.java
示例5: batchGetItem
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
public CompletableFuture<Map<String, List<Map<String, Object>>>> batchGetItem(final Map<String, KeysAndAttributes> requestItems) {
return asyncExecutor.execute(new Callable<Map<String, List<Map<String, Object>>>>() {
@Override
public Map<String, List<Map<String, Object>>> call() throws Exception {
return dbExecutor.batchGetItem(requestItems);
}
});
}
开发者ID:landawn,项目名称:AbacusUtil,代码行数:9,代码来源:AsyncDynamoDBExecutor.java
示例6: test_batchGetItem_WithAllParameters
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
@Test
public void test_batchGetItem_WithAllParameters() throws Exception {
String TEST_ATTRIBUTE_2 = "Attribute2";
String TEST_ATTRIBUTE_VALUE_2 = "AttributeValue2";
createTable();
putItem(TEST_ATTRIBUTE, TEST_ATTRIBUTE_VALUE);
putItem(TEST_ATTRIBUTE_2, TEST_ATTRIBUTE_VALUE_2);
List<Map<String, AttributeValue>> keys = new ArrayList<Map<String, AttributeValue>>();
Map<String, AttributeValue> key1 = new HashMap<String, AttributeValue>();
key1.put(TEST_ATTRIBUTE, new AttributeValue()
.withS(TEST_ATTRIBUTE_VALUE));
keys.add(key1);
Map<String, AttributeValue> key2 = new HashMap<String, AttributeValue>();
key2.put(TEST_ATTRIBUTE_2, new AttributeValue()
.withS(TEST_ATTRIBUTE_VALUE_2));
keys.add(key2);
Map<String, KeysAndAttributes> requestItems = new HashMap<String, KeysAndAttributes>();
requestItems.put(TEST_TABLE_NAME, new KeysAndAttributes()
.withKeys(keys));
String returnConsumedCapacity = "";
BatchGetItemResult result = dynamoDb.batchGetItem(requestItems,returnConsumedCapacity);
String tableName = result.getResponses().keySet().toArray(new String[1])[0];
List<Map<String, AttributeValue>> items = result.getResponses().get(tableName);
AttributeValue value1 = items.get(0).get(TEST_ATTRIBUTE);
AttributeValue value2 = items.get(1).get(TEST_ATTRIBUTE_2);
assertThat(tableName, equalTo(TEST_TABLE_NAME));
assertThat(items.size(), equalTo(keys.size()));
assertThat(value1.getS(), equalTo(TEST_ATTRIBUTE_VALUE));
assertThat(value2.getS(), equalTo(TEST_ATTRIBUTE_VALUE_2));
}
开发者ID:bizo,项目名称:aws-java-sdk-stubs,代码行数:36,代码来源:AmazonDynamoDBStubTest.java
示例7: batchGet
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
/**
* Reads multiple items from DynamoDB, in batch.
* @param <P> type of object
* @param kna a map of row key->data
* @param results a map of ID->ParaObject
*/
protected static <P extends ParaObject> void batchGet(Map<String, KeysAndAttributes> kna, Map<String, P> results) {
if (kna == null || kna.isEmpty() || results == null) {
return;
}
try {
BatchGetItemResult result = getClient().batchGetItem(new BatchGetItemRequest().
withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL).withRequestItems(kna));
if (result == null) {
return;
}
List<Map<String, AttributeValue>> res = result.getResponses().get(kna.keySet().iterator().next());
for (Map<String, AttributeValue> item : res) {
P obj = fromRow(item);
if (obj != null) {
results.put(obj.getId(), obj);
}
}
logger.debug("batchGet(): total {}, cc {}", res.size(), result.getConsumedCapacity());
if (result.getUnprocessedKeys() != null && !result.getUnprocessedKeys().isEmpty()) {
Thread.sleep(1000);
logger.warn("{} UNPROCESSED read requests!", result.getUnprocessedKeys().size());
batchGet(result.getUnprocessedKeys(), results);
}
} catch (Exception e) {
logger.error(null, e);
}
}
开发者ID:Erudika,项目名称:para,代码行数:37,代码来源:AWSDynamoUtils.java
示例8: loadTokensByClientAndUserIndex
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
private Collection<OAuth2AccessToken> loadTokensByClientAndUserIndex(Map<String, Condition> keyCondition, boolean filterOutNullUsers) {
List<OAuth2AccessToken> accessTokens = new ArrayList<OAuth2AccessToken>();
List<String> accessTokenIds = null;
try {
accessTokenIds = dynamoDBTemplate.query(schema.getAccessTableName(), schema.getAccessIndexClientIdAndUserName(), keyCondition, //
new ObjectExtractor<String>() {
public String extract(Map<String, AttributeValue> values) {
return values.get(schema.getAccessColumnTokenId()).getS();
}
}, schema.getAccessColumnTokenId());
List<Map<String, AttributeValue>> keys = new ArrayList<Map<String, AttributeValue>>(accessTokenIds.size());
for (String accessTokenId : accessTokenIds) {
keys.add(Collections.singletonMap(schema.getAccessColumnTokenId(), new AttributeValue(accessTokenId)));
}
if (filterOutNullUsers) {
accessTokens = dynamoDBTemplate.batchGet(schema.getAccessTableName(), //
new KeysAndAttributes().withKeys(keys).withConsistentRead(true).withAttributesToGet(schema.getAccessColumnTokenId(), schema.getAccessColumnToken(), schema.getAccessColumnIsNullUser()), //
new NonNullUserSafeAccessTokenExtractor());
} else {
accessTokens = dynamoDBTemplate.batchGet(schema.getAccessTableName(), //
new KeysAndAttributes().withKeys(keys).withConsistentRead(true).withAttributesToGet(schema.getAccessColumnTokenId(), schema.getAccessColumnToken()), //
new SafeAccessTokenExtractor());
}
} catch (EmptyResultDataAccessException e) {
if (LOG.isInfoEnabled()) {
LOG.info("Failed to find access token for " + keyCondition.toString());
}
}
accessTokens = removeNulls(accessTokens);
return accessTokens;
}
开发者ID:Vivastream,项目名称:spring-security-oauth2-dynamodb,代码行数:36,代码来源:DynamoDBTokenStore.java
示例9: batchGet
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
public <T> List<T> batchGet(String tableName, KeysAndAttributes keysAndAttributes, final ObjectExtractor<T> extractor) throws EmptyResultDataAccessException {
Assert.notNull(tableName, "Table must not be null");
Assert.notNull(extractor, "ObjectExtractor must not be null");
if (logger.isDebugEnabled()) {
logger.debug("Executing batch get on " + tableName + " for " + keysAndAttributes.toString());
}
List<T> results = new ArrayList<T>(keysAndAttributes.getKeys().size());
Map<String, KeysAndAttributes> unprocessedKeys = Collections.singletonMap(tableName, keysAndAttributes);
while (unprocessedKeys.size() > 0) {
BatchGetItemResult result = client.batchGetItem(unprocessedKeys);
List<Map<String, AttributeValue>> items = result.getResponses().get(tableName);
if (items != null) {
for (Map<String, AttributeValue> item : items) {
results.add(extractor.extract(item));
}
}
unprocessedKeys = result.getUnprocessedKeys();
}
if (results.size() == 0) {
throw new EmptyResultDataAccessException("No results found in " + tableName + "for " + keysAndAttributes.toString());
}
return results;
}
开发者ID:Vivastream,项目名称:spring-security-oauth2-dynamodb,代码行数:29,代码来源:DynamoDBTemplate.java
示例10: batchGetItem
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
@SuppressWarnings("rawtypes")
public Map<String, List<Map<String, Object>>> batchGetItem(final Map<String, KeysAndAttributes> requestItems) {
return (Map) batchGetItem(Map.class, requestItems);
}
开发者ID:landawn,项目名称:AbacusUtil,代码行数:5,代码来源:DynamoDBExecutor.java
示例11: determineBatchItems
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private Map<String, KeysAndAttributes> determineBatchItems() {
return exchange.getIn().getHeader(DdbConstants.BATCH_ITEMS, Map.class);
}
开发者ID:HydAu,项目名称:Camel,代码行数:5,代码来源:BatchGetItemsCommand.java
示例12: readAll
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
@Override
public <P extends ParaObject> Map<String, P> readAll(String appid, List<String> keys, boolean getAllColumns) {
if (keys == null || keys.isEmpty() || StringUtils.isBlank(appid)) {
return new LinkedHashMap<>();
}
// DynamoDB doesn't allow duplicate keys in batch requests
Set<String> keySet = new TreeSet<>(keys);
if (keySet.size() < keys.size() && !keySet.isEmpty()) {
logger.debug("Duplicate keys found - readAll({})", keys);
}
Map<String, P> results = new LinkedHashMap<>(keySet.size(), 0.75f, true);
ArrayList<Map<String, AttributeValue>> keyz = new ArrayList<>(MAX_KEYS_PER_READ);
try {
int batchSteps = 1;
if ((keySet.size() > MAX_KEYS_PER_READ)) {
batchSteps = (keySet.size() / MAX_KEYS_PER_READ)
+ ((keySet.size() % MAX_KEYS_PER_READ > 0) ? 1 : 0);
}
Iterator<String> it = keySet.iterator();
String tableName = getTableNameForAppid(appid);
int j = 0;
for (int i = 0; i < batchSteps; i++) {
while (it.hasNext() && j < MAX_KEYS_PER_READ) {
String key = it.next();
results.put(key, null);
keyz.add(Collections.singletonMap(Config._KEY, new AttributeValue(getKeyForAppid(key, appid))));
j++;
}
KeysAndAttributes kna = new KeysAndAttributes().withKeys(keyz);
if (!getAllColumns) {
kna.setAttributesToGet(Arrays.asList(Config._ID, Config._KEY, Config._TYPE));
}
batchGet(Collections.singletonMap(tableName, kna), results);
keyz.clear();
j = 0;
}
logger.debug("DAO.readAll({}) {}", keySet, results.size());
} catch (Exception e) {
logger.error("Failed to readAll({}): {}", keys, e);
}
return results;
}
开发者ID:Erudika,项目名称:para,代码行数:50,代码来源:AWSDynamoDAO.java
示例13: retrieveMultipleItemsBatchGet
import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; //导入依赖的package包/类
private static void retrieveMultipleItemsBatchGet() {
try {
TableKeysAndAttributes forumTableKeysAndAttributes = new TableKeysAndAttributes(forumTableName);
forumTableKeysAndAttributes.addHashOnlyPrimaryKeys("Name", "Amazon S3", "Amazon DynamoDB");
TableKeysAndAttributes threadTableKeysAndAttributes = new TableKeysAndAttributes(threadTableName);
threadTableKeysAndAttributes.addHashAndRangePrimaryKeys("ForumName", "Subject",
"Amazon DynamoDB","DynamoDB Thread 1",
"Amazon DynamoDB","DynamoDB Thread 2",
"Amazon S3","S3 Thread 1");
Map<String, TableKeysAndAttributes> requestItems = new HashMap<String, TableKeysAndAttributes>();
requestItems.put(forumTableName, forumTableKeysAndAttributes);
requestItems.put(threadTableName, threadTableKeysAndAttributes);
System.out.println("Making the request.");
BatchGetItemOutcome outcome = dynamoDB.batchGetItem(forumTableKeysAndAttributes,
threadTableKeysAndAttributes);
do {
for (String tableName : outcome.getTableItems().keySet()) {
System.out.println("Items in table " + tableName);
List<Item> items = outcome.getTableItems().get(tableName);
for (Item item : items) {
System.out.println(item.toJSONPretty());
}
}
// Check for unprocessed keys which could happen if you exceed provisioned
// throughput or reach the limit on response size.
Map<String, KeysAndAttributes> unprocessedKeys = outcome.getUnprocessedKeys();
if (outcome.getUnprocessedKeys().size() == 0) {
System.out.println("No unprocessed keys found");
} else {
System.out.println("Retrieving the unprocessed keys");
outcome = dynamoDB.batchGetItemUnprocessed(unprocessedKeys);
}
} while (outcome.getUnprocessedKeys().size() > 0);
} catch (Exception e) {
System.err.println("Failed to retrieve items.");
System.err.println(e.getMessage());
}
}
开发者ID:awslabs,项目名称:aws-dynamodb-examples,代码行数:54,代码来源:DocumentAPIBatchGet.java
注:本文中的com.amazonaws.services.dynamodbv2.model.KeysAndAttributes类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论