dynamodb java
在上一篇文章中,我们学习了如何使用Java创建DynamoDB表。 下一步是将项目插入到先前创建的DynamoDB表中。
请记住,对于插入操作,最基本的步骤是指定主键。 对于表用户,主键是属性电子邮件。 您可以根据需要添加任意数量的属性,但是累积大小不应超过400 KB。
Map<String,AttributeValue> attributeValues = new HashMap<>();attributeValues.put("email",new AttributeValue().withS("jon@doe.com"));attributeValues.put("fullname",new AttributeValue().withS("Jon Doe"));PutItemRequest putItemRequest = new PutItemRequest().withTableName("Users").withItem(attributeValues);PutItemResult putItemResult = amazonDynamoDB.putItem(putItemRequest);
DynamoDB还支持批量写入。 在这种情况下,主要好处在于更少的I / O,但是有关消耗的容量没有任何变化。 在我们的情况下,我们将添加一批登录尝试。
Map<String,AttributeValue> firstAttributeValues = new HashMap<>();firstAttributeValues.put("email",new AttributeValue().withS("jon@doe.com"));Long date = new Date().getTime();firstAttributeValues.put("timestamp",new AttributeValue().withN(Long.toString(date)));PutRequest firstPutRequest = new PutRequest();firstPutRequest.setItem(firstAttributeValues);WriteRequest firstWriteRequest = new WriteRequest();firstWriteRequest.setPutRequest(firstPutRequest);Map<String,AttributeValue> secondAttributeValues = new HashMap<>();secondAttributeValues.put("email",new AttributeValue().withS("jon@doe.com"));secondAttributeValues.put("timestamp",new AttributeValue().withN(Long.toString(date+100)));PutRequest secondPutRequest = new PutRequest();secondPutRequest.setItem(secondAttributeValues);WriteRequest secondWriteRequest = new WriteRequest();secondWriteRequest.setPutRequest(secondPutRequest);List<WriteRequest> batchList = new ArrayList<WriteRequest>();batchList.add(firstWriteRequest);batchList.add(secondWriteRequest);Map<String, List<WriteRequest>> batchTableRequests = new HashMap<String, List<WriteRequest>>();batchTableRequests.put("Logins",batchList);BatchWriteItemRequest batchWriteItemRequest = new BatchWriteItemRequest();batchWriteItemRequest.setRequestItems(batchTableRequests);amazonDynamoDB.batchWriteItem(batchWriteItemRequest);
如果使用全局/本地二级索引进行插入,您要做的就是为索引指定相应的属性。 考虑到您可以具有与索引相关的空属性,甚至可以重复。
Map<String,AttributeValue> attributeValues = new HashMap<>();attributeValues.put("name",new AttributeValue().withS("Random SuperVisor"));attributeValues.put("company",new AttributeValue().withS("Random Company"));attributeValues.put("factory",new AttributeValue().withS("Jon Doe"));PutItemRequest putItemRequest = new PutItemRequest().withTableName("Supervisors").withItem(attributeValues);PutItemResult putItemResult = amazonDynamoDB.putItem(putItemRequest);
您可以在github上找到源代码。
翻译自: https://www.javacodegeeks.com/2016/06/insert-items-dynamodb-tables-using-java.html
dynamodb java