我有一个大型DynamoDB(大约20GB并不大),可以存放带有到期时间戳的项目。 我们有32个并行扫描器读取数据库,而其他条目则从系统的其他部分添加到数据库中。 这是我们目前拥有的代码
val scanRequest = ScanRequest
.builder()
.tableName(tableName)
.filterExpression("expiryDate < :date")
.expressionAttributeValues(mapOf(":date" to expiredThreshold).asAttributeValueMap())
.totalSegments(totalSegments)
.segment(segment)
.limit(1000)
.exclusiveStartKey(lastEvaluatedKey)
.build()
val scanResult = client.scan(scanRequest).asDeferred().await()
lastEvaluatedKey = scanResult.lastEvaluatedKey()
我对此模式有一些担忧。