Refine search
writeRequests.add(new WriteRequest() .withPutRequest(new PutRequest() .withItem(toAttributeValues(item)))); writeRequests.add(new WriteRequest() .withDeleteRequest(new DeleteRequest() .withKey(toAttributeValueMap(pkToDelete))));
/** * {@inheritDoc} */ protected Map<String, AttributeValue> getRequestItem(WriteRequest writeRequest) { return writeRequest.getPutRequest().getItem(); }
/** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getPutRequest() != null) sb.append("PutRequest: ").append(getPutRequest()).append(","); if (getDeleteRequest() != null) sb.append("DeleteRequest: ").append(getDeleteRequest()); sb.append("}"); return sb.toString(); }
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getPutRequest() == null) ? 0 : getPutRequest().hashCode()); hashCode = prime * hashCode + ((getDeleteRequest() == null) ? 0 : getDeleteRequest().hashCode()); return hashCode; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof WriteRequest == false) return false; WriteRequest other = (WriteRequest) obj; if (other.getPutRequest() == null ^ this.getPutRequest() == null) return false; if (other.getPutRequest() != null && other.getPutRequest().equals(this.getPutRequest()) == false) return false; if (other.getDeleteRequest() == null ^ this.getDeleteRequest() == null) return false; if (other.getDeleteRequest() != null && other.getDeleteRequest().equals(this.getDeleteRequest()) == false) return false; return true; }
private List<WriteRequest> generateWriteRequests(List<String> keys) { return keys.stream() .map(key -> ImmutableMap.of(partitionKeyName, new AttributeValue(key), ATTRIBUTE_NAME, new AttributeValue(this.dataGenerator.getRandomValue()))) .map(item -> new PutRequest().withItem(item)) .map(put -> new WriteRequest().withPutRequest(put)) .collect(Collectors.toList()); }
@Override public <P extends ParaObject> void deleteAll(String appid, List<P> objects) { if (objects == null || objects.isEmpty() || StringUtils.isBlank(appid)) { return; } List<WriteRequest> reqs = new ArrayList<WriteRequest>(objects.size()); for (ParaObject object : objects) { if (object != null) { reqs.add(new WriteRequest().withDeleteRequest(new DeleteRequest(). withKey(Collections.singletonMap(Config._KEY, new AttributeValue(object.getId()))))); } } batchWrite(Collections.singletonMap(getTablNameForAppid(appid), reqs)); logger.debug("DAO.deleteAll() {}", objects.size()); }
if(value.length == 0) value = EMPTY_VALUE; item.put("value", new AttributeValue().withB(ByteBuffer.wrap(value))); list.add(new WriteRequest().withPutRequest(new PutRequest(item))); list.add(new WriteRequest().withDeleteRequest(new DeleteRequest(item))); for(DColumn c: getColumnSlice(mutation.getStoreName(), mutation.getRowKey(), null, null)) { Map<String, AttributeValue> item = getPrimaryKey(mutation.getStoreName() + "_" + mutation.getRowKey(), c.getName()); list.add(new WriteRequest().withDeleteRequest(new DeleteRequest(item)));
toParameters(attributeValues, clazz, tableName, config); requestItems.add(tableName, new WriteRequest(new PutRequest(transformAttributes(parameters)))); requestItems.add(tableName, new WriteRequest(new DeleteRequest(key)));
@Override public List<Object> batchCreate(RequestContext context, List<User> users) { List<WriteRequest> collect = users.stream() .map(user -> new WriteRequest(new PutRequest(generatePutRequest(context.project, user.id, user.properties)))) .collect(Collectors.toList()); dynamoDBClient.batchWriteItem(new BatchWriteItemRequest().withRequestItems(ImmutableMap.of(context.project, collect))); return null; }
public WriteRequest unmarshall(JsonUnmarshallerContext context) throws Exception { WriteRequest writeRequest = new WriteRequest(); if (context.testExpression("PutRequest", targetDepth)) { context.nextToken(); writeRequest.setPutRequest(PutRequestJsonUnmarshaller.getInstance().unmarshall(context)); writeRequest.setDeleteRequest(DeleteRequestJsonUnmarshaller.getInstance().unmarshall(context));
public void deleteRowsFromDataIndex(final byte[][] dataIds, final short adapterId) { final String tableName = getQualifiedTableName(DataIndexUtils.DATA_ID_INDEX.getName()); final Iterator<byte[]> dataIdIterator = Arrays.stream(dataIds).iterator(); while (dataIdIterator.hasNext()) { final List<WriteRequest> deleteRequests = new ArrayList<>(); int i = 0; while (dataIdIterator.hasNext() && (i < MAX_ROWS_FOR_BATCHWRITER)) { deleteRequests.add( new WriteRequest( new DeleteRequest( Collections.singletonMap( DynamoDBRow.GW_PARTITION_ID_KEY, new AttributeValue().withB(ByteBuffer.wrap(dataIdIterator.next())))))); i++; } client.batchWriteItem(Collections.singletonMap(tableName, deleteRequests)); } }
public BatchWritePointResult batchWritePoints(List<PutPointRequest> putPointRequests) { BatchWriteItemRequest batchItemRequest = new BatchWriteItemRequest(); List<WriteRequest> writeRequests = new ArrayList<WriteRequest>(); for (PutPointRequest putPointRequest : putPointRequests) { long geohash = S2Manager.generateGeohash(putPointRequest.getGeoPoint()); long hashKey = S2Manager.generateHashKey(geohash, config.getHashKeyLength()); String geoJson = GeoJsonMapper.stringFromGeoObject(putPointRequest.getGeoPoint()); PutRequest putRequest = putPointRequest.getPutRequest(); AttributeValue hashKeyValue = new AttributeValue().withN(String.valueOf(hashKey)); putRequest.getItem().put(config.getHashKeyAttributeName(), hashKeyValue); putRequest.getItem().put(config.getRangeKeyAttributeName(), putPointRequest.getRangeKeyValue()); AttributeValue geohashValue = new AttributeValue().withN(Long.toString(geohash)); putRequest.getItem().put(config.getGeohashAttributeName(), geohashValue); AttributeValue geoJsonValue = new AttributeValue().withS(geoJson); putRequest.getItem().put(config.getGeoJsonAttributeName(), geoJsonValue); WriteRequest writeRequest = new WriteRequest(putRequest); writeRequests.add(writeRequest); } Map<String, List<WriteRequest>> requestItems = new HashMap<String, List<WriteRequest>>(); requestItems.put(config.getTableName(), writeRequests); batchItemRequest.setRequestItems(requestItems); BatchWriteItemResult batchWriteItemResult = config.getDynamoDBClient().batchWriteItem(batchItemRequest); BatchWritePointResult batchWritePointResult = new BatchWritePointResult(batchWriteItemResult); return batchWritePointResult; }
@Test public void testWriteOneBatchWithEntityTooLarge() { Map<String, List<WriteRequest>> batchMap = new HashMap<String, List<WriteRequest>>(); List<WriteRequest> batchList = new ArrayList<WriteRequest>(); WriteRequest wr1 = new WriteRequest(); WriteRequest wr2 = new WriteRequest(); WriteRequest wr3 = new WriteRequest(); batchList.add(wr1); batchList.add(wr2); batchList.add(wr3); batchMap.put("testTable", batchList); EasyMock.reset(mockClient); AmazonServiceException ase = new AmazonServiceException("TestException"); ase.setErrorCode("Request entity too large"); BatchWriteItemResult mockResult = EasyMock.createMock(BatchWriteItemResult.class); EasyMock.reset(mockResult); EasyMock.expect(mockResult.getUnprocessedItems()).andReturn( new HashMap<String, List<WriteRequest>>()).times(2); // Will cause batches to be split and re-tried EasyMock.expect(mockClient.batchWriteItem(anyObject(BatchWriteItemRequest.class))) .andThrow(ase); EasyMock.expect(mockClient.batchWriteItem(anyObject(BatchWriteItemRequest.class))) .andReturn(mockResult); EasyMock.expect(mockClient.batchWriteItem(anyObject(BatchWriteItemRequest.class))) .andReturn(mockResult); EasyMock.replay(mockClient, mockResult); List<FailedBatch> result = mapper.writeOneBatch(batchMap); assertEquals(result.size(), 0); EasyMock.verify(mockClient); }
if ((request.getPutRequest() != null) == (request.getDeleteRequest() != null)) { throw new IllegalArgumentException("Exactly one of PutRequest or DeleteRequest must be set in each WriteRequest in a batch write operation"); if (request.getPutRequest() != null) { apiName = PUT_ITEM; final int bytes = calculateItemSizeInBytes(request.getPutRequest().getItem()); wcu = computeWcu(bytes); } else { //deleterequest
/** * {@inheritDoc} */ protected Map<String, AttributeValue> getRequestItem(WriteRequest writeRequest) { return writeRequest.getDeleteRequest().getKey(); } }
writeBatchList = writeBatchMap.get(tableName); writeBatchList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(item))); writeBatchMapSizeBytes += itemSizeBytes;
@Override public <P extends ParaObject> void deleteAll(String appid, List<P> objects) { if (objects == null || objects.isEmpty() || StringUtils.isBlank(appid)) { return; } List<WriteRequest> reqs = new ArrayList<>(objects.size()); for (ParaObject object : objects) { if (object != null) { reqs.add(new WriteRequest().withDeleteRequest(new DeleteRequest(). withKey(Collections.singletonMap(Config._KEY, new AttributeValue(getKeyForAppid(object.getId(), appid)))))); } } batchWrite(Collections.singletonMap(getTableNameForAppid(appid), reqs), 1); logger.debug("DAO.deleteAll() {}", objects.size()); }
toParameters(attributeValues, clazz, tableName, config); requestItems.add(tableName, new WriteRequest(new PutRequest(transformAttributes(parameters)))); requestItems.add(tableName, new WriteRequest(new DeleteRequest(key)));
int i = 0; while (it.hasNext()) { PutRequest put = new PutRequest(it.next()); writeRequests.add(new WriteRequest(put));